00001 #ifndef madcluanalysis_h
00002 #define madcluanalysis_h
00003 #include "MadAnalysis.h"
00004 #include "TMultiLayerPerceptron.h"
00005
00006 using namespace std;
00007
00008 class MadCluAnalysis : public MadAnalysis
00009 {
00010
00011 protected:
00012
00013
00014 Bool_t PassTruthSignal(Int_t mcevent=0);
00015 Bool_t PassAnalysisCuts(Int_t event=0);
00016 Bool_t PassBasicCuts(Int_t event=0);
00017 Float_t PID(Int_t event=0,Int_t method=0);
00018 Float_t RecoAnalysisEnergy(Int_t event=0);
00019 Float_t GetWeight(Int_t event=0);
00020 Bool_t AddUserBranches(TTree *);
00021 void CallUserFunctions(Int_t);
00022
00023 public:
00024
00025 MadCluAnalysis(TChain *chainSR=0,TChain *chainMC=0,TChain *chainTH=0,TChain *chainEM=0);
00026 MadCluAnalysis(JobC *,string,int);
00027 ~MadCluAnalysis();
00028
00029 void Plot(char *fileName,Int_t startEnt=0);
00030 void Plotter(char *fileName);
00031 Double_t FOM();
00032
00033 void DataDistributions(char *filename);
00034 void DataMCComp(char *,char *);
00035 Bool_t PassDataCleaningCuts(Int_t shower);
00036 Bool_t IsTrackInSlice(Int_t slice);
00037 Bool_t IsNueFidVtxEvt(Int_t event);
00038
00039 Double_t *PHWProbEM(Int_t event);
00040 Double_t *PHWCluID(Int_t event);
00041 Double_t *PHWAvgDev(Int_t event);
00042 Double_t *ChargeFracRMS(Int_t event,Int_t method=0);
00043 Double_t *AveNumSSPlane(Int_t event);
00044
00045 Bool_t FillPHWProbEM(Int_t event);
00046 Bool_t FillPHWCluID(Int_t event);
00047 Bool_t FillPHWAvgDev(Int_t event);
00048 Bool_t FillChargeFracRMS(Int_t event,Int_t method=0);
00049 Bool_t FillAveNumSSPlane(Int_t event);
00050 Bool_t FillNCluster(Int_t event);
00051 Bool_t FillBestProbEM(Int_t event);
00052
00053 Bool_t ReadPIDFile(char *filename);
00054 Bool_t ReadNNFile(char *filename);
00055
00056 Double_t PAN_PHWCluIDU;
00057 Double_t PAN_PHWCluIDV;
00058 Double_t PAN_PHWCluIDBest;
00059
00060 Double_t PAN_PHWProbEMU;
00061 Double_t PAN_PHWProbEMV;
00062 Double_t PAN_PHWProbEMBest;
00063
00064 Double_t PAN_PHWAvgDevU;
00065 Double_t PAN_PHWAvgDevV;
00066 Double_t PAN_PHWAvgDevBest;
00067
00068 Double_t PAN_ChargeFracRMSU;
00069 Double_t PAN_ChargeFracRMSV;
00070 Double_t PAN_ChargeFracRMSBest;
00071
00072 Double_t PAN_AveNumSSPlaneU;
00073 Double_t PAN_AveNumSSPlaneV;
00074 Double_t PAN_AveNumSSPlaneBest;
00075
00076 Int_t PAN_NShowerStripU;
00077 Int_t PAN_NShowerStripV;
00078 Int_t PAN_NShowerStripBest;
00079
00080 Int_t PAN_NPhysShowerStripU;
00081 Int_t PAN_NPhysShowerStripV;
00082
00083 Double_t PAN_BestProbEM;
00084 Double_t PAN_RatioProbEM;
00085 Double_t PAN_Weight;
00086
00087 Float_t fPID3;
00088 Float_t fPID4;
00089 Float_t fPID5;
00090
00091 Int_t fis_nue_pid;
00092
00093 Int_t PAN_NClusterU;
00094 Int_t PAN_NClusterV;
00095 Int_t PAN_NPhysClusterU;
00096 Int_t PAN_NPhysClusterV;
00097
00098 TH1F *flikelihoodDists[12];
00099 TMultiLayerPerceptron *fneuralNet;
00100
00101 };
00102 #endif // #ifdef madcluanalysis_h