Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MadAbID.h

Go to the documentation of this file.
00001 #ifndef MADABID_h
00002 #define MADABID_h
00003 
00004 #include "TH1.h"
00005 #include "TH2.h"
00006 #include "TFile.h"
00007 #include "TString.h"
00008 #include "TObject.h"
00009 #include "TObjArray.h"
00010 #include "TClonesArray.h"
00011 
00012 #include "StandardNtuple/NtpStRecord.h"
00013 #include "CandNtupleSR/NtpSREvent.h"
00014 
00015 class MadAbID : public TObject {
00016 
00017  public:
00018   MadAbID();
00019   virtual ~MadAbID();
00020 
00021   Bool_t PassCuts(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00022   Double_t CalcPID(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00023 
00024   Int_t PidCosTheta();
00025   Int_t PidX();
00026   Int_t PidY();
00027   Int_t PidW2();
00028   Int_t PidQ2();
00029   Int_t PidTrackPHfrac();
00030   Int_t PidTrackPHmean();
00031   Int_t PidTrackQPsigmaQP();
00032   Int_t PidTrackLikePlanes();
00033   Int_t PidTrackCharge();
00034   Int_t PidTrackEnergy();
00035   Int_t PidEventEnergy();
00036   Int_t PidNormalization();
00037 
00038   void UseCosTheta(Int_t n=2);
00039   void UseX(Int_t n=2);
00040   void UseY(Int_t n=2);
00041   void UseW2(Int_t n=2);
00042   void UseQ2(Int_t n=2);
00043   void UseTrackPHfrac(Int_t n=2); 
00044   void UseTrackPHmean(Int_t n=2);
00045   void UseTrackQPsigmaQP(Int_t n=2);
00046   void UseTrackLikePlanes(Int_t n=2);
00047   void UseTrackCharge(Int_t n=1);
00048   void UseTrackEnergy(Int_t n=1);
00049   void UseEventEnergy(Int_t n=1);
00050   void UseNormalization(Int_t n=1);
00051   void Reset();
00052 
00053   Int_t GetTrackPlanes(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00054   Int_t GetTrackLikePlanes(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00055   Int_t GetTrackEMCharge(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00056   Double_t GetTrackQPsigmaQP(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00057   Double_t GetTrackPHfrac(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00058   Double_t GetTrackPHmean(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00059   Double_t GetRecoCosTheta(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00060   Double_t GetRecoX(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00061   Double_t GetRecoY(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00062   Double_t GetRecoQ2(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00063   Double_t GetRecoW2(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00064   Double_t GetRecoE(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00065 
00066   Bool_t GetPass(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00067   Double_t GetPid(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00068   Double_t GetProbCC(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00069   Double_t GetProbNC(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00070 
00071   void ReadPDFs(const char* name);
00072   void WritePDFs(const char* name);
00073   void NormalizePDFs();
00074 
00075   void FillPDFs(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord, Int_t ccnc);
00076   void FillPDFs(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord, Int_t ccnc, Double_t osc);
00077 
00078  private:
00079 
00080   void MakePDFs();
00081   void MakePidVariables(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00082   void MakeRecoVariables(const NtpSREvent* ntpEvent, const NtpStRecord* ntpRecord);
00083 
00084   Bool_t fReadPdfs;
00085   Bool_t fWritePdfs;
00086   Bool_t fMakePdfs;
00087   Bool_t fFoundPdfs;
00088 
00089   TString fPdfsFileIn;
00090   TString fPdfsFileOut;
00091 
00092   Bool_t fCosTheta_1D;
00093   Bool_t fX_1D;
00094   Bool_t fY_1D;
00095   Bool_t fQ2_1D;
00096   Bool_t fW2_1D;
00097   Bool_t fCosTheta_2D;
00098   Bool_t fX_2D;
00099   Bool_t fY_2D;
00100   Bool_t fQ2_2D;
00101   Bool_t fW2_2D;
00102   Bool_t fTrackPHfrac_1D;
00103   Bool_t fTrackPHmean_1D;
00104   Bool_t fTrackQPsigmaQP_1D;
00105   Bool_t fTrackLikePlanes_1D;
00106   Bool_t fTrackPHfrac_2D;
00107   Bool_t fTrackPHmean_2D;
00108   Bool_t fTrackQPsigmaQP_2D;
00109   Bool_t fTrackLikePlanes_2D;
00110   Bool_t fTrackCharge_1D;
00111   Bool_t fTrackEnergy_1D;
00112   Bool_t fEventEnergy_1D;
00113   Bool_t fNormalization;
00114 
00115   TH1D* hCosTheta_1D_CC;
00116   TH1D* hX_1D_CC;
00117   TH1D* hY_1D_CC;
00118   TH1D* hQ2_1D_CC;
00119   TH1D* hW2_1D_CC;
00120   TH2D* hCosTheta_2D_CC;
00121   TH2D* hX_2D_CC;
00122   TH2D* hY_2D_CC;
00123   TH2D* hQ2_2D_CC;
00124   TH2D* hW2_2D_CC;
00125   TH1D* hE_2D_CC;
00126   TH1D* hTrackPHfrac_1D_CC;
00127   TH1D* hTrackPHmean_1D_CC;
00128   TH1D* hTrackQPsigmaQP_1D_CC;
00129   TH1D* hTrackLikePlanes_1D_CC;
00130   TH2D* hTrackPHfrac_2D_CC;
00131   TH2D* hTrackPHmean_2D_CC;
00132   TH2D* hTrackQPsigmaQP_2D_CC;
00133   TH2D* hTrackLikePlanes_2D_CC;
00134   TH1D* hTrackPlanes_2D_CC_1;
00135   TH1D* hTrackPlanes_2D_CC_2;
00136   TH1D* hTrackCharge_1D_CC;
00137   TH1D* hTrackEnergy_1D_CC;
00138   TH1D* hEventEnergy_1D_CC;
00139 
00140   TH1D* hCosTheta_1D_NC;
00141   TH1D* hX_1D_NC;
00142   TH1D* hY_1D_NC;
00143   TH1D* hQ2_1D_NC;
00144   TH1D* hW2_1D_NC;
00145   TH2D* hCosTheta_2D_NC;
00146   TH2D* hX_2D_NC;
00147   TH2D* hY_2D_NC;
00148   TH2D* hQ2_2D_NC;
00149   TH2D* hW2_2D_NC;
00150   TH1D* hE_2D_NC;
00151   TH1D* hTrackPHfrac_1D_NC;
00152   TH1D* hTrackPHmean_1D_NC;
00153   TH1D* hTrackQPsigmaQP_1D_NC;
00154   TH1D* hTrackLikePlanes_1D_NC;
00155   TH2D* hTrackPHfrac_2D_NC;
00156   TH2D* hTrackPHmean_2D_NC;
00157   TH2D* hTrackQPsigmaQP_2D_NC;
00158   TH2D* hTrackLikePlanes_2D_NC;
00159   TH1D* hTrackPlanes_2D_NC_1;
00160   TH1D* hTrackPlanes_2D_NC_2;
00161   TH1D* hTrackCharge_1D_NC;
00162   TH1D* hTrackEnergy_1D_NC;
00163   TH1D* hEventEnergy_1D_NC;
00164 
00165   TH1D* hNormalization;
00166 
00167   Int_t PidRun;
00168   Int_t PidSnarl;
00169   Int_t PidEvent;
00170 
00171   Bool_t PIDPASSFAIL;
00172   Double_t PROBCC;
00173   Double_t PROBNC;
00174   Double_t PID;
00175 
00176   Double_t PID_COSTHETA_PROBCC;
00177   Double_t PID_X_PROBCC;
00178   Double_t PID_Y_PROBCC;
00179   Double_t PID_Q2_PROBCC;
00180   Double_t PID_W2_PROBCC;
00181   Double_t PID_TRACKPHFRAC_PROBCC;
00182   Double_t PID_TRACKPHMEAN_PROBCC;
00183   Double_t PID_TRACKQPSIGMAQP_PROBCC;
00184   Double_t PID_TRACKLIKEPLANES_PROBCC;
00185   Double_t PID_TRACKCHARGE_PROBCC;
00186   Double_t PID_TRACKENERGY_PROBCC;
00187   Double_t PID_EVENTENERGY_PROBCC;
00188   Double_t PID_NORMALIZATION_PROBCC;
00189 
00190   Double_t PID_COSTHETA_PROBNC;
00191   Double_t PID_X_PROBNC;
00192   Double_t PID_Y_PROBNC;
00193   Double_t PID_Q2_PROBNC;
00194   Double_t PID_W2_PROBNC;
00195   Double_t PID_TRACKPHFRAC_PROBNC;
00196   Double_t PID_TRACKPHMEAN_PROBNC;
00197   Double_t PID_TRACKQPSIGMAQP_PROBNC;
00198   Double_t PID_TRACKLIKEPLANES_PROBNC;
00199   Double_t PID_TRACKCHARGE_PROBNC;
00200   Double_t PID_TRACKENERGY_PROBNC;
00201   Double_t PID_EVENTENERGY_PROBNC;
00202   Double_t PID_NORMALIZATION_PROBNC;
00203 
00204   Int_t RecoRun;
00205   Int_t RecoSnarl;
00206   Int_t RecoEvent;
00207 
00208   Int_t Ndigits;
00209   Int_t Nstrips;
00210   Int_t Ntracks;
00211   Int_t Nshowers;
00212   Int_t RECOminplane;
00213   Int_t RECOmaxplane;
00214   Double_t RECOtotph;
00215 
00216   Double_t RECOenu;
00217   Double_t RECOemu;
00218   Double_t RECOehad;
00219   Double_t RECOx;
00220   Double_t RECOy;
00221   Double_t RECOq2;
00222   Double_t RECOw2;
00223   Double_t RECOdircosU;
00224   Double_t RECOdircosV;
00225   Double_t RECOdircosX;
00226   Double_t RECOdircosY;
00227   Double_t RECOdircosZ;
00228   Double_t RECOdircosneu;
00229   Double_t RECOQEenu;
00230   Double_t RECOQEemu;
00231   Double_t RECOQEehad;
00232   Double_t RECOQEx;
00233   Double_t RECOQEy;
00234   Double_t RECOQEq2;
00235   Double_t RECOQEw2;
00236   Int_t RECOvtxplane;
00237   Double_t RECOvtxU;
00238   Double_t RECOvtxV;
00239   Double_t RECOvtxX;
00240   Double_t RECOvtxY;
00241   Double_t RECOvtxR;
00242   Double_t RECOvtxZ;
00243   Double_t RECOvtxDistToEdge;
00244   Double_t RECOvtxDistToEndBack;
00245   Double_t RECOvtxDistToEndForward;
00246   Int_t RECOcontained;
00247   Int_t RECOvtxcontained;
00248   Int_t RECOendcontained;
00249 
00250   Int_t TRKvtxplane;
00251   Double_t TRKvtxU;
00252   Double_t TRKvtxV;
00253   Double_t TRKvtxX;
00254   Double_t TRKvtxY;
00255   Double_t TRKvtxR;
00256   Double_t TRKvtxZ;
00257   Double_t TRKvtxdircosU;
00258   Double_t TRKvtxdircosV;
00259   Double_t TRKvtxdircosX;
00260   Double_t TRKvtxdircosY;
00261   Double_t TRKvtxdircosZ;
00262   Double_t TRKvtxDistToEdge;
00263   Double_t TRKvtxDistToEndBack;
00264   Double_t TRKvtxDistToEndForward;
00265   Double_t TRKvtxtrace;
00266   Double_t TRKvtxtraceZ;
00267 
00268   Int_t TRKendplane;
00269   Double_t TRKendU;
00270   Double_t TRKendV; 
00271   Double_t TRKendX;
00272   Double_t TRKendY; 
00273   Double_t TRKendR; 
00274   Double_t TRKendZ;
00275   Double_t TRKenddircosU;
00276   Double_t TRKenddircosV;
00277   Double_t TRKenddircosX;
00278   Double_t TRKenddircosY;
00279   Double_t TRKenddircosZ;
00280   Double_t TRKendDistToEdge;
00281   Double_t TRKendDistToEndBack;
00282   Double_t TRKendDistToEndForward;
00283   Double_t TRKendtrace;
00284   Double_t TRKendtraceZ;
00285 
00286   Int_t TRKstrips;
00287   Int_t TRKplanes;
00288   Double_t TRKtotph;
00289   Double_t TRKtrkph;
00290   Double_t TRKshwph;
00291   Int_t TRKspanplanes;
00292   Int_t TRKtrackplanes;
00293   Int_t TRKshowerplanes;
00294   Int_t TRKtracklikeplanes;
00295   Int_t TRKshowerlikeplanes;
00296   Int_t TRKcontained;
00297 
00298   Double_t TRKmomentumRange;
00299   Double_t TRKmomentumCurve;
00300   Double_t TRKforwardRMS;
00301   Int_t TRKforwardNDOF;
00302   Double_t TRKbackwardRMS;
00303   Int_t TRKbackwardNDOF; 
00304   Double_t TRKFITchi2;
00305   Int_t TRKFITndof;
00306   Int_t TRKFITpass;
00307   Double_t TRKFITqpsigmaqp;
00308   Int_t TRKFITemcharge;
00309 
00310   Double_t SHWenergy;
00311   Int_t SHWcontained;
00312 
00313   TObjArray* fStripList;
00314   TObjArray* fTrackStripList;
00315   TObjArray* fTrkShowerStripList;
00316   TObjArray* fShwShowerStripList;
00317 
00318   ClassDef(MadAbID,0);
00319 
00320 };
00321 
00322 #endif

Generated on Mon Feb 15 11:06:54 2010 for loon by  doxygen 1.3.9.1