5 #include "CLHEP/Random/RandGaussQ.h" 8 bxTime_(pset.getParameter<double>(
"bxTime") ),
9 LightYield_(pset.getParameter<double>(
"LightYield")),
10 LightCollEff_(pset.getParameter<double>(
"LightCollectionEff")),
11 LightCollTime_(pset.getParameter<double>(
"LightCollectionTime")),
12 smearLightCollTime_(pset.getParameter<double>(
"smearLightCollectionTime")),
13 PDE_(pset.getParameter<double>(
"PhotonDetectionEff")) { }
19 CLHEP::HepRandomEngine *hre){
22 const int nchits = hitRefs.size();
23 for(
int ihit=0; ihit<nchits; ++ihit) {
25 const int hitidx = std::get<0>(hitRefs[ihit]);
26 const uint32_t
id = std::get<1>(hitRefs[ihit]);
31 if ( detId.det()!=
DetId::Forward || detId.mtdSubDetector()!=1 )
continue;
46 const int itime = std::floor( toa/
bxTime_ ) + 9;
47 if(itime<0 || itime>14)
continue;
50 if(itime >= (
int)simHitIt->second.hit_info[0].size() )
continue;
52 (simHitIt->second).hit_info[0][itime] += Npe;
55 const float tof = toa - (itime-9)*
bxTime_;
57 if( (simHitIt->second).hit_info[1][itime] == 0 ||
58 tof < (simHitIt->second).hit_info[1][itime] )
59 (simHitIt->second).hit_info[1][itime] = tof;
void getHitsResponse(const std::vector< std::tuple< int, uint32_t, float > > &hitRefs, const edm::Handle< edm::PSimHitContainer > &hits, mtd_digitizer::MTDSimHitDataAccumulator *simHitAccumulator, CLHEP::HepRandomEngine *hre)
Detector identifier base class for the MIP Timing Layer.
BTLDeviceSim(const edm::ParameterSet &pset)
const float smearLightCollTime_
const float LightCollTime_
float energyLoss() const
The energy deposit in the PSimHit, in ???.
std::unordered_map< uint32_t, MTDCellInfo > MTDSimHitDataAccumulator
const float LightCollEff_