1 #ifndef EcalSimAlgos_EcalHitResponse_h 2 #define EcalSimAlgos_EcalHitResponse_h 12 #include <unordered_map> 26 class HepRandomEngine ;
35 typedef std::vector< unsigned int >
VecInd ;
39 enum { BUNCHSPACE = 25 } ;
51 void setPhaseShift(
double phaseShift ) ;
63 void add(
const EcalSamples* pSam ) ;
69 virtual void initializeHits() ;
71 virtual void finalizeHits() ;
75 virtual unsigned int samplesSize()
const = 0 ;
77 virtual EcalSamples*
operator[](
unsigned int i ) = 0;
79 virtual const EcalSamples*
operator[](
unsigned int i )
const = 0;
81 const EcalSamples* findDetId(
const DetId& detId )
const ;
83 bool withinBunchRange(
int bunchCrossing)
const ;
87 virtual unsigned int samplesSizeAll()
const = 0 ;
89 virtual EcalSamples* vSam(
unsigned int i ) = 0 ;
91 virtual EcalSamples* vSamAll(
unsigned int i ) = 0 ;
93 virtual const EcalSamples* vSamAll(
unsigned int i )
const = 0 ;
95 virtual void putAnalogSignal(
const PCaloHit& inputHit, CLHEP::HepRandomEngine*) ;
97 double findLaserConstant(
const DetId& detId)
const;
99 EcalSamples* findSignal(
const DetId& detId ) ;
101 double analogSignalAmplitude(
const DetId&
id,
double energy, CLHEP::HepRandomEngine* );
105 double phaseShift()
const ;
107 void blankOutUsedSamples() ;
121 const VecInd&
index()
const ;
const CaloVShape * m_shape
std::vector< unsigned int > VecInd
void add(const std::vector< const T * > &source, std::vector< const T * > &dest)
Electronic response of the preamp.
Main class for Parameters in different subdetectors.
const CaloVHitCorrection * m_hitCorrection
void setGeometry(CaloGeometry const *)
T operator[](int i) const
const EcalLaserDbService * m_lasercals
unsigned long long TimeValue_t
CaloTSamplesBase< float > EcalSamples
const CaloSubdetectorGeometry * m_geometry
const CaloVSimParameterMap * m_parameterMap
const CaloVPECorrection * m_PECorrection
CalibCache m_laserCalibCache
ESHandle< TrackerGeometry > geometry
std::unordered_map< uint32_t, double > CalibCache
const CaloVHitFilter * m_hitFilter
double timeOfFlight(DetId id, const CaloGeometry *geo, bool debug=false)
unsigned long long TimeValue_t