HighLAND
Public Types | Public Member Functions | Protected Attributes | List of all members
StepBase Class Reference

#include <StepBase.hxx>

Inheritance diagram for StepBase:
AntiMuonPIDCut AntiNuMuCCMultiTrackFGD2_CC1TrackCut AntiNuMuCCMultiTrackFGD2_CCNTracksCut AntiNuMuCCMultiTrackFGD2_FillSummaryAction Bwd_4pi Bwd_PID Bwd_Quality Bwd_Veto CCnQEcut_antinu CCQEcut_antinu CountTracksAndShowersAction CSECAL_4pi CSECAL_PID CSFGD2_4pi CSFGD2_PID DeltaZCut EcalEMEnergyCut EcalEMEnergyCut_antiNueCC EcalEMHIPPIDCut_antiNueCC EcalMIPEMPIDCut EcalPi0VetoCut EcalPi0VetoCut_antinuCCMultiPi ECalVetoCut EOverPCut EoverPCut_antiNueCC EOverPCutFGD2_antiNueCC EventQualityCut ExternalFGD1lastlayersCut ExternalFGD1lastlayersCut ExternalFGD1layersCut ExternalFGD2LastLayersCut ExternalFGD2layersCut ExternalFGD2VetoCut ExternalFGD2VetoCut_antiNumuCCFGD2 ExternalVetoCut ExternalVetoCut FGD1PairCut_gamma FGDShowerCut_antiNueCC FillFGDIsoTracksAction FillLeadingTracksAction FillLeadingTracksAction_antiNueCC FillSummaryAction_antinu FillSummaryAction_antinu_CCMultiTrack FillSummaryAction_antinuCCMultiPi FillSummaryAction_antiNueCC FillSummaryAction_antiNueCCFGD2Selection FillSummaryAction_antiNumuCCFGD2 FillSummaryAction_antiNumuCCMultiPiFGD2 FillSummaryAction_nueCC FillSummaryAction_nueCCFGD2Selection FillSummaryAction_numuBkg FillSummaryAction_numuBkg_CCMultiPi FillSummaryAction_numuBkg_CCMultiTrack FillSummaryAction_numuBkgFGD2 FillSummaryAction_numuBkgMultiPiFGD2 FillSummaryAction_numuBkgMultiTrackFGD2 FillSummaryAction_numuCC FillSummaryAction_numuCC4pi FillSummaryAction_numuCC4pi FillSummaryAction_numuCC4piFGD2 FillSummaryAction_numuCC4piMultiPi FillSummaryAction_numuCC4piMultiPiFGD2 FillSummaryAction_numuCCFGD2 FillSummaryAction_numuCCMultiPi FillSummaryAction_numuCCMultiPiFGD2 FillSummaryAction_tutorial FillSummaryAction_tutorialBranches FillSummaryActionGamma FillTPCVetoTrackAction FillVertex FindEcalPhotonsAction FindEcalPhotonsAction_antinuCCMultiPi FindECalVetoTrackAction FindFGD1PairsAction_gamma FindLeadingTracksAction FindLeadingTracksAction FindLeadingTracksAction_antinu FindLeadingTracksAction_gamma FindLongTPCTracks FindOOFVTrackAction FindOOFVTrackAction FindP0DLeadingTracksAction FindP0DVetoAction FindP0DVetoTrackAction FindPairsAction FindPionsAction FindPionsAction_antinuCCMultiPi FindSecondMostEnergeticTPCTrack_antiNueCC FindTrueVertexAction FindVertexAction FindVertexAction FindVertexAction FindVetoTrackAction FindVetoTrackAction Fwd_4pi Fwd_PID Fwd_Quality Fwd_Veto GammaIsoVetoCut HABwd_4pi HABwd_PID HABwd_Quality HABwd_Veto HAFwd_4pi HAFwd_PID HAFwd_Quality HAFwd_Veto HighestMomentumCut MinvCut_gamma MomentumQualityCut MoreThanTwoLongTPCTracksCut MoreThanTwoTPCTracksCut MostEnergeticTrackCut_antiNueCC MultipleP0DPIDCut MultiplicityCut MuonPIDCut MuonPIDCut NegativeMultiplicityCut NoMichelElectronsCut NoPionCut NoPionCut_antinuCCMultiPi NoTracksCut NumuBkgMuonPIDCut numuCC4pi::Bwd numuCC4pi::Bwd_PID numuCC4pi::Bwd_Quality numuCC4pi::Bwd_Veto numuCC4pi::FindVertexAction numuCC4pi::Fwd numuCC4pi::Fwd_PID numuCC4pi::Fwd_Quality numuCC4pi::Fwd_Veto numuCC4pi::HABwd numuCC4pi::HABwd_PID numuCC4pi::HABwd_Quality numuCC4pi::HABwd_Veto numuCC4pi::HAFwd numuCC4pi::HAFwd_PID numuCC4pi::HAFwd_Quality numuCC4pi::HAFwd_Veto numuCC4pi::PIDAction numuCC4pi::SortTracksAction numuCC4pi::TotalMultiplicityCut numuCC4pi::TrackGQandFVCut numuCC4pi::VetoAction numuCC4piFGD2::PIDAction numuCC4piFGD2::SortTracksAction numuCC4piFGD2::TotalMultiplicityCut numuCC4piFGD2::TrackGQandFVCut numuCC4piFGD2::VetoAction numuCC4piMultiPi::EcalPi0VetoCut numuCC4piMultiPi::FindEcalPhotonsAction numuCC4piMultiPi::FindPionsAction numuCC4piMultiPi::NoPionCut numuCC4piMultiPi::OnePionCut numuCC4piMultiPi::OthersCut numuCCBwd::AvailableToF numuCCBwd::Exclusive numuCCBwd::FindMuonCandidateAction numuCCBwd::FindVertexAction numuCCBwd::MuonPIDCut numuCCBwd::NoShower numuCCBwd::SwitchBackAction numuCCBwd::ToF OnePionCut OnePionCut_antinuCCMultiPi OneTPCTrackCut OthersCut OthersCut_antinuCCMultiPi P0DFGD1VetoCut P0DSelectionVetoCut P0DVetoCut PairCut PairTrackCut_gamma PIDAction PIDCut_gamma PositiveMultiplicityCut PrimaryTrackQualityCut_gamma ScintillatorCut SecondTPCPIDCut SecondTPCPIDCut_antiNueCC SetDetectorFVAction SingleP0DPIDCut SortTracksAction ToFCut ToFCut_antiNueCC TotalMultiplicityCut TotalMultiplicityCut TotalMultiplicityCut TotalMultiplicityFGD2Cut TPCElectronPullCut TPCMuonPullCut TPCPionPullCut TPCVetoCut TPCVetoCut_FGD2 TrackGQandFVCut TrackQualityCut TrackQualityFiducialCut TrackQualityFiducialCut TwoShowersCut TwoTPCTracksCut VetoAction WaterCut

