TreePIDAna Class Reference

Calculate PID from Tree or Cut methods and perform classification. More...

#include <TreePIDAna.h>

List of all members.

Public Member Functions

 TreePIDAna (NueRecord &nr, TreePID &tp)
virtual ~TreePIDAna ()
void Analyze ()
void Reset ()

Private Member Functions

 TreePIDAna (const TreePIDAna &rhs)
TreePIDAnaoperator= (const TreePIDAna &rhs)

Private Attributes

NueRecordnueRec
TreePIDfTreePID

Detailed Description

Calculate PID from Tree or Cut methods and perform classification.

Author: Mayly Sanchez (msanchez@physics.harvard.edu)

Version:
Revision
1.11
Date:
Date
2008/11/19 18:22:51

Created on: Thu Mar 16 20:10:10 2006

Id
TreePIDAna.cxx,v 1.11 2008/11/19 18:22:51 rhatcher Exp

Author: Mayly Sanchez (msanchez@minos.phy.tufts.edu)

Version:
Revision
1.1
Date:
Date
2006/03/20 06:59:13

Created on: Thu Mar 16 19:54:12 2006

Id
TreePIDAna.h,v 1.1 2006/03/20 06:59:13 msanchez Exp

Definition at line 30 of file TreePIDAna.h.


Constructor & Destructor Documentation

TreePIDAna::TreePIDAna ( NueRecord nr,
TreePID tp 
)

Definition at line 31 of file TreePIDAna.cxx.

00031                                                 :
00032     nueRec(nr),
00033     fTreePID(tp)
00034 {}

TreePIDAna::~TreePIDAna (  )  [virtual]

Definition at line 36 of file TreePIDAna.cxx.

00037 {}

TreePIDAna::TreePIDAna ( const TreePIDAna rhs  )  [private]

Member Function Documentation

void TreePIDAna::Analyze (  ) 

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, Detector::kFar, Detector::kNear, nueRec, Shwfit::par_b, ANtpEventInfoNue::phMip, ANtpEventInfoNue::phNueGeV, ANtpShowerInfo::planes, ANtpTrackInfo::planes, ANtpEventInfo::planes, ANtpTrackInfo::pulseHeight, ANtpShowerInfo::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 }

TreePIDAna& TreePIDAna::operator= ( const TreePIDAna rhs  )  [private]
void TreePIDAna::Reset (  ) 

Definition at line 137 of file TreePIDAna.cxx.

00138 {}


Member Data Documentation

Definition at line 43 of file TreePIDAna.h.

Referenced by Analyze().

Definition at line 42 of file TreePIDAna.h.

Referenced by Analyze().


The documentation for this class was generated from the following files:

Generated on 20 Jul 2017 for loon by  doxygen 1.6.1