R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandMCMon.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2019-2025 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#ifndef R3BNEULANDMCMON_H
15#define R3BNEULANDMCMON_H
16
38
39#include "FairTask.h"
40#include "R3BMCTrack.h"
41#include "R3BNeulandPoint.h"
42#include "TCAConnector.h"
43#include <R3BIOConnector.h>
44#include <map>
45
46class TH1D;
47class TH2D;
48class TH3D;
49
50class R3BNeulandMCMon : public FairTask
51{
52 public:
53 R3BNeulandMCMon(const Option_t* option = "");
54
55 ~R3BNeulandMCMon() override = default;
56
57 // No copy and no move is allowed (Rule of three/five)
58 R3BNeulandMCMon(const R3BNeulandMCMon&) = delete; // copy constructor
59 R3BNeulandMCMon(R3BNeulandMCMon&&) = delete; // move constructor
60 R3BNeulandMCMon& operator=(const R3BNeulandMCMon&) = delete; // copy assignment
61 R3BNeulandMCMon& operator=(R3BNeulandMCMon&&) = delete; // move assignment
62
63 protected:
64 InitStatus Init() override;
65 void Finish() override;
66
67 public:
68 void Exec(Option_t*) override;
69
70 private:
71 Bool_t fIs3DTrackEnabled;
72 Bool_t fIsFullSimAnaEnabled;
73
74 R3B::InputVectorConnector<R3BNeulandPoint> fPrimaryNeutronInteractionPoints;
77
78 int nEvents;
79
80 TH1D* fhPDG;
81 TH1D* fhEPrimarys;
82 TH1D* fhEPrimarys2;
83 TH1D* fhEPrimaryNeutrons;
84 TH1D* fhErelMC;
85 TH1D* fhEtot;
86 TH1D* fhEtotPrim;
87 TH1D* fhESecondaryNeutrons;
88 TH1D* fhMotherIDs;
89 TH1D* fhPrimaryDaughterIDs;
90 TH1D* fhMCToF;
91 TH1D* fhnNPNIPs;
92 TH2D* fhNPNIPsEToFVSTime;
93 TH2D* fhNPNIPSrvsz;
94 TH2D* fhNPNIPSxy;
95 TH2D* fhThetaLight;
96 TH2D* fhElossVSLight;
97 TH2D* fhElossVSLightLog;
98 std::map<Int_t, TH1D*> fhmEPdg;
99 std::map<Int_t, TH1D*> fhmEtotPdg;
100 std::map<Int_t, TH1D*> fhmEtotPdgRel;
101
102 std::map<Int_t, TH1D*> fhmEnergyByProductPdg;
103 std::map<Int_t, TH1D*> fhmCountByProductPdg;
104 std::map<std::string, TH1D*> fhmEnergyByProductPdgReduced;
105 std::map<std::string, TH1D*> fhmCountByProductPdgReduced;
106 std::map<Int_t, TH2D*> fhmElossVSLightLogPdg;
107 std::map<TString, TH1D*> fhmEnergyByReaction;
108 std::map<TString, std::map<Int_t, TH1D*>> fhmmEnergyByReactionByProductPdg;
109 TH1D* fhnProducts;
110 TH1D* fhnProductsCharged;
111 TH1D* fhSumProductEnergy;
112 TH1D* fhnSecondaryProtons;
113 TH1D* fhnSecondaryNeutrons;
114
115 TH3D* fh3;
116 TH3D* fh3PNIP;
117
118 ClassDefOverride(R3BNeulandMCMon, 0)
119};
120
121#endif // R3BNEULANDMCMON_H
R3BNeulandMCMon & operator=(R3BNeulandMCMon &&)=delete
R3BNeulandMCMon & operator=(const R3BNeulandMCMon &)=delete
R3BNeulandMCMon(const Option_t *option="")
~R3BNeulandMCMon() override=default
R3BNeulandMCMon(R3BNeulandMCMon &&)=delete
void Finish() override
void Exec(Option_t *) override
InitStatus Init() override
R3BNeulandMCMon(const R3BNeulandMCMon &)=delete
InputConnector< std::vector< ElementType > > InputVectorConnector