/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/RooTracker_Gen.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/RooTracker_Gen.hh Source File
Ratpac-two
RooTracker_Gen.hh
1 
26 #ifndef __RAT_RooTracker_Gen__
27 #define __RAT_RooTracker_Gen__
28 
29 #include <TFile.h>
30 #include <TTimeStamp.h>
31 
32 #include <RAT/GLG4Gen.hh>
33 
34 class TTree;
35 
36 namespace RAT {
37 
38 namespace DS {
39 class Root;
40 }
41 
42 const int kNPmax = 250; // gNtpConv.cxx
43 
44 // GENIE StdHep record, see GENIE manual arxiv:1510.05494, Sec. 7.6.2.
45 struct StdHepRecord {
46  StdHepRecord(TTree* t) {
47  t->SetBranchAddress("EvtNum", &EvtNum);
48  t->SetBranchAddress("EvtXSec", &EvtXSec);
49  t->SetBranchAddress("EvtDXSec", &EvtDXSec);
50  t->SetBranchAddress("EvtWght", &EvtWght);
51  t->SetBranchAddress("EvtProb", &EvtProb);
52  t->SetBranchAddress("EvtVtx", EvtVtx);
53  t->SetBranchAddress("StdHepN", &StdHepN);
54  t->SetBranchAddress("StdHepPdg", StdHepPdg);
55  t->SetBranchAddress("StdHepStatus", StdHepStatus);
56  t->SetBranchAddress("StdHepRescat", StdHepRescat);
57  t->SetBranchAddress("StdHepX4", StdHepX4);
58  t->SetBranchAddress("StdHepP4", StdHepP4);
59  t->SetBranchAddress("StdHepPolz", StdHepPolz);
60  t->SetBranchAddress("StdHepFd", StdHepFd);
61  t->SetBranchAddress("StdHepLd", StdHepLd);
62  t->SetBranchAddress("StdHepFm", StdHepFm);
63  t->SetBranchAddress("StdHepLm", StdHepLm);
64  }
65 
66  int EvtNum;
67  double EvtXSec;
68  double EvtDXSec;
69  double EvtWght;
70  double EvtProb;
71  double EvtVtx[4];
72  int StdHepN;
73  int StdHepPdg[kNPmax];
74  int StdHepStatus[kNPmax];
75  int StdHepRescat[kNPmax];
76  double StdHepX4[kNPmax][4];
77  double StdHepP4[kNPmax][4];
78  double StdHepPolz[kNPmax][3];
79  int StdHepFd[kNPmax];
80  int StdHepLd[kNPmax];
81  int StdHepFm[kNPmax];
82  int StdHepLm[kNPmax];
83 };
84 
85 class RooTracker_Gen : public GLG4Gen {
86  public:
88  : fStateStr(""), fCurrentEvent(0), fNumEvents(0), fMaxEvent(0), fLastEventTime(0), fTimeGen(0), fPosGen(0) {}
89 
90  virtual ~RooTracker_Gen() { fFile->Close(); }
91 
92  void GenerateEvent(G4Event* event);
93  bool IsRepeatable() const { return true; };
94 
96  void ResetTime(double offset = 0.0);
97 
99  void SetState(G4String state);
100  G4String GetState() const;
101 
105  void SetTimeState(G4String state);
106  G4String GetTimeState() const;
107 
111  void SetPosState(G4String state);
112  G4String GetPosState() const;
113 
114  protected:
115  G4String fStateStr;
118  int fMaxEvent;
119 
120  TTimeStamp fLastEventTime;
121 
122  GLG4TimeGen* fTimeGen;
123  GLG4PosGen* fPosGen;
124 
125  TFile* fFile;
126  TTree* fTTree;
127  StdHepRecord* fRec;
128 };
129 
130 } // namespace RAT
131 
132 #endif
Definition: GLG4Gen.hh:14
Definition: GLG4PosGen.hh:18
Definition: GLG4TimeGen.hh:6
Reads in RooTracker StdHep ROOT files.
Definition: RooTracker_Gen.hh:85
void SetState(G4String state)
Definition: RooTracker_Gen.cc:88
void SetPosState(G4String state)
Definition: RooTracker_Gen.cc:159
int fCurrentEvent
Index of current event from ROOT file.
Definition: RooTracker_Gen.hh:116
int fNumEvents
Read up to this many events from file.
Definition: RooTracker_Gen.hh:117
int fMaxEvent
Number of events in ROOT file.
Definition: RooTracker_Gen.hh:118
void ResetTime(double offset=0.0)
Definition: RooTracker_Gen.cc:73
TTimeStamp fLastEventTime
Used to calculate time between events.
Definition: RooTracker_Gen.hh:120
void SetTimeState(G4String state)
Definition: RooTracker_Gen.cc:144
Definition: CCCrossSecMessenger.hh:29
Definition: RooTracker_Gen.hh:45