7 #ifndef PMAlgCosmicTagger_h 8 #define PMAlgCosmicTagger_h 19 class DetectorClocksData;
23 class PMAlgCosmicTagger;
24 class TrkCandidateColl;
37 Comment(
"Tag tracks sticking out of 1 drift window.")};
39 Name(
"OutOfDriftMargin"),
40 Comment(
"The minimum distance beyond 1 drift window required for tagging track as a cosmic " 44 Comment(
"Tag tracks crossing full detector height")};
46 Comment(
"Tag tracks crossing full detector width")};
48 Comment(
"Tag tracks crossing full detector length")};
50 Name(
"FullCrossingMargin"),
51 Comment(
"The maximum distance between the track length and detector length for full detector " 54 Name(
"TagNonBeamT0Tracks"),
55 Comment(
"Tag particles with reconstructed T0 not consistent with the beam")};
57 Name(
"NonBeamT0Margin"),
58 Comment(
"Tag only those events at least <margin> from the beam time")};
60 Comment(
"Tag tracks that enter through the top of the " 61 "detector and exit through the front or back")};
63 Name(
"TopFrontBackMargin"),
64 Comment(
"Distance tolerence from the top, front and back of the detector")};
66 Name(
"TagApparentStopper"),
67 Comment(
"Tag tracks that enter through the top of the detector appear to stop (without " 68 "seeing evidence of stopping)")};
70 Name(
"ApparentStopperMargin"),
72 "Distance tolerence from the top of the detector to be considered coming in from the top")};
74 Name(
"VetoActualStopper"),
75 Comment(
"If true: use de/dx information to identify stopping muons but do not tag them")};
77 Name(
"StopperBuffer"),
79 "Should find no tracks starting within this distance from the end point of the track")};
83 : fTagOutOfDriftTracks(config.TagOutOfDriftTracks())
84 , fOutOfDriftMargin(config.OutOfDriftMargin())
87 fTagFullHeightTracks(config.TagFullHeightTracks())
88 , fTagFullWidthTracks(config.TagFullWidthTracks())
89 , fTagFullLengthTracks(config.TagFullLengthTracks())
90 , fFullCrossingMargin(config.FullCrossingMargin())
93 fTagNonBeamT0Tracks(config.TagNonBeamT0Tracks())
94 , fNonBeamT0Margin(config.NonBeamT0Margin())
95 , fTagTopFrontBack(config.TagTopFrontBack())
96 , fTopFrontBackMargin(config.TopFrontBackMargin())
97 , fTagApparentStopper(config.TagApparentStopper())
98 , fApparentStopperMargin(config.ApparentStopperMargin())
99 , fVetoActualStopper(config.VetoActualStopper())
100 , fStopperBuffer(config.StopperBuffer())
105 return (fTagOutOfDriftTracks || fTagFullHeightTracks || fTagFullWidthTracks ||
106 fTagFullLengthTracks || fTagNonBeamT0Tracks || fTagApparentStopper || fTagTopFrontBack);
123 bool isTopVertex(
const TVector3& pos,
double tolerance,
short int dirIndx)
const;
125 bool isFrontBackVertex(
const TVector3& pos,
double tolerance,
short int dirIndx)
const;
127 void GetDimensions();
bool fTagOutOfDriftTracks
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
double fTopFrontBackMargin
bool fTagFullLengthTracks
std::vector< double > fDimensionsMin
PMAlgCosmicTagger(const pma::PMAlgCosmicTagger::Config &config)
Definitions of geometry vector data types.
bool fTagFullHeightTracks
double fFullCrossingMargin
std::vector< double > fDimensionsMax
General LArSoft Utilities.
Contains all timing reference information for the detector.
double fApparentStopperMargin