File indexing completed on 2026-05-23 08:08:43
0001
0002
0003 #ifndef VERTEXCOMPARE_H
0004 #define VERTEXCOMPARE_H
0005
0006 #include <fun4all/SubsysReco.h>
0007
0008 #include <fstream>
0009 #include <iomanip>
0010 #include <iostream>
0011 #include <math.h>
0012 #include <string>
0013
0014 #include <TFile.h>
0015 #include <TTree.h>
0016 #include <TVector3.h>
0017 #include <TMath.h>
0018 #include <TH1.h>
0019 #include <TH2.h>
0020 #include <Math/Util.h>
0021 #include <Math/Vector4D.h>
0022
0023 class PHCompositeNode;
0024
0025 class TrkrClusterContainer;
0026 class TrkrClusterHitAssoc;
0027 class ActsGeometry;
0028 class TrackSeedContainer;
0029 class SvtxVertexMap;
0030 class Gl1Packet;
0031
0032 class CentralityInfo;
0033
0034 class MbdPmtHit;
0035 class MbdOut;
0036 class MbdPmtContainer;
0037 class MinimumBiasInfo;
0038
0039 class PHG4TruthInfoContainer;
0040 class PHG4Particle;
0041 class SvtxEvalStack;
0042 class SvtxTruthEval;
0043 class SvtxClusterEval;
0044 class SvtxHitEval;
0045
0046 using namespace ROOT::Math;
0047
0048 class VertexCompare : public SubsysReco
0049 {
0050 public:
0051 VertexCompare(const std::string &name = "VertexCompare");
0052
0053 ~VertexCompare() override;
0054
0055
0056
0057
0058
0059
0060 int Init(PHCompositeNode *topNode) override;
0061
0062
0063
0064
0065
0066
0067 int InitRun(PHCompositeNode *topNode) override;
0068
0069
0070
0071
0072 int process_event(PHCompositeNode *topNode) override;
0073
0074
0075 int ResetEvent(PHCompositeNode *topNode) override;
0076
0077
0078 int EndRun(const int runnumber) override;
0079
0080
0081 int End(PHCompositeNode *topNode) override;
0082
0083
0084 int Reset(PHCompositeNode * ) override;
0085
0086 void Print(const std::string &what = "ALL") const override;
0087
0088 void setOutputName(std::string name) { outFileName = name; };
0089
0090
0091 void IsSimulation() { isSimulation = true; };
0092
0093 private:
0094 void FillSiliconSeedTree();
0095 void FillClusterTree();
0096 void FillTruthParticleTree();
0097 void Cleanup();
0098
0099
0100 bool isSimulation = false;
0101
0102 TFile *outFile = nullptr;
0103 TTree *outTree = nullptr;
0104 std::string outFileName = "outputVTX.root";
0105
0106 std::string clusterContainerName = "TRKR_CLUSTER";
0107 std::string clusterHitAssocName = "TRKR_CLUSTERHITASSOC";
0108 std::string geometryNodeName = "ActsGeometry";
0109 std::string svtxvertexmapName = "SvtxVertexMap";
0110 std::string seedContainerName = "SiliconTrackSeedContainer";
0111 std::string gl1NodeName = "GL1RAWHIT";
0112 std::string mbdOutNodeName = "MbdOut";
0113
0114 TrkrClusterContainer *clustermap = nullptr;
0115 TrkrClusterHitAssoc *clusterhitassoc = nullptr;
0116 ActsGeometry *geometry = nullptr;
0117 TrackSeedContainer *silseedmap = nullptr;
0118 Gl1Packet *gl1PacketInfo = nullptr;
0119 MbdOut *m_mbdout = nullptr;
0120 MinimumBiasInfo *minimumbiasinfo = nullptr;
0121 CentralityInfo *m_CentInfo = nullptr;
0122
0123
0124 PHG4TruthInfoContainer *m_truth_info = nullptr;
0125 SvtxEvalStack *svtx_evalstack = nullptr;
0126 SvtxTruthEval *truth_eval = nullptr;
0127 SvtxClusterEval *clustereval = nullptr;
0128 SvtxHitEval *hiteval = nullptr;
0129
0130
0131 std::vector<float> mbdVertex = std::vector<float>();
0132 std::vector<int> mbdVertexId = std::vector<int>();
0133 std::vector<short int> mbdVertexCrossing = std::vector<short int>();
0134 float MBD_charge_sum{std::numeric_limits<float>::quiet_NaN()};
0135
0136
0137
0138
0139
0140 int nSvtxVertices{std::numeric_limits<int>::quiet_NaN()};
0141 std::vector<int> trackerVertexId = std::vector<int>();
0142 std::vector<float> trackerVertexX = std::vector<float>();
0143 std::vector<float> trackerVertexY = std::vector<float>();
0144 std::vector<float> trackerVertexZ = std::vector<float>();
0145 std::vector<float> trackerVertexChisq = std::vector<float>();
0146 std::vector<int> trackerVertexNdof = std::vector<int>();
0147 std::vector<int> trackerVertexNTracks = std::vector<int>();
0148 std::vector<std::vector<int>> trackerVertexTrackIDs = std::vector<std::vector<int>>();
0149 std::vector<short int> trackerVertexCrossing = std::vector<short int>();
0150
0151 UInt_t nTracks{std::numeric_limits<unsigned int>::quiet_NaN()};
0152 UInt_t n_MBDVertex{std::numeric_limits<unsigned int>::quiet_NaN()};
0153 UInt_t n_TRKVertex{std::numeric_limits<unsigned int>::quiet_NaN()};
0154
0155 bool hasMBD{false};
0156 bool hasTRK{false};
0157
0158 int counter = 1;
0159
0160 bool is_min_bias = false;
0161 std::vector<int> firedTriggers = std::vector<int>();
0162 uint64_t gl1bco = std::numeric_limits<uint64_t>::quiet_NaN();
0163 uint64_t gl1BunchCrossing = std::numeric_limits<uint64_t>::quiet_NaN();
0164 uint64_t bcotr = std::numeric_limits<uint64_t>::quiet_NaN();
0165
0166 float centrality_mbd_;
0167
0168
0169 int nTruthVertex = 0;
0170
0171 std::vector<float> TruthVertexX = std::vector<float>();
0172 std::vector<float> TruthVertexY = std::vector<float>();
0173 std::vector<float> TruthVertexZ = std::vector<float>();
0174
0175
0176 int nTotalSilSeeds = 0;
0177 int nSilSeedsValidCrossing = 0;
0178 std::vector<unsigned int> silseed_id = std::vector<unsigned int>();
0179 std::vector<int> silseed_assocVtxId = std::vector<int>();
0180 std::vector<float> silseed_x = std::vector<float>();
0181 std::vector<float> silseed_y = std::vector<float>();
0182 std::vector<float> silseed_z = std::vector<float>();
0183 std::vector<float> silseed_pt = std::vector<float>();
0184 std::vector<float> silseed_eta = std::vector<float>();
0185 std::vector<float> silseed_phi = std::vector<float>();
0186 std::vector<float> silseed_eta_vtx = std::vector<float>();
0187 std::vector<float> silseed_phi_vtx = std::vector<float>();
0188 std::vector<int> silseed_crossing = std::vector<int>();
0189 std::vector<int> silseed_charge = std::vector<int>();
0190 std::vector<int> silseed_nMvtx = std::vector<int>();
0191 std::vector<int> silseed_nIntt = std::vector<int>();
0192 std::vector<std::vector<uint64_t>> silseed_clusterKeys = std::vector<std::vector<uint64_t>>();
0193 std::vector<std::vector<unsigned int>> silseed_cluster_layer = std::vector<std::vector<unsigned int>>();
0194 std::vector<std::vector<float>> silseed_cluster_globalX = std::vector<std::vector<float>>();
0195 std::vector<std::vector<float>> silseed_cluster_globalY = std::vector<std::vector<float>>();
0196 std::vector<std::vector<float>> silseed_cluster_globalZ = std::vector<std::vector<float>>();
0197 std::vector<std::vector<float>> silseed_cluster_phi = std::vector<std::vector<float>>();
0198 std::vector<std::vector<float>> silseed_cluster_eta = std::vector<std::vector<float>>();
0199 std::vector<std::vector<float>> silseed_cluster_r = std::vector<std::vector<float>>();
0200 std::vector<std::vector<int>> silseed_cluster_phiSize = std::vector<std::vector<int>>();
0201 std::vector<std::vector<int>> silseed_cluster_zSize = std::vector<std::vector<int>>();
0202 std::vector<std::vector<int>> silseed_cluster_strobeID = std::vector<std::vector<int>>();
0203 std::vector<std::vector<int>> silseed_cluster_timeBucketID = std::vector<std::vector<int>>();
0204
0205 std::vector<int> silseed_ngmvtx = std::vector<int>();
0206 std::vector<int> silseed_ngintt = std::vector<int>();
0207 std::vector<std::vector<uint64_t>> silseed_cluster_gcluster_key = std::vector<std::vector<uint64_t>>();
0208 std::vector<std::vector<unsigned int>> silseed_cluster_gcluster_layer = std::vector<std::vector<unsigned int>>();
0209 std::vector<std::vector<float>> silseed_cluster_gcluster_X = std::vector<std::vector<float>>();
0210 std::vector<std::vector<float>> silseed_cluster_gcluster_Y = std::vector<std::vector<float>>();
0211 std::vector<std::vector<float>> silseed_cluster_gcluster_Z = std::vector<std::vector<float>>();
0212 std::vector<std::vector<float>> silseed_cluster_gcluster_r = std::vector<std::vector<float>>();
0213 std::vector<std::vector<float>> silseed_cluster_gcluster_phi = std::vector<std::vector<float>>();
0214 std::vector<std::vector<float>> silseed_cluster_gcluster_eta = std::vector<std::vector<float>>();
0215 std::vector<std::vector<float>> silseed_cluster_gcluster_edep = std::vector<std::vector<float>>();
0216 std::vector<std::vector<int>> silseed_cluster_gcluster_adc = std::vector<std::vector<int>>();
0217 std::vector<std::vector<float>> silseed_cluster_gcluster_phiSize = std::vector<std::vector<float>>();
0218 std::vector<std::vector<float>> silseed_cluster_gcluster_zSize = std::vector<std::vector<float>>();
0219
0220
0221 std::vector<uint64_t> clusterKey = std::vector<uint64_t>();
0222 std::vector<unsigned int> cluster_layer = std::vector<unsigned int>();
0223 std::vector<int> cluster_chip = std::vector<int>();
0224 std::vector<int> cluster_stave = std::vector<int>();
0225 std::vector<int> cluster_ladderZId = std::vector<int>();
0226 std::vector<int> cluster_ladderPhiId = std::vector<int>();
0227 std::vector<float> cluster_globalX = std::vector<float>();
0228 std::vector<float> cluster_globalY = std::vector<float>();
0229 std::vector<float> cluster_globalZ = std::vector<float>();
0230 std::vector<float> cluster_phi = std::vector<float>();
0231 std::vector<float> cluster_eta = std::vector<float>();
0232 std::vector<float> cluster_r = std::vector<float>();
0233 std::vector<int> cluster_phiSize = std::vector<int>();
0234 std::vector<int> cluster_zSize = std::vector<int>();
0235 std::vector<int> cluster_adc = std::vector<int>();
0236 std::vector<int> cluster_timeBucketID = std::vector<int>();
0237 std::vector<float> cluster_LocalX = std::vector<float>();
0238 std::vector<float> cluster_LocalY = std::vector<float>();
0239
0240 std::vector<int> cluster_matchedG4P_trackID = std::vector<int>();
0241 std::vector<int> cluster_matchedG4P_PID = std::vector<int>();
0242 std::vector<float> cluster_matchedG4P_E = std::vector<float>();
0243 std::vector<float> cluster_matchedG4P_pT = std::vector<float>();
0244 std::vector<float> cluster_matchedG4P_eta = std::vector<float>();
0245 std::vector<float> cluster_matchedG4P_phi = std::vector<float>();
0246
0247
0248 std::vector<uint64_t> mvtx_seedcluster_key = std::vector<uint64_t>();
0249 std::vector<unsigned int> mvtx_seedcluster_layer = std::vector<unsigned int>();
0250 std::vector<int> mvtx_seedcluster_chip = std::vector<int>();
0251 std::vector<int> mvtx_seedcluster_stave = std::vector<int>();
0252 std::vector<float> mvtx_seedcluster_globalX = std::vector<float>();
0253 std::vector<float> mvtx_seedcluster_globalY = std::vector<float>();
0254 std::vector<float> mvtx_seedcluster_globalZ = std::vector<float>();
0255 std::vector<float> mvtx_seedcluster_phi = std::vector<float>();
0256 std::vector<float> mvtx_seedcluster_eta = std::vector<float>();
0257 std::vector<float> mvtx_seedcluster_r = std::vector<float>();
0258 std::vector<int> mvtx_seedcluster_phiSize = std::vector<int>();
0259 std::vector<int> mvtx_seedcluster_zSize = std::vector<int>();
0260 std::vector<int> mvtx_seedcluster_strobeID = std::vector<int>();
0261 std::vector<int> mvtx_seedcluster_matchedcrossing = std::vector<int>();
0262 std::vector<std::vector<float>> mvtx_seedcluster_hitX = std::vector<std::vector<float>>();
0263 std::vector<std::vector<float>> mvtx_seedcluster_hitY = std::vector<std::vector<float>>();
0264 std::vector<std::vector<float>> mvtx_seedcluster_hitZ = std::vector<std::vector<float>>();
0265 std::vector<std::vector<int>> mvtx_seedcluster_hitrow = std::vector<std::vector<int>>();
0266 std::vector<std::vector<int>> mvtx_seedcluster_hitcol = std::vector<std::vector<int>>();
0267
0268
0269 std::vector<int> mvtx_seedcluster_matchedG4P_trackID = std::vector<int>();
0270 std::vector<int> mvtx_seedcluster_matchedG4P_PID = std::vector<int>();
0271 std::vector<float> mvtx_seedcluster_matchedG4P_E = std::vector<float>();
0272 std::vector<float> mvtx_seedcluster_matchedG4P_pT = std::vector<float>();
0273 std::vector<float> mvtx_seedcluster_matchedG4P_eta = std::vector<float>();
0274 std::vector<float> mvtx_seedcluster_matchedG4P_phi = std::vector<float>();
0275
0276 std::vector<std::vector<int>> mvtx_seedcluster_matchedG4P_ancestor_trackID = std::vector<std::vector<int>>();
0277 std::vector<std::vector<int>> mvtx_seedcluster_matchedG4P_ancestor_PID = std::vector<std::vector<int>>();
0278
0279
0280 int N_PrimaryPHG4Ptcl = 0;
0281 int N_sPHENIXPrimary = 0;
0282
0283 std::vector<float> PrimaryPHG4Ptcl_pT = std::vector<float>();
0284 std::vector<float> PrimaryPHG4Ptcl_eta = std::vector<float>();
0285 std::vector<float> PrimaryPHG4Ptcl_phi = std::vector<float>();
0286 std::vector<float> PrimaryPHG4Ptcl_E = std::vector<float>();
0287 std::vector<int> PrimaryPHG4Ptcl_PID = std::vector<int>();
0288 std::vector<int> PrimaryPHG4Ptcl_trackID = std::vector<int>();
0289 std::vector<TString> PrimaryPHG4Ptcl_ParticleClass = std::vector<TString>();
0290 std::vector<bool> PrimaryPHG4Ptcl_isStable = std::vector<bool>();
0291 std::vector<double> PrimaryPHG4Ptcl_charge = std::vector<double>();
0292 std::vector<bool> PrimaryPHG4Ptcl_isChargedHadron = std::vector<bool>();
0293 std::vector<std::vector<int>> PrimaryPHG4Ptcl_ancestor_trackID = std::vector<std::vector<int>>();
0294 std::vector<std::vector<int>> PrimaryPHG4Ptcl_ancestor_PID = std::vector<std::vector<int>>();
0295
0296 std::vector<float> sPHENIXPrimary_pT = std::vector<float>();
0297 std::vector<float> sPHENIXPrimary_eta = std::vector<float>();
0298 std::vector<float> sPHENIXPrimary_phi = std::vector<float>();
0299 std::vector<float> sPHENIXPrimary_E = std::vector<float>();
0300 std::vector<int> sPHENIXPrimary_PID = std::vector<int>();
0301 std::vector<int> sPHENIXPrimary_trackID = std::vector<int>();
0302 std::vector<TString> sPHENIXPrimary_ParticleClass = std::vector<TString>();
0303 std::vector<bool> sPHENIXPrimary_isStable = std::vector<bool>();
0304 std::vector<double> sPHENIXPrimary_charge = std::vector<double>();
0305 std::vector<bool> sPHENIXPrimary_isChargedHadron = std::vector<bool>();
0306 std::vector<std::vector<int>> sPHENIXPrimary_ancestor_trackID = std::vector<std::vector<int>>();
0307 std::vector<std::vector<int>> sPHENIXPrimary_ancestor_PID = std::vector<std::vector<int>>();
0308 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_X = std::vector<std::vector<float>>();
0309 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_Y = std::vector<std::vector<float>>();
0310 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_Z = std::vector<std::vector<float>>();
0311 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_edep = std::vector<std::vector<float>>();
0312 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_adc = std::vector<std::vector<float>>();
0313 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_r = std::vector<std::vector<float>>();
0314 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_phi = std::vector<std::vector<float>>();
0315 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_eta = std::vector<std::vector<float>>();
0316 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_phisize = std::vector<std::vector<float>>();
0317 std::vector<std::vector<float>> sPHENIXPrimary_truthcluster_zsize = std::vector<std::vector<float>>();
0318 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_globalX = std::vector<std::vector<float>>();
0319 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_globalY = std::vector<std::vector<float>>();
0320 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_globalZ = std::vector<std::vector<float>>();
0321 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_r = std::vector<std::vector<float>>();
0322 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_phi = std::vector<std::vector<float>>();
0323 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_eta = std::vector<std::vector<float>>();
0324 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_phisize = std::vector<std::vector<float>>();
0325 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_zsize = std::vector<std::vector<float>>();
0326 std::vector<std::vector<float>> sPHENIXPrimary_recocluster_adc = std::vector<std::vector<float>>();
0327
0328 int N_AllPHG4Ptcl = 0;
0329 std::vector<float> AllPHG4Ptcl_pT = std::vector<float>();
0330 std::vector<float> AllPHG4Ptcl_eta = std::vector<float>();
0331 std::vector<float> AllPHG4Ptcl_phi = std::vector<float>();
0332 std::vector<float> AllPHG4Ptcl_E = std::vector<float>();
0333 std::vector<int> AllPHG4Ptcl_PID = std::vector<int>();
0334 std::vector<int> AllPHG4Ptcl_trackID = std::vector<int>();
0335 std::vector<std::vector<int>> AllPHG4Ptcl_ancestor_trackID = std::vector<std::vector<int>>();
0336 std::vector<std::vector<int>> AllPHG4Ptcl_ancestor_PID = std::vector<std::vector<int>>();
0337 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_X = std::vector<std::vector<float>>();
0338 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_Y = std::vector<std::vector<float>>();
0339 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_Z = std::vector<std::vector<float>>();
0340 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_edep = std::vector<std::vector<float>>();
0341 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_adc = std::vector<std::vector<float>>();
0342 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_r = std::vector<std::vector<float>>();
0343 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_phi = std::vector<std::vector<float>>();
0344 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_eta = std::vector<std::vector<float>>();
0345 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_phisize = std::vector<std::vector<float>>();
0346 std::vector<std::vector<float>> AllPHG4Ptcl_truthcluster_zsize = std::vector<std::vector<float>>();
0347 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_globalX = std::vector<std::vector<float>>();
0348 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_globalY = std::vector<std::vector<float>>();
0349 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_globalZ = std::vector<std::vector<float>>();
0350 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_r = std::vector<std::vector<float>>();
0351 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_phi = std::vector<std::vector<float>>();
0352 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_eta = std::vector<std::vector<float>>();
0353 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_phisize = std::vector<std::vector<float>>();
0354 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_zsize = std::vector<std::vector<float>>();
0355 std::vector<std::vector<float>> AllPHG4Ptcl_recocluster_adc = std::vector<std::vector<float>>();
0356
0357 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_X = std::vector<std::vector<float>>();
0358 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_Y = std::vector<std::vector<float>>();
0359 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_Z = std::vector<std::vector<float>>();
0360 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_edep = std::vector<std::vector<float>>();
0361 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_adc = std::vector<std::vector<float>>();
0362 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_r = std::vector<std::vector<float>>();
0363 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_phi = std::vector<std::vector<float>>();
0364 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_eta = std::vector<std::vector<float>>();
0365 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_phisize = std::vector<std::vector<float>>();
0366 std::vector<std::vector<float>> PrimaryPHG4Ptcl_truthcluster_zsize = std::vector<std::vector<float>>();
0367 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_globalX = std::vector<std::vector<float>>();
0368 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_globalY = std::vector<std::vector<float>>();
0369 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_globalZ = std::vector<std::vector<float>>();
0370 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_r = std::vector<std::vector<float>>();
0371 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_phi = std::vector<std::vector<float>>();
0372 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_eta = std::vector<std::vector<float>>();
0373 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_phisize = std::vector<std::vector<float>>();
0374 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_zsize = std::vector<std::vector<float>>();
0375 std::vector<std::vector<float>> PrimaryPHG4Ptcl_recocluster_adc = std::vector<std::vector<float>>();
0376 };
0377
0378 #endif