#include <TreePIDAna.h>
Public Member Functions | |
| TreePIDAna (NueRecord &nr, TreePID &tp) | |
| virtual | ~TreePIDAna () |
| void | Analyze () |
| void | Reset () |
Private Member Functions | |
| TreePIDAna (const TreePIDAna &rhs) | |
| TreePIDAna & | operator= (const TreePIDAna &rhs) |
Private Attributes | |
| NueRecord & | nueRec |
| TreePID & | fTreePID |
Author: Mayly Sanchez (msanchez@physics.harvard.edu)
Definition at line 30 of file TreePIDAna.h.
|
||||||||||||
|
Definition at line 31 of file TreePIDAna.cxx.
|
|
|
Definition at line 36 of file TreePIDAna.cxx. 00037 {}
|
|
|
|
|
|
Definition at line 39 of file TreePIDAna.cxx. References NueRecord::anainfo, NueRecord::angclusterfit, AngClusterFit::fACluFitKurt, TreePID::fCutClass, TreePID::fCutClass1, TreePID::fCutClass2, TreePID::fCutClass3, TreePID::fCutPID, TreePID::fCutPID1, TreePID::fCutPID2, TreePID::fCutPID3, HitCalc::fHitLongEnergy, TreePID::fPassBCuts, fTreePID, VldContext::GetDetector(), NueHeader::GetEventNo(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), Shwfit::hiPhPlaneCount, Shwfit::hiPhStripCount, NueRecord::hitcalc, AnalysisInfoNue::inFiducialVolume, AnalysisInfoNue::isFullyContained, Shwfit::par_b, ANtpEventInfoNue::phMip, ANtpEventInfoNue::phNueGeV, ANtpShowerInfo::planes, ANtpEventInfo::planes, ANtpTrackInfo::planes, ANtpShowerInfo::pulseHeight, ANtpTrackInfo::pulseHeight, NueRecord::shwfit, Shwfit::shwmaxplane, NueRecord::srevent, NueRecord::srshower, NueRecord::srtrack, ANtpTrackInfoNue::trklikePlanes, Shwfit::uv_kurt, Shwfit::uv_molrad_vert, and Shwfit::uv_rms. Referenced by NueRecordAna::Analyze(). 00040 {
00041 NueRecord *nr=&nueRec;
00042
00043 fTreePID.fPassBCuts=1;
00044 fTreePID.fCutPID=1;
00045 fTreePID.fCutClass=1;
00046 fTreePID.fCutPID1=1;
00047 fTreePID.fCutClass1=1;
00048 fTreePID.fCutPID2=1;
00049 fTreePID.fCutClass2=1;
00050 fTreePID.fCutPID3=1;
00051 fTreePID.fCutClass3=1;
00052
00053 // Cut for no reco event
00054 if (nr->GetHeader().GetEventNo()<0) fTreePID.fPassBCuts=0;
00055 // Cut for Fiducial volume
00056 if (nr->anainfo.inFiducialVolume != 1) fTreePID.fPassBCuts=0;
00057 // Cut for Full Containment, note difference in Near/Far
00058 if (nr->GetHeader().GetVldContext().GetDetector()== Detector::kFar
00059 && nr->anainfo.isFullyContained != 1) fTreePID.fPassBCuts=0;
00060 if (nr->GetHeader().GetVldContext().GetDetector()== Detector::kNear
00061 && nr->anainfo.isFullyContained != 1
00062 && nr->anainfo.isFullyContained != -2) fTreePID.fPassBCuts=0;
00063
00064
00065 Int_t kHiPlaneTrackCut=25;
00066 Int_t kPhProngCut=5000; //sigcor
00067 Int_t kMeuEnergyCut=150; //Meu
00068 Int_t kHiTrackLikeCut=18;
00069 Int_t kLoPlaneEventCut=-1;
00070 Int_t kHiEnergyCut=-1;//Meu
00071 Int_t kLoEnergyCut=-1;//Meu
00072 Int_t kHiEnergyShowerCut=-1; //gev
00073 Int_t kLoEnergyShowerCut=-1; //gev
00074 Int_t kLoPhNStripCut=-1;
00075 Int_t kLoPhNPlaneCut=-1;
00076
00077 // Cut for max number of planes in Track
00078 if (nr->srtrack.planes>=kHiPlaneTrackCut&&kHiPlaneTrackCut>=0
00079 ) fTreePID.fPassBCuts=0;
00080 // Cut on max total event energy in Meu
00081 if(nr->srevent.phMip>kMeuEnergyCut&&kMeuEnergyCut>=0) fTreePID.fPassBCuts=0;
00082 // Cut on min Total pulse height per prong (sigcor)
00083 if(TMath::Max(nr->srtrack.pulseHeight,nr->srshower.pulseHeight)
00084 <kPhProngCut&&kPhProngCut>=0) fTreePID.fPassBCuts=0;
00085 // Cut on max number of trklike planes in Track
00086 if (nr->srtrack.trklikePlanes>=kHiTrackLikeCut&&kHiTrackLikeCut>=0
00087 ) fTreePID.fPassBCuts=0;
00088 // Cut on min number of planes in Event
00089 if (nr->srevent.planes<kLoPlaneEventCut&&kLoPlaneEventCut>=0
00090 ) fTreePID.fPassBCuts=0;
00091 // Cut on max total event energy in Meu
00092 if (nr->srevent.phMip>=kHiEnergyCut
00093 &&kHiEnergyCut>=0) fTreePID.fPassBCuts=0;
00094 // Cut on min total event energy in Meu
00095 if (nr->srevent.phMip<kLoEnergyCut
00096 &&kLoEnergyCut>=0) fTreePID.fPassBCuts=0;
00097 // Cut on max shower energy (in gev)
00098 if (nr->srevent.phNueGeV>=kHiEnergyShowerCut
00099 &&kHiEnergyShowerCut>=0) fTreePID.fPassBCuts=0;
00100 // Cut on min shower energy (in gev)
00101 if (nr->srevent.phNueGeV<kLoEnergyShowerCut
00102 &&kLoEnergyShowerCut>=0) fTreePID.fPassBCuts=0;
00103 // Cut on min number of strips with above a threshold ph
00104 if (nr->shwfit.hiPhStripCount<kLoPhNStripCut
00105 &&kLoPhNStripCut>=0) fTreePID.fPassBCuts=0;
00106 // Cut on min number of planes with above a threshold ph
00107 if (nr->shwfit.hiPhPlaneCount<kLoPhNPlaneCut
00108 &&kLoPhNPlaneCut>=0) fTreePID.fPassBCuts=0;
00109
00110
00111 if((nr->srevent.planes<1.5||nr->srevent.planes>15.5) ||
00112 (nr->hitcalc.fHitLongEnergy<42.8||nr->hitcalc.fHitLongEnergy>315.)||
00113 (nr->shwfit.uv_molrad_vert<0.70||nr->shwfit.uv_molrad_vert>5.13)||
00114 (nr->shwfit.par_b<0.26||nr->shwfit.par_b>2.4)) fTreePID.fCutPID=0;
00115
00116 if((nr->shwfit.uv_rms<1.28||nr->shwfit.uv_rms>3.28) ||
00117 (nr->hitcalc.fHitLongEnergy<35.0||nr->hitcalc.fHitLongEnergy>313.5)||
00118 (nr->shwfit.par_b<0.26||nr->shwfit.par_b>1.80)||
00119 (nr->shwfit.uv_kurt<21.67)||
00120 (nr->shwfit.shwmaxplane>44.5)||
00121 (nr->angclusterfit.fACluFitKurt<124.37)||
00122 (nr->srshower.planes>14.5)) fTreePID.fCutPID1=0;
00123
00124
00125 if((nr->srevent.planes<6.5||nr->srevent.planes>14.5) ||
00126 (nr->hitcalc.fHitLongEnergy<54.7||nr->hitcalc.fHitLongEnergy>298.2)||
00127 (nr->shwfit.uv_molrad_vert<1.71||nr->shwfit.uv_molrad_vert>6.06)||
00128 (nr->shwfit.par_b<0.32||nr->shwfit.par_b>1.31)) fTreePID.fCutPID2=0;
00129
00130
00131 if(!fTreePID.fPassBCuts||!fTreePID.fCutPID) fTreePID.fCutClass=0;
00132 if(!fTreePID.fPassBCuts||!fTreePID.fCutPID1) fTreePID.fCutClass1=0;
00133 if(!fTreePID.fPassBCuts||!fTreePID.fCutPID2) fTreePID.fCutClass2=0;
00134
00135 }
|
|
|
|
|
|
Definition at line 137 of file TreePIDAna.cxx. 00138 {}
|
|
|
Definition at line 43 of file TreePIDAna.h. Referenced by Analyze(). |
|
|
Definition at line 42 of file TreePIDAna.h. |
1.3.9.1