7 #ifndef PMAlgCosmicTagger_h
8 #define PMAlgCosmicTagger_h
10 #include "fhiclcpp/types/Atom.h"
11 #include "fhiclcpp/types/Comment.h"
12 #include "fhiclcpp/types/Name.h"
17 class DetectorClocksData;
21 class PMAlgCosmicTagger;
22 class TrkCandidateColl;
35 Comment(
"Tag tracks sticking out of 1 drift window.")};
37 Name(
"OutOfDriftMargin"),
38 Comment(
"The minimum distance beyond 1 drift window required for tagging track as a cosmic "
42 Comment(
"Tag tracks crossing full detector height")};
44 Comment(
"Tag tracks crossing full detector width")};
46 Comment(
"Tag tracks crossing full detector length")};
48 Name(
"FullCrossingMargin"),
49 Comment(
"The maximum distance between the track length and detector length for full detector "
52 Name(
"TagNonBeamT0Tracks"),
53 Comment(
"Tag particles with reconstructed T0 not consistent with the beam")};
55 Name(
"NonBeamT0Margin"),
56 Comment(
"Tag only those events at least <margin> from the beam time")};
58 Comment(
"Tag tracks that enter through the top of the "
59 "detector and exit through the front or back")};
61 Name(
"TopFrontBackMargin"),
62 Comment(
"Distance tolerence from the top, front and back of the detector")};
64 Name(
"TagApparentStopper"),
65 Comment(
"Tag tracks that enter through the top of the detector appear to stop (without "
66 "seeing evidence of stopping)")};
68 Name(
"ApparentStopperMargin"),
70 "Distance tolerence from the top of the detector to be considered coming in from the top")};
72 Name(
"VetoActualStopper"),
73 Comment(
"If true: use de/dx information to identify stopping muons but do not tag them")};
75 Name(
"StopperBuffer"),
77 "Should find no tracks starting within this distance from the end point of the track")};
size_t fullWidthCrossing(pma::TrkCandidateColl &tracks) const
bool fTagOutOfDriftTracks
ClusterModuleLabel join with tracks
fhicl::Atom< bool > TagFullHeightTracks
fhicl::Atom< bool > TagNonBeamT0Tracks
fhicl::Atom< double > TopFrontBackMargin
fhicl::Atom< double > NonBeamT0Margin
double fTopFrontBackMargin
bool fTagFullLengthTracks
std::vector< double > fDimensionsMin
PMAlgCosmicTagger(const pma::PMAlgCosmicTagger::Config &config)
size_t tagApparentStopper(pma::TrkCandidateColl &tracks) const
size_t outOfDriftWindow(pma::TrkCandidateColl &tracks) const
fhicl::Atom< bool > TagTopFrontBack
bool isFrontBackVertex(const TVector3 &pos, double tolerance, short int dirIndx) const
bool fTagFullHeightTracks
size_t nonBeamT0Tag(detinfo::DetectorClocksData const &clockData, pma::TrkCandidateColl &tracks) const
fhicl::Atom< bool > TagOutOfDriftTracks
fhicl::Atom< bool > TagApparentStopper
short int ConvertDirToInt(const TVector3 &dir) const
BEGIN_PROLOG vertical distance to the surface Name
double fFullCrossingMargin
std::vector< double > fDimensionsMax
fhicl::Atom< double > FullCrossingMargin
fhicl::Atom< double > OutOfDriftMargin
void tag(detinfo::DetectorClocksData const &clockData, pma::TrkCandidateColl &tracks)
fhicl::Atom< double > ApparentStopperMargin
fhicl::Atom< bool > TagFullWidthTracks
Contains all timing reference information for the detector.
fhicl::Atom< double > StopperBuffer
size_t tagTopFrontBack(pma::TrkCandidateColl &tracks) const
size_t fullHeightCrossing(pma::TrkCandidateColl &tracks) const
size_t fullCrossingTagger(pma::TrkCandidateColl &tracks, int direction) const
bool isTopVertex(const TVector3 &pos, double tolerance, short int dirIndx) const
fhicl::Atom< bool > VetoActualStopper
fhicl::Atom< bool > TagFullLengthTracks
size_t fullLengthCrossing(pma::TrkCandidateColl &tracks) const
double fApparentStopperMargin