Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-01 07:56:14

0001 // Copyright 2023, Christopher Dilks
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 
0004 #pragma once
0005 
0006 #include <spdlog/spdlog.h>
0007 
0008 #include <TH1D.h>
0009 #include <TH2D.h>
0010 
0011 #include <edm4hep/SimTrackerHitCollection.h>
0012 #include <edm4hep/MCParticleCollection.h>
0013 
0014 #include "Tools.h"
0015 #include "ChargedParticle.h"
0016 
0017 namespace benchmarks {
0018 
0019   class SimHitAnalysis {
0020 
0021     public:
0022       SimHitAnalysis() = default;
0023       ~SimHitAnalysis() {}
0024 
0025       // algorithm methods
0026       void AlgorithmInit(std::shared_ptr<spdlog::logger>& logger);
0027       void AlgorithmProcess(
0028           const edm4hep::MCParticleCollection&    mc_parts,
0029           const edm4hep::SimTrackerHitCollection& sim_hits
0030           );
0031       void AlgorithmFinish();
0032 
0033     private:
0034 
0035       // histograms
0036       TH1D *m_nphot_dist;
0037       TH2D *m_nphot_vs_p;
0038       TH1D *m_nphot_vs_p__transient; // transient (not written)
0039       TH1D *m_phot_spectrum;
0040 
0041       // logger
0042       std::shared_ptr<spdlog::logger> m_log;
0043 
0044   };
0045 
0046 }