00001 #ifndef EFFICIENCY_H
00002 #define EFFICIENCY_H
00003
00004 #include <TObject.h>
00005 #include <TString.h>
00006 #include <TPostScript.h>
00007 #include <TH1F.h>
00008 #include <TH2F.h>
00009 #include <TFile.h>
00010 #include <TTree.h>
00011
00012 class MyEvent;
00013
00014 class AnaCuts;
00015
00016 class Efficiency : public TObject{
00017 protected:
00018 TFile *mFile;
00019 TFile *mFileOut;
00020 TTree *myEventTree;
00021 AnaCuts *cuts;
00022 MyEvent *ev;
00023 TPostScript *pseff;
00024
00025 Bool_t isDAU;
00026 Bool_t isPP05;
00027
00028 Bool_t NEUTRONS;
00029 Bool_t ANTINEUTRONS;
00030 Bool_t PIONS;
00031 Bool_t ETAS;
00032 Bool_t CHARGEDPIONS;
00033 Bool_t PHOTONS;
00034 Bool_t KZEROLONG;
00035
00036 Bool_t isMC;
00037 Bool_t isPythia;
00038 Bool_t USEWEIGHT;
00039 Bool_t USEPYTHIAWEIGHT;
00040 Bool_t USEBBCSPREAD;
00041 const char *mFlag;
00042
00043 Float_t nNeutrons;
00044
00045 TString htitle;
00046 TString dirout;
00047
00048
00049 TH2F *h_accMB;
00050 TH2F *h_genMB;
00051
00052 TH2F *h_HT1adc_id;
00053 TH2F *h_HT2adc_id;
00054
00055 TH1F *h_convGen;
00056 TH1F *h_convConv;
00057 TH1F *h_convConvSSD;
00058 TH1F *h_convConvSVT;
00059 TH1F *h_convConvIFC;
00060
00061 TH1F *h_convConvNotCtb;
00062 TH1F *h_stopRadius;
00063
00064 TH1F *h_mcdist;
00065 TH2F *h_mcdist2D;
00066 TH1F *h_dist;
00067 TH2F *h_dist2D;
00068
00069 TH1F *h_nbarDet;
00070 TH1F *h_nbarIn;
00071
00072 TH1F *h_splitClusAll;
00073 TH1F *h_splitClus;
00074
00075 TH1F *h_inputMB;
00076 TH1F *h_inputHT1;
00077 TH1F *h_inputHT2;
00078
00079 TH1F *h_inputDaughtersMB;
00080 TH1F *h_inputDaughtersHT1;
00081 TH1F *h_inputDaughtersHT2;
00082
00083 TH1F *h_recoMB;
00084 TH1F *h_recoHT1;
00085 TH1F *h_recoHT2;
00086
00087 TH1F *h_recoDaughtersMB;
00088 TH1F *h_recoDaughtersHT1;
00089 TH1F *h_recoDaughtersHT2;
00090
00091 TH2F *h_minvMB;
00092 TH2F *h_minvHT1;
00093 TH2F *h_minvHT2;
00094
00095 TH1F *h_effMB;
00096 TH1F *h_effHT1;
00097 TH1F *h_effHT2;
00098
00099 TH1F *h_effDaughtersMB;
00100 TH1F *h_effDaughtersHT1;
00101 TH1F *h_effDaughtersHT2;
00102
00103 TH2F *h_matrixMB;
00104 TH2F *h_etaphi;
00105
00106 TH1F *h_pythiaPions;
00107 TH1F *h_pythiaPhotons;
00108 TH1F *h_pythiaPartonPt;
00109
00110 TH2F *h_clusterWidth;
00111 TH2F *h_energyRatio;
00112 TH2F *h_towclusRatio;
00113
00114 TH1F *h_vzMB;
00115
00116 TH2F *h_asymmMB;
00117 TH2F *h_asymmHT1;
00118 TH2F *h_asymmHT2;
00119
00120 TH1F *h_pionsVsEtaMB;
00121
00122 TH2F *h_smdeta1;
00123 TH2F *h_smdphi1;
00124 TH2F *h_smdeta2;
00125 TH2F *h_smdphi2;
00126
00127 TH1F *h_energyeta;
00128 TH1F *h_energyphi;
00129
00130
00131 public:
00132
00133 Efficiency(const char*,const char*,const char*);
00134 ~Efficiency();
00135
00136 Int_t init();
00137 Int_t make(Int_t i=0);
00138 Int_t finish();
00139
00140 Float_t getWeightPions(Float_t);
00141 Float_t getWeightEtas(Float_t);
00142 Float_t getWeightAntiNeutrons(Float_t);
00143 Float_t getWeightNeutrons(Float_t);
00144 Float_t getWeightPhotons(Float_t);
00145 Float_t getWeightVertex(Float_t);
00146
00147 void setUseWeight(Bool_t val){USEWEIGHT=val;}
00148 void setUsePythiaWeight(Bool_t val){USEPYTHIAWEIGHT=val;}
00149 void setMC(Bool_t val) {isMC=val;}
00150 void setPythia(Bool_t val) {isPythia=val;}
00151 void setUseBbcSpread(Bool_t val){USEBBCSPREAD=val;}
00152 ClassDef(Efficiency,0)
00153 };
00154
00155 #endif