Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-05-23 08:08:43

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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     /** Called during initialization.
0056         Typically this is where you can book histograms, and e.g.
0057         register them to Fun4AllServer (so they can be output to file
0058         using Fun4AllServer::dumpHistos() method).
0059      */
0060     int Init(PHCompositeNode *topNode) override;
0061 
0062     /** Called for first event when run number is known.
0063         Typically this is where you may want to fetch data from
0064         database, because you know the run number. A place
0065         to book histograms which have to know the run number.
0066      */
0067     int InitRun(PHCompositeNode *topNode) override;
0068 
0069     /** Called for each event.
0070         This is where you do the real work.
0071      */
0072     int process_event(PHCompositeNode *topNode) override;
0073 
0074     /// Clean up internals after each event.
0075     int ResetEvent(PHCompositeNode *topNode) override;
0076 
0077     /// Called at the end of each run.
0078     int EndRun(const int runnumber) override;
0079 
0080     /// Called at the end of all processing.
0081     int End(PHCompositeNode *topNode) override;
0082 
0083     /// Reset
0084     int Reset(PHCompositeNode * /*topNode*/) override;
0085 
0086     void Print(const std::string &what = "ALL") const override;
0087 
0088     void setOutputName(std::string name) { outFileName = name; };
0089 
0090     // set the flag for simulation
0091     void IsSimulation() { isSimulation = true; };
0092 
0093   private:
0094     void FillSiliconSeedTree();
0095     void FillClusterTree();
0096     void FillTruthParticleTree();
0097     void Cleanup();
0098 
0099     // flag for simulation
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     // for truth information
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     // float mbdVertex{std::numeric_limits<float>::quiet_NaN()};
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     // float trackerVertexX{std::numeric_limits<float>::quiet_NaN()};
0136     // float trackerVertexY{std::numeric_limits<float>::quiet_NaN()};
0137     // float trackerVertexZ{std::numeric_limits<float>::quiet_NaN()};
0138     // float trackerVertexChisq{std::numeric_limits<float>::quiet_NaN()};
0139     // int trackerVertexNdof{std::numeric_limits<int>::quiet_NaN()};
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; // initialize to 1 corresponding to event number in Fun4All
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     // centrality
0166     float centrality_mbd_;
0167 
0168     // truth vertex information
0169     int nTruthVertex = 0; // total number of primary truth vertices
0170     // coordinates for primary truth vertices with isEmbededVtx == 0 (dNdEtaINTT-style trigger vertex selection)
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     // silicon seed information
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>(); // with respect to the matched same-crossing vertex
0187     std::vector<float> silseed_phi_vtx = std::vector<float>(); // with respect to the matched same-crossing vertex
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     // seed cluster truth matching
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     // (intt) cluster information
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>();        // for mvtx chip id
0224     std::vector<int> cluster_stave = std::vector<int>();       // for mvtx stave id
0225     std::vector<int> cluster_ladderZId = std::vector<int>();   // for intt ladder z id
0226     std::vector<int> cluster_ladderPhiId = std::vector<int>(); // for intt ladder phi id
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     // truth matching for (INTT) clusters by max_truth_particle_by_energy()
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     // MVTX clusters on seeds (just flattend per event/trigger frame)
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>();  // mvtx chip id
0251     std::vector<int> mvtx_seedcluster_stave = std::vector<int>(); // mvtx stave id
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     // truth info
0268     // PHG4Particle matching: 1) SvtxClusterEval::max_truth_cluster_by_energy, and 2) max_truth_particle_by_cluster_energy
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     // particle ancestor
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     // Truth particle Tree and branches
0280     int N_PrimaryPHG4Ptcl = 0;
0281     int N_sPHENIXPrimary = 0;
0282     // primary particle
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     // sPHENIX primary particle
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     // all PHG4Particles 
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     // Truth cluster from PHG4Particle (SvtxTruthEval) and the reco cluster matched to the truth cluster (SvtxClusterEval)
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 // VERTEXCOMPARE_H