1 #ifndef EcalSimAlgos_EcalHitResponse_h 2 #define EcalSimAlgos_EcalHitResponse_h 12 #include <unordered_map> 25 class HepRandomEngine;
32 typedef std::vector<unsigned int>
VecInd;
36 enum { BUNCHSPACE = 25 };
46 void setPhaseShift(
double phaseShift);
58 void add(
const EcalSamples* pSam);
64 virtual void initializeHits();
66 virtual void finalizeHits();
70 virtual unsigned int samplesSize()
const = 0;
72 virtual EcalSamples*
operator[](
unsigned int i) = 0;
74 virtual const EcalSamples*
operator[](
unsigned int i)
const = 0;
76 const EcalSamples* findDetId(
const DetId& detId)
const;
78 bool withinBunchRange(
int bunchCrossing)
const;
81 virtual unsigned int samplesSizeAll()
const = 0;
83 virtual EcalSamples* vSam(
unsigned int i) = 0;
85 virtual EcalSamples* vSamAll(
unsigned int i) = 0;
87 virtual const EcalSamples* vSamAll(
unsigned int i)
const = 0;
89 virtual void putAnalogSignal(
const PCaloHit& inputHit, CLHEP::HepRandomEngine*);
91 double findLaserConstant(
const DetId& detId)
const;
93 EcalSamples* findSignal(
const DetId& detId);
95 double analogSignalAmplitude(
const DetId&
id,
double energy, CLHEP::HepRandomEngine*);
99 double phaseShift()
const;
101 void blankOutUsedSamples();
115 const VecInd&
index()
const;
const CaloVShape * m_shape
Electronic response of the preamp.
Main class for Parameters in different subdetectors.
std::unordered_map< uint32_t, double > CalibCache
std::vector< unsigned int > VecInd
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
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
const CaloSubdetectorGeometry * m_geometry
const CaloVSimParameterMap * m_parameterMap
const CaloVPECorrection * m_PECorrection
CalibCache m_laserCalibCache
ESHandle< TrackerGeometry > geometry
const CaloVHitFilter * m_hitFilter
double timeOfFlight(DetId id, const CaloGeometry *geo, bool debug=false)
unsigned long long TimeValue_t