Public Types

enum  TypeEnum { kCut =0, kAction, kUnknown }
 Enumerator describing the values that _type member can take.
 
enum  BranchStatus { BranchOK =0, BranchEmpty, NoBranches, BranchOutOfRange }
 

Public Member Functions

virtual StepBaseMakeClone ()
 MANDATORY FUNCTIONS !!!
 
virtual bool Apply (AnaEventC &event, ToyBoxB &box) const
 
void SetTitle (const std::string &title)
 
void SetType (TypeEnum type)
 Set the type of this step.
 
void SetBreak (bool b)
 Set whether the cut sequence should be stopped when this cut fails.
 
void SetIndex (Int_t index)
 Set the index of this step.
 
const std::string & Title () const
 Return the title of this step.
 
TypeEnum Type () const
 Return the type of this step.
 
bool Break () const
 Return true if the cut sequence should be stopped when a cut fails.
 
Int_t Index () const
 Return the index of this step.
 
std::string ConvertType () const
 Convert into a string the type of this step.
 
void DisableInBranch (Int_t branch)
 Disable step in a given branch.
 
void EnableInBranch (Int_t branch)
 Enable step in a given branch.
 
bool IsDisabledInBranch (Int_t branch) const
 Returns true if the step is disabled in the specified branch.
 
