00001 00002 // NtpMCTruth 00003 // 00004 // NtpMCTruth is an ntuple class to hold mc truth data. 00005 // 00006 // Based on Roy Lee's CandEventSR/MCTruthSR class 00007 // 00009 00010 #ifndef NTPMCTRUTH_H 00011 #define NTPMCTRUTH_H 00012 00013 #include "TObject.h" // base class 00014 #include "NtpMCFluxInfo.h" // data member 00015 #include "NtpMCFluxWgt.h" // data member 00016 00017 class NtpMCTruth; 00018 std::ostream &operator << (std::ostream& os, const NtpMCTruth& mc); 00019 00020 class NtpMCTruth : public TObject { 00021 00022 public: 00023 // Constructors & Destructors 00024 NtpMCTruth(); 00025 virtual ~NtpMCTruth(); 00026 00027 // State testing methods 00028 virtual std::ostream& Print(std::ostream& os) const; 00029 virtual void Print(const Option_t* option = "") const; 00030 00031 public: 00032 // Ntuple is treated like a C-struct with public data members and 00033 // rule-breaking field data members not prefaced by "f" and all 00034 // lowercase, by popular demand. 00035 00036 UShort_t index; // index of this mctruth entry in mc array 00037 Int_t stdhep[2]; // index range in stdhep array of associated particles 00038 Int_t inu; // PDG id of neutrino, nu_e=12, nu_mu=14, nu_tau=16, anti=- 00039 Int_t inunoosc; // PDG id of un-oscillated neutrino 00040 Int_t itg; // PDG id of target nucleon, p=2212, n=2112 00041 Int_t iboson; // PDG id of exchange boson, Z0=23, W+=24 00042 // resonance code: 1001=QE, 1002=resonance prod., 1003=deep inelastic 00043 // 1004=coherent pion production, 1005=inverse muon decay 00044 Int_t iresonance; // resonance code 00045 Int_t iaction; // 0=NC 1=CC (2=QE 3=QE+pi) 00046 Int_t istruckq; // PDG id of struck quark 00047 // for Daikon (w/ neugen3 v3_5_0) iflags can be interpreted as: 00048 // 0: non-DIS, 1: old KNO hadronization, 2: modified KNO, 3: charm 00049 // 11: JETSET/string frag, 12: JETSET/cluster frag, 13: JETSET/other frag 00050 Int_t iflags; // generator flags 00051 Int_t ndigu; // total number of digits in u-view 00052 Int_t ndigv; // total number of digits in v-view 00053 Float_t tphu; // summed pulse height u-view 00054 Float_t tphv; // summed pulse height v-view 00055 Float_t a; // nucleus A 00056 Float_t z; // nucleus Z 00057 Float_t sigma; // total cross section for this interaction 00058 Float_t sigmadiff; // differential cross section 00059 Float_t x; // Bj x 00060 Float_t y; // y 00061 Float_t q2; // Q**2 00062 Float_t w2; // W**2 00063 Float_t emfrac; // fraction of "shower" energy which is EM 00064 Float_t vtxx; // vertex x-pos in meters (was cm previous to 8/31/04) 00065 Float_t vtxy; // vertex y-pos in meters (was cm previous to 8/31/04) 00066 Float_t vtxz; // vertex z-pos in meters (was cm previous to 8/31/04) 00067 Float_t p4neu[4]; // neutrino momentum+energy (GeV) 4-vector 00068 Float_t p4neunoosc[4]; // unoscillated neutrino 4-vector 00069 // p4tgt Note: Fermi motion may mean that target is not at rest in lab frame 00070 Float_t p4tgt[4]; // target nucleon 4-vector 00071 Float_t p4shw[4]; // shower (hadronic+em) 00072 Float_t p4mu1[4]; // primary muon 00073 Float_t p4mu2[4]; // secondary muon (e.g. from charm production & decay) 00074 Float_t p4el1[4]; // first electron 00075 Float_t p4el2[4]; // highest E second electron 00076 Float_t p4tau[4]; // highest E tau (may have decayed) 00077 00078 NtpMCFluxInfo flux; // flux info associated with primary 00079 NtpMCFluxWgt fluxwgt; // flux weight associated with primary 00080 00081 ClassDef(NtpMCTruth,7) 00082 }; 00083 00084 #endif // NTPMCTRUTH_H
1.3.9.1