00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00019
00020 #ifndef madqeid_h
00021 #define madqeid_h
00022
00023 #include <string>
00024 #include "Mad/MadBase.h"
00025 #include "TH1.h"
00026
00027 class MadQEID {
00028
00029 public:
00030
00031 MadQEID();
00032
00033 Bool_t CalcQEVars(MadBase* mb, Int_t evtindex);
00034 Float_t CalcQEID(MadBase* mb, Int_t evtindex, Float_t reco_enu, Float_t recoW2);
00035 Float_t AltCalcQEID(MadBase* mb, Int_t evtindex, Float_t reco_enu, Float_t recoW2);
00036 void ResetPDFs();
00037 void FillPDFs(Int_t cc_nc, Int_t process, MadBase* mb, Int_t evtindex, Float_t reco_enu, Float_t recoW2);
00038 void WritePDFs(const char* name="QEpdfs.root");
00039 void ReadPDFs(const char* name="QEpdfs.root");
00040 Int_t PassMEDQECut(Float_t reco_enu, Float_t QEIDval);
00041 void FillCutTrainingHists(MadBase* mb, Int_t evtindex, Float_t reco_enu, Float_t recoW2);
00042 void AltFillCutTrainingHists(MadBase* mb, Int_t evtindex, Float_t reco_enu, Float_t recoW2);
00043 void MakeCutHist(Float_t eff);
00044 void RebinPDFs(Int_t nbins);
00045 Float_t GetRePHfrac();
00046
00047 private:
00048 void NormalisePDFs();
00049 void InitPDFs();
00050 void InitTrainingHists();
00051 Bool_t IsTrkHit(Float_t zPos,Float_t tPos, const NtpSRTrack* ntpTrk, MadBase* madb);
00052 Bool_t IsShowHit(Float_t zPos,Float_t tPos, const NtpSRShower* ntpShow, MadBase* madb);
00053 Bool_t IsVPln(Int_t plane);
00054 Int_t GetEnergyBin(Float_t enu);
00055 Float_t GetBinStart(Int_t bin);
00056 Float_t GetBinRange(Int_t bin);
00057
00058
00059
00060 Int_t ntrks;
00061 Int_t nshows;
00062 Int_t houghPeak;
00063 Float_t recoWsqd;
00064 Float_t rePHfrac;
00065 Float_t PCAvar;
00066 Bool_t pdfs_normalised;
00067
00068 TH1F* ntrkCCQE[18];
00069 TH1F* ntrkCCR[18];
00070 TH1F* ntrkCCDIS[18];
00071 TH1F* ntrkNC[18];
00072 TH1F* ntrkBG[18];
00073
00074 TH1F* nshowCCQE[18];
00075 TH1F* nshowCCR[18];
00076 TH1F* nshowCCDIS[18];
00077 TH1F* nshowNC[18];
00078 TH1F* nshowBG[18];
00079
00080 TH1F* hpeakCCQE[18];
00081 TH1F* hpeakCCR[18];
00082 TH1F* hpeakCCDIS[18];
00083 TH1F* hpeakNC[18];
00084 TH1F* hpeakBG[18];
00085
00086 TH1F* recoW2CCQE[18];
00087 TH1F* recoW2CCR[18];
00088 TH1F* recoW2CCDIS[18];
00089 TH1F* recoW2NC[18];
00090 TH1F* recoW2BG[18];
00091
00092 TH1F* rePHfracCCQE[18];
00093 TH1F* rePHfracCCR[18];
00094 TH1F* rePHfracCCDIS[18];
00095 TH1F* rePHfracNC[18];
00096 TH1F* rePHfracBG[18];
00097
00098 TH1F* PCACCQE[18];
00099 TH1F* PCACCR[18];
00100 TH1F* PCACCDIS[18];
00101 TH1F* PCANC[18];
00102 TH1F* PCABG[18];
00103
00104 TH1F* trainingHists[18];
00105
00106 TH1F* cutsHist;
00107
00108 };
00109
00110 #endif