const std::vector< StepBase * > & GetNextSteps () const
 Returns the vector of next steps.
 
void RemoveNextStep (const std::string &title, Int_t ID=0)
 Remove step with a given title (and branch ID) from next steps.
 
void AddBranchUniqueID (UInt_t ibranch)
 
void RemoveBranchUniqueID (UInt_t branch)
 Remove a branch unique ID from this step.
 
const std::vector< UInt_t > & GetBranchUniqueIDs () const
 Returns the vector of branche unique IDs associated to this step.
 
void AddNextStep (StepBase *step, Int_t branch=-1)
 
void GetNextSteps (std::vector< StepBase *> &steps, bool withSplits=false)
 Get the vector of next steps.
 
BranchStatus GetNextStepsInBranch (std::vector< StepBase *> &steps, Int_t branch)
 Get the vector of next steps in a given branch, returns a status code.
 
void ValidateStepRecursive () const
 check that the step and all its suns are correct (it was branch unique IDs defined)
 
 ClassDef (StepBase, 1)
 

Protected Attributes

TypeEnum _type
 The type of this step: cut or action.
 
bool _break
 true if the cut sequence should be stopped when a cut fails
 
std::string _title
 The title of this step, which is used by the DrawingTools.
 
std::vector< bool > _disabledInBranch
 Is the step disabled in a given branch.
 
std::vector< StepBase * > _nextSteps
 The vector of next steps.
 
std::vector< UInt_t > _branchUniqueIDs
 Branch unique IDs associated to this step.
 
Int_t _index
 Index of the step in the selection.
 

Detailed Description

Base class for an event selection step. All user steps should inherit from this class, and implement the Apply() function. The type and title are set when the step is added to the step manager using StepManager::AddStep(). Steps can be of type Cut or Action. Cuts would have to return a meaninful boolean while for actions the boolean will be ignored

Definition at line 18 of file StepBase.hxx.

Member Function Documentation

§ AddBranchUniqueID()

void StepBase::AddBranchUniqueID ( UInt_t  ibranch)

Add a branch unique ID to this step Although steps are unique and can be shared by different branches we need to store the branches in which this step is used

Definition at line 35 of file StepBase.cxx.

35  {
36 //****************************************************
37 
38  _branchUniqueIDs.push_back(branch);
39  if (_disabledInBranch.size() < branch+1){
40  _disabledInBranch.resize(branch+1);
41  for (UInt_t i=0;i<_disabledInBranch.size();i++)
42  _disabledInBranch[i]=false;
43  }
44 }
std::vector< UInt_t > _branchUniqueIDs
Branch unique IDs associated to this step.
Definition: StepBase.hxx:137
std::vector< bool > _disabledInBranch
Is the step disabled in a given branch.
Definition: StepBase.hxx:131

§ AddNextStep()

void StepBase::AddNextStep ( StepBase step,
Int_t  branch = -1 
)

Add a next step If now second argument is specified this step will have a unique next step (no split) If this step contains a split we need to specify the branch to which the next step is added

Definition at line 71 of file StepBase.cxx.

71  {
72 //********************************************************************
73 
74  if (branch==-1 || _nextSteps.size()==0)
75  _nextSteps.push_back(step);
76  else{
77  if (branch>=0 && branch < (Int_t)_nextSteps.size()){
78  _nextSteps[branch] = step;
79  }
80  else
81  std::cout << "StepBase::AddNextStep(). branch " << branch << " not defined for step '" << _title << "'" << std::endl;
82  }
83 }
std::string _title
The title of this step, which is used by the DrawingTools.
Definition: StepBase.hxx:128
std::vector< StepBase * > _nextSteps
The vector of next steps.
Definition: StepBase.hxx:134

§ Apply()

