Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:30:36

0001 #ifndef Tracker_SiChargeDivider_H
0002 #define Tracker_SiChargeDivider_H
0003 
0004 #include "EnergyDepositUnit.h"
0005 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0006 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
0007 
0008 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
0009 
0010 #include <vector>
0011 
0012 namespace CLHEP {
0013   class HepRandomEngine;
0014 }
0015 
0016 /**
0017  * Base class for the division of a Geant energy deposit in smaller elementary charges inside the silicon
0018  */
0019 class SiChargeDivider {
0020 public:
0021   typedef std::vector<EnergyDepositUnit> ionization_type;
0022   virtual ~SiChargeDivider() {}
0023   virtual ionization_type divide(
0024       const PSimHit*, const LocalVector&, double, const StripGeomDetUnit& det, CLHEP::HepRandomEngine* engine) = 0;
0025   virtual void setParticleDataTable(const ParticleDataTable* pdt) = 0;
0026 };
0027 
0028 #endif