9 #ifndef TRAJCLUSTERALGDATASTRUCT_H 10 #define TRAJCLUSTERALGDATASTRUCT_H 48 constexpr
unsigned int Tpad = 10;
49 constexpr
unsigned int Cpad = 10000;
51 inline CTP_t
EncodeCTP(
unsigned int cryo,
unsigned int tpc,
unsigned int plane)
53 return cryo * Cpad + tpc * Tpad + plane;
72 unsigned short NTraj{0};
85 std::bitset<16> Stat{0};
115 bool Neutrino{
false};
154 double HitPosErr2{0};
163 float DeltaRMS{0.02};
166 unsigned short NTPsFit{2};
168 unsigned short AngleCode{0};
169 std::vector<unsigned int>
Hits;
170 std::bitset<16> UseHit{0};
171 std::bitset<8> Environment{0};
188 std::vector<TrajPoint>
Pts;
199 std::array<unsigned short, 2> VtxID{{0, 0}};
200 std::array<unsigned short, 2> EndPt{
205 unsigned short PDGCode{0};
209 std::array<std::bitset<8>, 2> EndFlag{};
210 std::bitset<8> Strategy{};
211 bool NeedsUpdate{
false};
213 bool MaskedLastTP{
false};
217 unsigned short nextForecastUpdate{
219 float showerLikeFraction{
223 float chgSlopeErr{0};
224 float chgFitChiDOF{0};
227 bool leavesBeforeEnd{
false};
228 bool foundShower{
false};
229 bool endBraggPeak{
false};
244 unsigned short NPts{0};
245 bool NeedsUpdate{
true};
258 unsigned short TPIndex{USHRT_MAX};
259 unsigned short SFIndex{USHRT_MAX};
285 std::array<std::vector<float>, 2>
dEdx;
287 std::array<int, 2> Vx3ID{{0, 0}};
293 float CosmicScore{0};
298 std::array<std::bitset<8>, 2> EndFlag{};
323 float AspectRatio{1};
324 float DirectionFOM{1};
326 float EnvelopeArea{0};
335 bool NeedsUpdate{
true};
348 double OpenAngle{0.12};
357 std::vector<unsigned int>
Hits;
363 unsigned short PFPIndex{USHRT_MAX};
365 bool NeedsUpdate{
true};
408 unsigned short nPlanes{0};
587 bool dbgVxNeutral{
false};
588 bool dbgVxMerge{
false};
589 bool dbgVxJunk{
false};
592 bool dbgDeltaRayTag{
false};
593 bool dbgMuonTag{
false};
596 bool dbgStitch{
false};
597 bool dbgSummary{
false};
601 bool doForecast{
true};
602 bool useChannelStatus{
true};
615 std::vector<recob::Hit>
const* allHits =
nullptr;
616 std::vector<recob::Hit>
const* srcHits =
nullptr;
619 std::vector<std::vector<std::pair<unsigned int, unsigned int>>>
wireHitRange;
624 std::vector<recob::SpacePoint>
const* sptHandle =
626 std::vector<std::array<unsigned int, 3>>
sptHits;
640 bool aveHitRMSValid{
false};
641 bool expectSlicedHits{
663 std::vector<Trajectory>
tjs;
668 std::vector<std::vector<std::pair<unsigned int, unsigned int>>>
wireHitRange;
672 std::vector<ShowerStruct>
cots;
673 std::vector<DontClusterStruct>
682 extern std::vector<TjForecast>
tjfs;
685 extern std::vector<TCSlice>
slices;
687 extern std::vector<TrajPoint>
seeds;
691 #endif // ifndef TRAJCLUSTERALGDATASTRUCT_H Expect tracks entering from the front face. Don't create neutrino PFParticles.
calo::CalorimetryAlg * caloAlg
std::vector< int > EnvStage
short MCSMom(const TCSlice &slc, const std::vector< int > &tjIDs)
std::vector< int > IsShowerParent
std::vector< Trajectory > tjs
vector of all trajectories in each plane
std::vector< float > cr_pfpyzmindis
std::array< std::vector< float >, 2 > dEdxErr
std::vector< float > kinkCuts
kink finder algorithm
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
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
tagged as a vertex between Tjs that are matched to MC truth neutrino interaction particles ...
vertex position fixed manually - no fitting done
Declaration of signal hit object.
std::vector< float > BeginAng
std::bitset< pAlgModSize > AlgMod
std::vector< std::vector< std::pair< unsigned int, unsigned int > > > wireHitRange
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.
std::vector< std::pair< unsigned int, unsigned int > > tpcSrcHitRange
std::vector< Tj2Pt > Tj2Pts
std::vector< float > electronTag
a general purpose flag bit used in 3D matching
std::vector< unsigned int > lastWire
the last wire with a hit
unsigned int eventsProcessed
std::vector< int > CotIDs
std::vector< std::array< unsigned int, 3 > > sptHits
SpacePoint -> Hits assns by plane.
std::vector< ShowerPoint > ShPts
std::vector< float > angleRanges
list of max angles for each angle range
const std::vector< std::string > EndFlagNames
std::vector< float > showerTag
shower-like trajectory tagging + shower reconstruction
don't mess with this line
std::vector< float > EndTim
std::vector< int > ShowerID
std::vector< unsigned short > maxAngleCode
max allowed angle code for each pass
float projectionErrFactor
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< Tj2Pt > mallTraj
vector of trajectory points ordered by increasing X
std::array< float, 2 > Point2_t
std::vector< float > maxPos1
don't mess with this line
float unitsPerTick
scale factor from Tick to WSE equivalent units
use the slowing-down strategy
std::vector< short > minMCSMom
Min MCSMom for each pass.
std::vector< short > BeginVtx
TP is near a hit in the srcHit collection but no allHit hit exists (DUNE disambiguation error) ...
the environment near the vertex was checked - See UpdateVxEnvironment
std::vector< float > aveHitRMS
average RMS of an isolated hit
std::vector< TrajPoint > Pts
Trajectory points.
TMVA::Reader * showerParentReader
std::vector< std::vector< bool > > goodWire
std::vector< float > showerParentVars
std::vector< float > neutralVxCuts
std::vector< short > EndVtx
std::vector< VtxStore > vtxs
2D vertices
std::vector< int > cr_origin
std::vector< float > match3DCuts
3D matching cuts
std::vector< SectionFit > SectionFits
std::vector< float > Envelope
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.
constexpr unsigned int pAlgModSize
std::array< double, 2 > Vector2_t
Definition of data types for geometry description.
std::vector< unsigned int > Hits
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
std::vector< unsigned int > firstWire
the first wire with a hit
std::vector< float > BeginChg
int ID
ID that is local to one slice.
std::vector< TCSlice > slices
float ParentFOM(std::string inFcnLabel, TCSlice &slc, PFPStruct &pfp, ShowerStruct3D &ss3, bool prt)
vertex quality is suspect - No requirement made on chg btw it and the Tj
std::bitset< 16 > modes
number of points to find AveChg
std::vector< TCHit > slHits
std::vector< float > chargeCuts
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< Vtx3Store > vtx3s
3D vertices
std::vector< int > StageNum
std::vector< TjForecast > tjfs
std::bitset< 128 > useAlg
Max hit separation for making junk trajectories. < 0 to turn off.
CTP_t EncodeCTP(const geo::WireID &wireID)
std::vector< float > pfpStitchCuts
cuts for stitching between TPCs
std::vector< short > deltaRayTag
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
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...)
std::vector< TCWireIntersection > wireIntersections
std::vector< unsigned int > nWires
use the stiff electron strategy
std::array< double, 3 > Vector3_t
std::vector< float > chkStopCuts
Bragg peak finder configuration.
std::vector< TP3D > TP3Ds
int ID
ID of the recob::Slice (not the sub-slice)
std::array< std::vector< float >, 2 > dEdx
std::vector< float > cr_pfpxmin
std::vector< float > vtx2DCuts
Max position pull, max Position error rms.
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
std::vector< std::vector< std::pair< unsigned int, unsigned int > > > wireHitRange
Namespace collecting geometry-related classes utilities.
master switch for turning on debug mode
don't mess with this line
std::vector< int > DtrUIDs
use the stiff muon strategy