00001 #ifndef madpidanalysis_h
00002 #define madpidanalysis_h
00003 #include "Mad/MadAnalysis.h"
00004 #include "Mad/AnnInputBlock.h"
00005 #include "Mad/MadAbID.h"
00006 #include "Registry/Registry.h"
00007 #include "PhysicsNtuple/Store/Interface.h"
00008 #include "DataUtil/EnergyCorrections.h"
00009
00010
00011 using namespace std;
00012
00013 class MadPIDAnalysis : public MadAnalysis
00014 {
00015
00016 protected:
00017
00018 Bool_t PassTruthSignal(Int_t event=0);
00019 Bool_t PassAnalysisCuts(Int_t event=0);
00020 Float_t PID(Int_t event=0,Int_t method=0);
00021 Bool_t PassBasicCuts(Int_t event=0);
00022 Bool_t PassFid(Int_t event=0);
00023 Bool_t PassFidND(Int_t event=0);
00024 Bool_t PassFidNew(Int_t event=0);
00025 Bool_t PassFidNewN(Int_t event=0);
00026 Float_t RecoAnalysisEnergy(Int_t event=0);
00027 Bool_t PassTimingCuts(Double_t timediff);
00028
00029
00030 AnnInputBlock AnnVar(Int_t event=0);
00031 Double_t GetAnnPid(AnnInputBlock anninput,Int_t det, Int_t tar, Int_t fid, Int_t prior, Bool_t first_ann);
00032 Double_t Sigmoid(Double_t x);
00033
00034 Float_t SingleTimeFrame(Int_t snarlentry,Int_t nentries);
00035
00036 TFile *fLikeliFile;
00037 TH1F *fLikeliHist[6];
00038
00039 MadAbID andy_id;
00040
00041 Anp::Interface ro_interface;
00042 Registry ro_registry;
00043
00044 private :
00045
00046 Double_t Ann_weight_vector[226];
00047 Float_t potall;
00048 Float_t potcut;
00049
00050 public:
00051
00052 MadPIDAnalysis(TChain *chainSR=0,TChain *chainMC=0,
00053 TChain *chainTH=0,TChain *chainEM=0);
00054 MadPIDAnalysis(JobC *,string,int);
00055 ~MadPIDAnalysis();
00056
00057
00058
00059 void MakeMyFile(std::string,int,int);
00060 void MakeAbIDFile(std::string);
00061
00062 void ReadPIDFile(std::string);
00063 void ReadAbPIDFile(std::string);
00064 void ConfigureRoID(std::string, std::string);
00065 void CreatePAN(std::string, Int_t,Int_t, EnergyCorrections::WhichCorrection_t);
00066
00067
00068 static bool InFidVol(const Detector::Detector_t& det,
00069 const Float_t& x, const Float_t& y,
00070 const Float_t& z);
00071
00072 };
00073 #endif // #ifdef madpidanalysis_h