9 #ifndef TRAJCLUSTERALGSHOWERS_H 10 #define TRAJCLUSTERALGSHOWERS_H 41 bool Reconcile3D(std::string inFcnLabel, TCSlice& slc,
bool parentSearchDone,
bool prt);
42 bool Reconcile3D(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3,
bool prt);
45 int GetCotID(TCSlice& slc,
int ShowerTjID);
48 void Match2DShowers(std::string inFcnLabel, TCSlice& slc,
bool prt);
49 bool UpdateShower(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss,
bool prt);
50 bool UpdateShower(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3,
bool prt);
51 float Match3DFOM(std::string inFcnLabel, TCSlice& slc,
int icotID,
int jcotID,
bool prt);
52 float Match3DFOM(std::string inFcnLabel, TCSlice& slc,
int icotID,
int jcotID,
int kcotID,
bool prt);
53 float Match3DFOM(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3,
bool prt);
54 void MakeShowerObsolete(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3,
bool prt);
56 bool DontCluster(TCSlice& slc,
const std::vector<int>& tjlist1,
const std::vector<int>& tjlist2);
58 bool RemovePFP(std::string inFcnLabel, TCSlice& slc, PFPStruct& pfp, ShowerStruct3D& ss3,
bool doUpdate,
bool prt);
59 bool AddPFP(std::string inFcnLabel, TCSlice& slc,
int pID, ShowerStruct3D& ss3,
bool doUpdate,
bool prt);
60 bool RemovePFP(std::string inFcnLabel, TCSlice& slc,
int pID, ShowerStruct3D& ss3,
bool doUpdate,
bool prt);
61 bool AddTj(std::string inFcnLabel, TCSlice& slc,
int TjID, ShowerStruct&
ss,
bool doUpdate,
bool prt);
62 bool RemoveTj(std::string inFcnLabel, TCSlice& slc,
int TjID, ShowerStruct&
ss,
bool doUpdate,
bool prt);
63 bool AnalyzeRotPos(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss,
bool prt);
64 void ReverseShower(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss,
bool prt);
65 void ReverseShower(std::string inFcnLabel, TCSlice& slc,
int cotID,
bool prt);
66 bool FindParent(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3,
bool prt);
67 bool SetParent(std::string inFcnLabel, TCSlice& slc, PFPStruct& pfp, ShowerStruct3D& ss3,
bool prt);
68 bool WrongSplitTj(std::string inFcnLabel, TCSlice& slc, Trajectory& tj,
unsigned short tjEnd, ShowerStruct&
ss,
bool prt);
69 bool IsShowerLike(TCSlice& slc,
const std::vector<int> TjIDs);
70 float InShowerProb(TCSlice& slc,
const ShowerStruct3D& ss3,
const PFPStruct& pfp);
71 float InShowerProb(TCSlice& slc,
const ShowerStruct&
ss,
const Trajectory& tj);
72 void ShowerParams(
double showerEnergy,
double& shMaxAlong,
double& shE95Along);
76 double InShowerProb(
double showerEnergy,
double along,
double trans);
77 float ParentFOM(std::string inFcnLabel, TCSlice& slc, PFPStruct& pfp,
unsigned short pend, ShowerStruct3D& ss3,
bool prt);
78 float ParentFOM(std::string inFcnLabel, TCSlice& slc, Trajectory& tj,
unsigned short& tjEnd, ShowerStruct&
ss,
float& tp1Sep,
float& vx3Score,
bool prt);
79 void DefineEnvelope(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss,
bool prt);
81 bool AddLooseHits(std::string inFcnLabel, TCSlice& slc,
int cotID,
bool prt);
82 void FindStartChg(std::string inFcnLabel, TCSlice& slc,
int cotID,
bool prt);
83 std::vector<float>
StartChgVec(TCSlice& slc,
int cotID,
bool prt);
84 void DumpShowerPts(std::string inFcnLabel, TCSlice& slc,
int cotID);
86 void FindCots(std::string inFcnLabel, TCSlice& slc,
const CTP_t& inCTP,
std::vector<std::vector<int>>& tjLists,
bool prt);
88 void FindNearbyTjs(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss,
bool prt);
89 void AddCloseTjsToList(std::string inFcnLabel, TCSlice& slc,
unsigned short itj, std::vector<int> list);
93 void MergeOverlap(std::string inFcnLabel, TCSlice& slc,
const CTP_t& inCTP,
bool prt);
97 int MergeShowers(std::string inFcnLabel, TCSlice& slc, std::vector<int> showerIDs,
bool prt);
98 bool MergeShowersAndStore(std::string inFcnLabel, TCSlice& slc,
int icotID,
int jcotID,
bool prt);
100 float ShowerEnergy(TCSlice& slc,
const std::vector<int> tjIDs);
102 PFPStruct
CreateFakePFP(TCSlice& slc,
const ShowerStruct3D& ss3);
103 bool StoreShower(std::string inFcnLabel, TCSlice& slc, ShowerStruct3D& ss3);
104 bool StoreShower(std::string inFcnLabel, TCSlice& slc, ShowerStruct&
ss);
106 ShowerStruct
CreateSS(TCSlice& slc,
const std::vector<int>& tjl);
107 bool ChkAssns(std::string inFcnLabel, TCSlice& slc);
109 void Print2DShowers(std::string someText, TCSlice& slc,
CTP_t inCTP,
bool printKilledShowers);
110 void PrintShower(std::string someText, TCSlice& slc,
const ShowerStruct&
ss,
bool printHeader,
bool printExtras);
115 #endif // ifndef TRAJCLUSTERALGSHOWERS_H bool AddTj(std::string inFcnLabel, TCSlice &slc, int tjID, ShowerStruct &ss, bool doUpdate, bool prt)
bool TransferTjHits(TCSlice &slc, bool prt)
void MergeNearby2DShowers(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, bool prt)
void ConfigureMVA(TCConfig &tcc, std::string fMVAShowerParentWeights)
void ReverseShower(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
void MergeShowerChain(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, bool prt)
double InShowerProbLong(double showerEnergy, double along)
bool ChkAssns(std::string inFcnLabel, TCSlice &slc)
ShowerStruct3D CreateSS3(TCSlice &slc)
void PrintShowers(std::string fcnLabel, TCSlice &slc)
int GetCotID(TCSlice &slc, int ShowerTjID)
void PrintShower(std::string someText, TCSlice &slc, const ShowerStruct &ss, bool printHeader, bool printExtras)
bool WrongSplitTj(std::string inFcnLabel, TCSlice &slc, Trajectory &tj, unsigned short tjEnd, ShowerStruct &ss, bool prt)
void KillVerticesInShower(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
double ShowerEnergy(const ShowerStruct3D &ss3)
float ParentFOM(std::string inFcnLabel, TCSlice &slc, PFPStruct &pfp, unsigned short pend, ShowerStruct3D &ss3, bool prt)
bool IsShowerLike(TCSlice &slc, const std::vector< int > TjIDs)
double InShowerProbTrans(double showerEnergy, double along, double trans)
ShowerStruct CreateSS(TCSlice &slc, const std::vector< int > &tjl)
bool AddLooseHits(TCSlice &slc, int cotID, bool prt)
bool SetParent(std::string inFcnLabel, TCSlice &slc, PFPStruct &pfp, ShowerStruct3D &ss3, bool prt)
bool DontCluster(TCSlice &slc, const std::vector< int > &tjlist1, const std::vector< int > &tjlist2)
void MergeTjList(std::vector< std::vector< int >> &tjList)
double ShowerParamTransRMS(double showerEnergy, double along)
void AddCloseTjsToList(TCSlice &slc, unsigned short itj, std::vector< int > list)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
void DefineEnvelope(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
void FindCots(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, std::vector< std::vector< int >> &tjLists, bool prt)
void MergeSubShowersTj(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, bool prt)
float Match3DFOM(std::string inFcnLabel, TCSlice &slc, ShowerStruct3D &ss3, bool prt)
void DumpShowerPts(TCSlice &slc, int cotID)
float InShowerProb(TCSlice &slc, const ShowerStruct3D &ss3, const PFPStruct &pfp)
bool MergeShowerTjsAndStore(TCSlice &slc, unsigned short istj, unsigned short jstj, bool prt)
void TagShowerLike(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP)
void FindNearbyTjs(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
void MergeOverlap(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, bool prt)
PFPStruct CreateFakePFP(TCSlice &slc, const ShowerStruct3D &ss3)
Definition of data types for geometry description.
bool AddPFP(std::string inFcnLabel, TCSlice &slc, int pID, ShowerStruct3D &ss3, bool doUpdate, bool prt)
std::vector< float > StartChgVec(TCSlice &slc, int cotID, bool prt)
bool AddTjsInsideEnvelope(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
bool FindParent(std::string inFcnLabel, TCSlice &slc, ShowerStruct3D &ss3, bool prt)
bool MergeShowersAndStore(std::string inFcnLabel, TCSlice &slc, int icotID, int jcotID, bool prt)
bool RemoveTj(std::string inFcnLabel, TCSlice &slc, int TjID, ShowerStruct &ss, bool doUpdate, bool prt)
bool FindShowers3D(TCSlice &slc)
int MergeShowers(std::string inFcnLabel, TCSlice &slc, std::vector< int > ssIDs, bool prt)
void ShowerParams(double showerEnergy, double &shMaxAlong, double &along95)
bool FindShowerStart(TCSlice &slc, ShowerStruct3D &ss3, bool prt)
void Match2DShowers(std::string inFcnLabel, TCSlice &slc, bool prt)
void DefineDontCluster(TCSlice &slc, bool prt)
void MergeTjList2(std::string inFcnLabel, TCSlice &slc, std::vector< std::vector< int >> &tjList, bool prt)
bool RemovePFP(std::string inFcnLabel, TCSlice &slc, PFPStruct &pfp, ShowerStruct3D &ss3, bool doUpdate, bool prt)
void MergeSubShowers(std::string inFcnLabel, TCSlice &slc, const CTP_t &inCTP, bool prt)
void FindStartChg(std::string inFcnLabel, TCSlice &slc, int cotID, bool prt)
void Finish3DShowers(TCSlice &slc)
bool AnalyzeRotPos(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
float ChgToMeV(float chg)
bool UpdateShower(std::string inFcnLabel, TCSlice &slc, ShowerStruct &ss, bool prt)
void Print2DShowers(std::string someText, TCSlice &slc, CTP_t inCTP, bool printKilledShowers)
bool CompleteIncompleteShower(std::string inFcnLabel, TCSlice &slc, ShowerStruct3D &ss3, bool prt)
void MakeShowerObsolete(std::string inFcnLabel, TCSlice &slc, ShowerStruct3D &ss3, bool prt)
bool StoreShower(std::string inFcnLabel, TCSlice &slc, ShowerStruct3D &ss3)
bool Reconcile3D(std::string inFcnLabel, TCSlice &slc, bool parentSearchDone, bool prt)