9 #ifndef TRAJCLUSTERALGDATASTRUCT_H 10 #define TRAJCLUSTERALGDATASTRUCT_H 50 constexpr
unsigned int Tpad = 10;
51 constexpr
unsigned int Cpad = 10000;
54 EncodeCTP(
unsigned int cryo,
unsigned int tpc,
unsigned int plane)
56 return cryo * Cpad + tpc * Tpad + plane;
77 unsigned short NTraj{0};
90 std::bitset<16> Stat{0};
120 bool Neutrino{
false};
159 double HitPosErr2{0};
168 float DeltaRMS{0.02};
171 unsigned short NTPsFit{2};
172 unsigned short Step{0};
173 unsigned short AngleCode{0};
174 std::vector<unsigned int>
Hits;
175 std::bitset<16> UseHit{0};
176 std::bitset<8> Environment{0};
193 std::vector<TrajPoint>
Pts;
204 std::array<unsigned short, 2> VtxID{{0, 0}};
205 std::array<unsigned short, 2> EndPt{
210 unsigned short PDGCode{0};
214 std::array<std::bitset<8>, 2> EndFlag{};
215 std::bitset<8> Strategy{};
216 bool NeedsUpdate{
false};
218 bool MaskedLastTP{
false};
222 unsigned short nextForecastUpdate{
224 float showerLikeFraction{
228 float chgSlopeErr{0};
229 float chgFitChiDOF{0};
232 bool leavesBeforeEnd{
false};
233 bool foundShower{
false};
234 bool endBraggPeak{
false};
249 unsigned short NPts{0};
250 bool NeedsUpdate{
true};
263 unsigned short TPIndex{USHRT_MAX};
264 unsigned short SFIndex{USHRT_MAX};
290 std::array<std::vector<float>, 2>
dEdx;
292 std::array<int, 2> Vx3ID{{0, 0}};
298 float CosmicScore{0};
303 std::array<std::bitset<8>, 2> EndFlag{};
332 float AspectRatio{1};
333 float DirectionFOM{1};
335 float EnvelopeArea{0};
344 bool NeedsUpdate{
true};
357 double OpenAngle{0.12};
366 std::vector<unsigned int>
Hits;
372 unsigned short PFPIndex{USHRT_MAX};
374 bool NeedsUpdate{
true};
417 unsigned short nPlanes{0};
596 bool dbgVxNeutral{
false};
597 bool dbgVxMerge{
false};
598 bool dbgVxJunk{
false};
601 bool dbgDeltaRayTag{
false};
602 bool dbgMuonTag{
false};
605 bool dbgStitch{
false};
606 bool dbgSummary{
false};
610 bool doForecast{
true};
611 bool useChannelStatus{
true};
624 std::vector<recob::Hit>
const* allHits =
nullptr;
625 std::vector<recob::Hit>
const* srcHits =
nullptr;
628 std::vector<std::vector<std::pair<unsigned int, unsigned int>>>
wireHitRange;
633 std::vector<recob::SpacePoint>
const* sptHandle =
635 std::vector<std::array<unsigned int, 3>>
sptHits;
649 bool aveHitRMSValid{
false};
650 bool expectSlicedHits{
672 std::vector<Trajectory>
tjs;
677 std::vector<std::vector<std::pair<unsigned int, unsigned int>>>
wireHitRange;
681 std::vector<ShowerStruct>
cots;
682 std::vector<DontClusterStruct>
691 extern std::vector<TjForecast>
tjfs;
694 extern std::vector<TCSlice>
slices;
696 extern std::vector<TrajPoint>
seeds;
700 #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
Reconstruction base classes.
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
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
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
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
double dEdx(float dqdx, float Efield)
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
AdcSimulator::Count Count
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
std::vector< unsigned int > firstWire
the first wire with a hit
Base utilities and modules for event generation and detector simulation.
std::vector< float > BeginChg
int ID
ID that is local to one slice.
std::vector< TCSlice > slices
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
LArSoft geometry interface.
master switch for turning on debug mode
don't mess with this line
std::vector< int > DtrUIDs
use the stiff muon strategy