7 #ifndef PMAlgCosmicTagger_h 8 #define PMAlgCosmicTagger_h 15 class DetectorClocksData;
19 class PMAlgCosmicTagger;
20 class TrkCandidateColl;
31 Comment(
"Tag tracks sticking out of 1 drift window.")};
33 Name(
"OutOfDriftMargin"),
34 Comment(
"The minimum distance beyond 1 drift window required for tagging track as a cosmic " 38 Comment(
"Tag tracks crossing full detector height")};
40 Comment(
"Tag tracks crossing full detector width")};
42 Comment(
"Tag tracks crossing full detector length")};
44 Name(
"FullCrossingMargin"),
45 Comment(
"The maximum distance between the track length and detector length for full detector " 48 Name(
"TagNonBeamT0Tracks"),
49 Comment(
"Tag particles with reconstructed T0 not consistent with the beam")};
51 Name(
"NonBeamT0Margin"),
52 Comment(
"Tag only those events at least <margin> from the beam time")};
54 Comment(
"Tag tracks that enter through the top of the " 55 "detector and exit through the front or back")};
57 Name(
"TopFrontBackMargin"),
58 Comment(
"Distance tolerence from the top, front and back of the detector")};
60 Name(
"TagApparentStopper"),
61 Comment(
"Tag tracks that enter through the top of the detector appear to stop (without " 62 "seeing evidence of stopping)")};
64 Name(
"ApparentStopperMargin"),
66 "Distance tolerence from the top of the detector to be considered coming in from the top")};
68 Name(
"VetoActualStopper"),
69 Comment(
"If true: use de/dx information to identify stopping muons but do not tag them")};
71 Name(
"StopperBuffer"),
73 "Should find no tracks starting within this distance from the end point of the track")};
77 : fTagOutOfDriftTracks(config.TagOutOfDriftTracks())
78 , fOutOfDriftMargin(config.OutOfDriftMargin())
81 fTagFullHeightTracks(config.TagFullHeightTracks())
82 , fTagFullWidthTracks(config.TagFullWidthTracks())
83 , fTagFullLengthTracks(config.TagFullLengthTracks())
84 , fFullCrossingMargin(config.FullCrossingMargin())
87 fTagNonBeamT0Tracks(config.TagNonBeamT0Tracks())
88 , fNonBeamT0Margin(config.NonBeamT0Margin())
89 , fTagTopFrontBack(config.TagTopFrontBack())
90 , fTopFrontBackMargin(config.TopFrontBackMargin())
91 , fTagApparentStopper(config.TagApparentStopper())
92 , fApparentStopperMargin(config.ApparentStopperMargin())
93 , fVetoActualStopper(config.VetoActualStopper())
94 , fStopperBuffer(config.StopperBuffer())
100 return (fTagOutOfDriftTracks || fTagFullHeightTracks || fTagFullWidthTracks ||
101 fTagFullLengthTracks || fTagNonBeamT0Tracks || fTagApparentStopper || fTagTopFrontBack);
118 bool isTopVertex(
const TVector3&
pos,
double tolerance,
short int dirIndx)
const;
120 bool isFrontBackVertex(
const TVector3& pos,
double tolerance,
short int dirIndx)
const;
122 void GetDimensions();
123 short int ConvertDirToInt(
const TVector3&
dir)
const;
bool fTagOutOfDriftTracks
ChannelGroupService::Name Name
double fTopFrontBackMargin
bool fTagFullLengthTracks
std::vector< double > fDimensionsMin
PMAlgCosmicTagger(const pma::PMAlgCosmicTagger::Config &config)
bool fTagFullHeightTracks
double fFullCrossingMargin
std::vector< double > fDimensionsMax
General LArSoft Utilities.
Contains all timing reference information for the detector.
double fApparentStopperMargin