1 #include "CLHEP/Units/GlobalPhysicalConstants.h" 7 MIPPerMeV_( 1.0/pset.getParameter<double>(
"meVPerMIP") ),
8 bxTime_(pset.getParameter<double>(
"bxTime") ),
9 tofDelay_(pset.getParameter<double>(
"tofDelay") ) {}
15 CLHEP::HepRandomEngine *hre){
18 const int nchits = hitRefs.size();
19 for(
int i=0;
i<nchits; ++
i) {
20 const int hitidx = std::get<0>(hitRefs[
i]);
21 const uint32_t
id = std::get<1>(hitRefs[
i]);
25 if ( detId.det()!=
DetId::Forward || detId.mtdSubDetector()!=2 )
continue;
31 const float toa = std::get<2>(hitRefs[
i]) +
tofDelay_;
36 const int itime = std::floor( toa/
bxTime_ ) + 9;
37 if(itime<0 || itime>14)
continue;
40 if(itime >= (
int)simHitIt->second.hit_info[0].size() )
continue;
42 (simHitIt->second).hit_info[0][itime] += charge;
45 const float tof = toa - (itime-9)*
bxTime_;
47 if( (simHitIt->second).hit_info[1][itime] == 0. ||
48 tof < (simHitIt->second).hit_info[1][itime] ) {
49 (simHitIt->second).hit_info[1][itime] = tof;
Detector identifier base class for the MIP Timing Layer.
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)
std::unordered_map< uint32_t, MTDCellInfo > MTDSimHitDataAccumulator
ETLDeviceSim(const edm::ParameterSet &pset)