13 #include "CLHEP/Random/RandomEngine.h"
14 #include "CLHEP/Random/RandFlat.h"
15 #include "CLHEP/Random/RandPoissonQ.h"
62 for (
const auto &
hit: simHits)
67 auto entry =
hit.entryPoint();
70 std::pair<int, int> digi(topology.channel(entry) + 1, time_hit);
87 <<
"GEMSynchronizer::simulateNoise() - this GEM id is from barrel, which cannot happen.";
91 const TrapezoidalStripTopology* top_=
dynamic_cast<const TrapezoidalStripTopology*
>(&(roll->
topology()));
92 float xmin = (top_->localPosition(0.)).
x();
93 float xmax = (top_->localPosition((
float)roll->
nstrips())).x();
94 float striplength = (top_->stripLength());
95 area = striplength*(xmax-
xmin);
103 for (
int i = 0;
i < n_hits;
i++ ){
104 int strip =
static_cast<int>(
flatDistr1_->fire(1,nstrips));
105 int time_hit =
static_cast<int>(
flatDistr2_->fire(nBxing)) + minBunch_;
106 std::pair<int, int> digi(strip,time_hit);
T getParameter(std::string const &) const
DetectorHitMap detectorHitMap_
CLHEP::RandFlat * flatDistr2_
void setRandomEngine(CLHEP::HepRandomEngine &eng)
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
std::set< std::pair< int, int > > strips_
uint32_t rawId() const
get the raw id
void setRandomEngine(CLHEP::HepRandomEngine &eng)
double averageEfficiency_
Abs< T >::type abs(const T &t)
CLHEP::RandFlat * flatDistr1_
void simulateNoise(const GEMEtaPartition *roll)
Container::value_type value_type
int region() const
Region id: 0 for Barrel Not in use, +/-1 For +/- Endcap.
double averageShapingTime_
void setGEMSimSetUp(GEMSimSetUp *simsetup)
CLHEP::RandPoissonQ * poissonDistr_
GEMSimSetUp * getGEMSimSetUp()
int getSimHitBx(const PSimHit *)
std::vector< PSimHit > PSimHitContainer
StripDigiSimLinks stripDigiSimLinks_
void simulate(const GEMEtaPartition *roll, const edm::PSimHitContainer &rpcHits)
GEMSimAverage(const edm::ParameterSet &config)