9 #ifndef TRAJCLUSTERALGDATASTRUCT_H 10 #define TRAJCLUSTERALGDATASTRUCT_H 31 #include "TMVA/Reader.h" 42 constexpr
unsigned int Tpad = 10;
43 constexpr
unsigned int Cpad = 10000;
45 inline CTP_t
EncodeCTP(
unsigned int cryo,
unsigned int tpc,
unsigned int plane) {
return cryo * Cpad + tpc * Tpad + plane; }
98 bool Neutrino {
false};
123 double HitPosErr2 {0};
131 float DeltaRMS {0.02};
133 unsigned short NTPsFit {2};
135 unsigned short AngleCode {0};
136 std::vector<unsigned int>
Hits;
137 std::bitset<16> UseHit {0};
138 std::bitset<8> Environment {0};
143 std::vector<TrajPoint>
Pts;
155 std::array<unsigned short, 2> VtxID {{0,0}};
156 std::array<unsigned short, 2> EndPt {{0,0}};
160 unsigned short PDGCode {0};
164 unsigned int mcpListIndex {UINT_MAX};
165 std::array<std::bitset<8>, 2> StopFlag {};
166 std::bitset<8> Strategy {};
167 bool NeedsUpdate {
false};
169 bool MaskedLastTP {
false};
173 unsigned short nextForecastUpdate {0};
174 float showerLikeFraction {0};
177 float chgSlopeErr {0};
178 float chgFitChiDOF {0};
181 bool leavesBeforeEnd {
false};
182 bool foundShower {
false};
183 bool endBraggPeak {
false};
212 std::array<Point3_t, 2>
XYZ;
213 std::array<Vector3_t, 2>
Dir;
215 std::array<std::vector<float>, 2>
dEdx;
217 std::array<int, 2>
Vx3ID {{ 0, 0 }};
222 size_t ParentUID {0};
225 unsigned int mcpListIndex {UINT_MAX};
227 float CosmicScore{0};
231 bool NeedsUpdate {
true};
252 float DirectionFOM {1};
254 float EnvelopeArea {0};
255 float ChgDensity {0};
263 bool NeedsUpdate {
true};
275 double OpenAngle {0.12};
284 std::vector<unsigned int>
Hits;
290 unsigned short PFPIndex {USHRT_MAX};
292 bool NeedsUpdate {
true};
334 unsigned short nPlanes {0};
511 bool dbgVxNeutral {
false};
512 bool dbgVxMerge {
false};
513 bool dbgVxJunk {
false};
516 bool dbgDeltaRayTag {
false};
517 bool dbgMuonTag {
false};
520 bool dbgStitch {
false};
521 bool dbgSummary {
false};
522 bool dbgDump {
false};
525 bool doForecast {
false};
536 std::vector<recob::Hit>
const* allHits =
nullptr;
549 bool aveHitRMSValid {
false};
570 std::vector<Trajectory>
tjs;
580 std::vector<ShowerStruct>
cots;
583 bool isValid {
false};
589 extern std::vector<TjForecast>
tjfs;
592 extern std::vector<TCSlice>
slices;
594 extern std::vector<TrajPoint>
seeds;
598 #endif // ifndef TRAJCLUSTERALGDATASTRUCT_H Expect tracks entering from the front face. Don't create neutrino PFParticles.
calo::CalorimetryAlg * caloAlg
don't mess with this line
std::vector< int > EnvStage
std::vector< int > IsShowerParent
std::vector< Trajectory > tjs
vector of all trajectories in each plane
std::vector< Vtx3Store > vtx3s
3D vertices
std::vector< float > cr_pfpyzmindis
std::array< std::vector< float >, 2 > dEdxErr
std::vector< float > kinkCuts
kink angle, nPts fit, (alternate) kink angle significance
std::vector< float > EndWir
struct of temporary 2D vertices (end points)
FindVtxTraj algorithm tried.
std::vector< float > EndAng
const std::vector< std::string > AlgBitNames
std::vector< ShowerStruct > cots
std::vector< double > dEdxErr
std::vector< float > maxPos0
std::vector< unsigned short > minPtsFit
Reconstruct in several passes.
std::vector< float > cr_pfpxmax
std::vector< int > NearTjIDs
std::array< double, 3 > Point3_t
std::vector< ShowerStruct3D > showers
std::vector< float > vtx3DCuts
2D vtx -> 3D vtx matching cuts
short MCSMom(TCSlice &slc, const std::vector< int > &tjIDs)
std::vector< float > qualityCuts
Min points/wire, min consecutive pts after a gap.
std::vector< float > BeginTim
std::array< int, 2 > TjIDs
std::vector< Point2_t > Envelope
vertex position fixed manually - no fitting done
Declaration of signal hit object.
std::vector< float > BeginAng
std::vector< float > TjCompleteness
The data type to uniquely identify a Plane.
matched to a high-score 3D vertex
std::vector< unsigned int > Hits
std::vector< double > MIPEnergy
step from US -> DS (true) or DS -> US (false)
float maxWireSkipWithSignal
max number of wires to skip with a signal on them
call study functions to develop cuts, etc
CryostatID_t Cryostat
Index of cryostat.
unsigned short MatchVecIndex(TCSlice &slc, int tjID)
std::vector< Tj2Pt > Tj2Pts
std::vector< float > electronTag
a general purpose flag bit used in 3D matching
std::vector< float > matchTruth
Match to MC truth.
float ParentFOM(std::string inFcnLabel, TCSlice &slc, PFPStruct &pfp, unsigned short pend, ShowerStruct3D &ss3, bool prt)
std::vector< unsigned int > lastWire
the last wire with a hit
unsigned int eventsProcessed
std::vector< int > CotIDs
don't mess with this line
std::vector< ShowerPoint > ShPts
std::vector< TrajPoint3 > Tp3s
std::vector< float > angleRanges
list of max angles for each angle range
std::vector< float > showerTag
[min MCSMom, max separation, min # Tj < separation] for a shower tag
std::vector< float > EndTim
std::vector< int > ShowerID
std::vector< std::vector< std::pair< int, int > > > wireHitRange
std::vector< unsigned short > maxAngleCode
max allowed angle code for each pass
float projectionErrFactor
tagged as a vertex between Tjs that are matched to MC truth neutrino interaction particles ...
std::vector< int > TjUIDs
constexpr unsigned int Tpad
std::vector< DontClusterStruct > dontCluster
const std::vector< std::string > StrategyBitNames
std::vector< std::string > StageName
struct of temporary 3D vertices
short nPtsAve
dump trajectory points
std::vector< float > TjCompleteness
std::vector< Tj2Pt > mallTraj
vector of trajectory points ordered by increasing X
std::vector< float > testBeamCuts
std::array< float, 2 > Point2_t
std::vector< float > maxPos1
float unitsPerTick
scale factor from Tick to WSE equivalent units
std::array< Point3_t, 2 > XYZ
const detinfo::DetectorProperties * detprop
use the slowing-down strategy
std::vector< short > minMCSMom
Min MCSMom for each pass.
std::vector< short > BeginVtx
std::array< Vector3_t, 2 > DirErr
const std::vector< std::string > StopFlagNames
std::vector< float > aveHitRMS
average RMS of an isolated hit
std::vector< TrajPoint > Pts
Trajectory points.
TMVA::Reader * showerParentReader
std::array< Vector3_t, 2 > Dir
std::vector< float > showerParentVars
std::vector< float > neutralVxCuts
std::vector< short > EndVtx
std::vector< int > cr_origin
std::vector< float > match3DCuts
3D matching cuts
std::vector< float > Envelope
the charge fraction is small near this point
call study functions to develop cuts, etc
const geo::GeometryCore * geom
std::vector< unsigned short > minPts
min number of Pts required to make a trajectory
int UID
a unique ID for all slices
The data type to uniquely identify a TPC.
PlaneID_t Plane
Index of the plane within its TPC.
Description of geometry of one entire detector.
std::array< double, 2 > Vector2_t
Definition of data types for geometry description.
std::vector< unsigned int > Hits
std::vector< unsigned int > firstWire
the first wire with a hit
std::vector< float > BeginChg
vertex quality is suspect - No requirement made on chg btw it and the Tj
int ID
ID that is local to one slice.
std::vector< TCSlice > slices
std::bitset< 16 > modes
number of points to find AveChg
std::vector< TCHit > slHits
std::vector< float > chargeCuts
std::bitset< 16 > Stat
Vertex status bits using kVtxBit_t.
std::vector< int > EnvPlane
std::vector< TrajPoint > seeds
float maxWireSkipNoSignal
max number of wires to skip w/o a signal on them
std::vector< short > MCSMom
const std::vector< std::string > VtxBitNames
std::vector< double > EnergyErr
std::vector< double > MIPEnergyErr
std::vector< float > vtxScoreWeights
std::vector< int > StageNum
std::vector< TjForecast > tjfs
std::bitset< 128 > useAlg
Max hit separation for making junk trajectories. < 0 to turn off.
std::vector< float > pfpStitchCuts
cuts for stitching between TPCs
std::vector< short > deltaRayTag
min length, min MCSMom and min separation (WSE) for a delta ray tag
std::vector< VtxStore > vtxs
2D vertices
std::bitset< 128 > AlgMod
Bit set if algorithm AlgBit_t modifed the trajectory.
call study functions to develop cuts, etc
std::vector< double > Energy
std::vector< short > muonTag
min length and min MCSMom for a muon tag
std::vector< float > BeginWir
geo::PlaneID DecodeCTP(CTP_t CTP)
std::vector< float > EndChg
std::bitset< 128 > dbgAlg
Allow user to turn on debug printing in algorithms (that print...)
CTP_t EncodeCTP(unsigned int cryo, unsigned int tpc, unsigned int plane)
std::vector< unsigned int > nWires
use the stiff electron strategy
std::array< double, 3 > Vector3_t
std::vector< float > chkStopCuts
[Min Chg ratio, Chg slope pull cut, Chg fit chi cut]
int ID
ID of the recob::Slice (not the sub-slice)
std::array< std::vector< float >, 2 > dEdx
std::vector< float > cr_pfpxmin
Declaration of basic channel signal object.
std::vector< float > vtx2DCuts
Max position pull, max Position error rms.
std::vector< MatchStruct > matchVec
3D matching vector
std::vector< PFPStruct > pfps
float multHitSep
preferentially "merge" hits with < this separation
std::vector< int > EnvShowerID
call study functions to develop cuts, etc (see TCTruth.cxx)
unsigned int allHitsIndex
TPCID_t TPC
Index of the TPC within its cryostat.
std::vector< int > IsShowerTj
constexpr unsigned int Cpad
std::vector< double > dEdx
std::vector< short > PlaneNum
float TjChgFrac
Fraction of charge near the vertex that is from hits on the vertex Tjs.
master switch for turning on debug mode
don't mess with this line
art framework interface to geometry description
std::vector< int > DtrUIDs
float AspectRatio(TCSlice &slc, std::vector< int > &tjids, CTP_t inCTP)
use the stiff muon strategy