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

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, 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 }

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

void TreePIDAna::Reset (  ) 

Definition at line 137 of file TreePIDAna.cxx.

00138 {}


Member Data Documentation

TreePID& TreePIDAna::fTreePID [private]

Definition at line 43 of file TreePIDAna.h.

Referenced by Analyze().

NueRecord& TreePIDAna::nueRec [private]

Definition at line 42 of file TreePIDAna.h.

Referenced by Analyze().


The documentation for this class was generated from the following files:
Generated on Mon Sep 1 00:52:52 2014 for loon by  doxygen 1.4.7