1 #include "tutorialSelection.hxx" 2 #include "baseSelection.hxx" 3 #include "CutUtils.hxx" 4 #include "SubDetId.hxx" 5 #include "EventBoxUtils.hxx" 6 #include "trackerSelectionUtils.hxx" 19 SetDetectorFV(SubDetId::kFGD1);
38 AddStep(StepBase::kCut,
"muon PID",
new MuonPIDCut());
41 SetBranchAlias(0,
"trunk");
46 SetPreSelectionAccumLevel(2);
50 bool tutorialSelection::FillEventSummary(
AnaEventC& event, Int_t allCutsPassed[]){
54 static_cast<AnaEventSummaryB*
>(
event.Summary)->EventSample = SampleId::kFGD1NuMuCC;
56 return (static_cast<AnaEventSummaryB*>(event.
Summary)->EventSample != SampleId::kUnassigned);
66 EventBoxB* EventBox =
event.EventBoxes[EventBoxId::kEventBoxTracker];
93 return cutUtils::MuonPIDCut(*(box.
MainTrack), _prod5Cut);
141 box.
Vertex->nParticles = 0;
144 for(
int i = 0; i < 4; ++i){
164 for(
int i = 0; i < 4; ++i){
183 trackerSelUtils::FindLeadingTracks(event,box);
226 if (!event.EventBoxes[EventBoxId::kEventBoxTracker])
227 event.EventBoxes[EventBoxId::kEventBoxTracker] =
new EventBoxTracker();
230 boxUtils::FillTracksWithTPC(event, static_cast<SubDetId::SubDetEnum>(GetDetectorFV()));
231 boxUtils::FillTracksWithFGD(event, static_cast<SubDetId::SubDetEnum>(GetDetectorFV()));
232 boxUtils::FillTrajsChargedInTPC(event);
233 boxUtils::FillTrajsChargedInFGDAndNoTPC(event, static_cast<SubDetId::SubDetEnum>(GetDetectorFV()));
AnaTrueVertexB * TrueVertex
Pointer to the AnaTrueVertexB of the interaction that created this AnaTrueParticleB.
Float_t PositionStart[4]
The reconstructed start position of the particle.
AnaTrueVertexB * TrueVertex
-— Define all steps ----—
bool Apply(AnaEventC &event, ToyBoxB &box) const
bool Apply(AnaEventC &event, ToyBoxB &box) const
Float_t Position[4]
The identified position of the global vertex.
bool Apply(AnaEventC &event, ToyBoxB &box) const
SubDetId_h DetectorFV
Indicate the FV we are interested in.
AnaTrackB * MainTrack
For storing the Main Track (The lepton candidate in geranal: HMN or HMP track)
bool Apply(AnaEventC &event, ToyBoxB &box) const
void DefineDetectorFV()
Set detector FV.
void DefineSteps()
========= These are mandatory functions ==================
bool Apply(AnaEventC &event, ToyBoxB &box) const
Int_t nRecObjectsInGroup[NMAXRECOBJECTGROUPS]
----—— RecObjects and TrueRecObjects used in the selection and systematics ------------—— ...
Float_t Momentum
The reconstructed momentum of the particle, at the start position.
AnaVertexB * Vertex
For storing the reconstructed vertex.
bool Apply(AnaEventC &event, ToyBoxB &box) const
Leading tracks with good quality in FGD1.
bool Apply(AnaEventC &event, ToyBoxB &box) const
AnaTrackB * VetoTrack
For storing the veto track.
AnaTrackB * HMNtrack
For storing the highest momentum negative track.
AnaParticleB ** Particles
Representation of a global vertex.
AnaEventSummaryC * Summary
A summary of the event with high level quantities.
bool Apply(AnaEventC &event, ToyBoxB &box) const
Find the Vertex. For the moment it's just the Star position of the HM track.
void InitializeEvent(AnaEventC &event)
Fill the EventBox with the objects needed by this selection.
bool Apply(AnaEventC &event, ToyBoxB &box) const
AnaTrueParticleB * GetTrueParticle() const
Return a casted version of the AnaTrueObject associated.
A cut on event quality. Requires good beam and ND280 data quality flags.
AnaTrackB * OOFVtrack
For storing the oofv fgd tracks.
bool Apply(AnaEventC &event, ToyBoxB &box) const