virtual bool StepBase::Apply ( AnaEventC event,
ToyBoxB box 
) const
inlinevirtual

The return value should specify whether the step was passed. For actions the return value is ignored

Reimplemented in MomentumQualityCut, ExternalFGD1layersCut, ToFCut, ECalVetoCut, HighestMomentumCut, P0DVetoCut, PairCut, FindPairsAction, GammaIsoVetoCut, TPCVetoCut, FillTPCVetoTrackAction, SecondTPCPIDCut, EcalMIPEMPIDCut, EcalEMEnergyCut, TPCPionPullCut, CSECAL_4pi, CSECAL_PID, TPCMuonPullCut, numuCC4piMultiPi::OthersCut, CSFGD2_4pi, EcalPi0VetoCut_antinuCCMultiPi, EcalPi0VetoCut, CSFGD2_PID, numuCC4piMultiPi::OnePionCut, numuCC4pi::HABwd, FindEcalPhotonsAction_antinuCCMultiPi, FindEcalPhotonsAction, HABwd_4pi, numuCC4piMultiPi::NoPionCut, TPCElectronPullCut, numuCC4pi::HABwd_PID, HABwd_PID, numuCC4piMultiPi::EcalPi0VetoCut, numuCC4pi::HABwd_Veto, HABwd_Veto, FindPionsAction_antinuCCMultiPi, FindPionsAction, numuCC4piMultiPi::FindEcalPhotonsAction, numuCC4pi::HABwd_Quality, HABwd_Quality, FillFGDIsoTracksAction, numuCC4pi::HAFwd, HAFwd_4pi, numuCC4pi::HAFwd_PID, numuCC4piMultiPi::FindPionsAction, TrackQualityCut, HAFwd_PID, OthersCut_antinuCCMultiPi, FillSummaryAction_numuCCMultiPi, numuCC4pi::HAFwd_Veto, HAFwd_Veto, OnePionCut_antinuCCMultiPi, numuCC4pi::HAFwd_Quality, OthersCut, MultiplicityCut, HAFwd_Quality, NoPionCut_antinuCCMultiPi, numuCC4pi::Bwd, OnePionCut, FindP0DVetoTrackAction, Bwd_4pi, FillSummaryAction_numuCC4piMultiPi, ToFCut_antiNueCC, FillSummaryAction_antinuCCMultiPi, numuCC4pi::Bwd_PID, NoPionCut, FindECalVetoTrackAction, Bwd_PID, numuCC4pi::Bwd_Veto, numuCCBwd::FindMuonCandidateAction, Bwd_Veto, FillVertex, numuCC4pi::Bwd_Quality, Bwd_Quality, FindOOFVTrackAction, FGDShowerCut_antiNueCC, FillLeadingTracksAction, numuCCBwd::SwitchBackAction, numuCC4pi::Fwd, Fwd_4pi, FindVetoTrackAction, FillSummaryAction_nueCC, numuCC4pi::Fwd_PID, numuCCBwd::FindVertexAction, Fwd_PID, FindVertexAction, EoverPCut_antiNueCC, numuCC4pi::Fwd_Veto, Fwd_Veto, numuCC4pi::Fwd_Quality, FindLongTPCTracks, FindLeadingTracksAction, Fwd_Quality, numuCCBwd::MuonPIDCut, numuCC4pi::FindVertexAction, MoreThanTwoLongTPCTracksCut, ExternalFGD1lastlayersCut, EcalEMHIPPIDCut_antiNueCC, FindOOFVTrackAction, FillSummaryAction_numuCC4pi, numuCC4pi::PIDAction, MoreThanTwoTPCTracksCut, DeltaZCut, FindVetoTrackAction, FindTrueVertexAction, numuCCBwd::AvailableToF, FindVertexAction, numuCC4pi::VetoAction, TwoTPCTracksCut, ExternalVetoCut, FindVertexAction, NoMichelElectronsCut, PIDAction, EcalEMEnergyCut_antiNueCC, PIDCut_gamma, numuCCBwd::NoShower, numuCC4pi::TrackGQandFVCut, OneTPCTrackCut, NoTracksCut, VetoAction, MuonPIDCut, FindLeadingTracksAction, numuCC4pi::SortTracksAction, FillSummaryAction_tutorialBranches, TwoShowersCut, TrackGQandFVCut, MinvCut_gamma, numuCCBwd::ToF, ExternalFGD1lastlayersCut, TotalMultiplicityCut, SecondTPCPIDCut_antiNueCC, numuCC4pi::TotalMultiplicityCut, ExternalFGD2layersCut, SortTracksAction, numuCC4piFGD2::PIDAction, CountTracksAndShowersAction, ExternalVetoCut, TrackQualityFiducialCut, FillSummaryAction_numuCC4pi, PrimaryTrackQualityCut_gamma, SetDetectorFVAction, TPCVetoCut_FGD2, TotalMultiplicityCut, numuCC4piFGD2::VetoAction, MostEnergeticTrackCut_antiNueCC, FillSummaryAction_tutorial, MuonPIDCut, numuCCBwd::Exclusive, FGD1PairCut_gamma, numuCC4piFGD2::TrackGQandFVCut, ScintillatorCut, PairTrackCut_gamma, FindSecondMostEnergeticTPCTrack_antiNueCC, P0DFGD1VetoCut, FindLeadingTracksAction_antinu, numuCC4piFGD2::SortTracksAction, TotalMultiplicityCut, FindLeadingTracksAction_gamma, WaterCut, EOverPCutFGD2_antiNueCC, FillLeadingTracksAction_antiNueCC, FindFGD1PairsAction_gamma, ExternalFGD2LastLayersCut, AntiMuonPIDCut, EOverPCut, NumuBkgMuonPIDCut, numuCC4piFGD2::TotalMultiplicityCut, TrackQualityFiducialCut, AntiNuMuCCMultiTrackFGD2_CCNTracksCut, FillSummaryActionGamma, FillSummaryAction_antiNueCCFGD2Selection, FillSummaryAction_antiNueCC, TotalMultiplicityFGD2Cut, CCnQEcut_antinu, ExternalFGD2VetoCut, PositiveMultiplicityCut, NegativeMultiplicityCut, FillSummaryAction_numuCC, P0DSelectionVetoCut, AntiNuMuCCMultiTrackFGD2_CC1TrackCut, EventQualityCut, FillSummaryAction_numuCC4piMultiPiFGD2, ExternalFGD2VetoCut_antiNumuCCFGD2, FillSummaryAction_nueCCFGD2Selection, FillSummaryAction_numuCC4piFGD2, CCQEcut_antinu, FillSummaryAction_antinu, FillSummaryAction_numuCCFGD2, FillSummaryAction_numuBkgMultiPiFGD2, FillSummaryAction_numuBkgMultiTrackFGD2, FillSummaryAction_numuBkg, FindP0DVetoAction, FillSummaryAction_antiNumuCCMultiPiFGD2, AntiNuMuCCMultiTrackFGD2_FillSummaryAction, FillSummaryAction_numuCCMultiPiFGD2, MultipleP0DPIDCut, FillSummaryAction_numuBkgFGD2, FillSummaryAction_antiNumuCCFGD2, FillSummaryAction_numuBkg_CCMultiPi, FillSummaryAction_numuBkg_CCMultiTrack, FillSummaryAction_antinu_CCMultiTrack, FindP0DLeadingTracksAction, and SingleP0DPIDCut.

Definition at line 46 of file StepBase.hxx.

46 {(void)event;(void)box;return true;std::cout << "ERROR: StepBase::Apply() must be implemented in your Cut!!!" << std::endl;exit(1);}

§ SetTitle()

void StepBase::SetTitle ( const std::string &  title)
inline

Set the title of this step, which is the "nice" version of the step name, used when plotting the step.

Definition at line 51 of file StepBase.hxx.

51 {_title=title;}
std::string _title
The title of this step, which is used by the DrawingTools.
Definition: StepBase.hxx:128

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