1 #ifndef SimMuon_GEMDigitizer_GEMDigiProducer_h
2 #define SimMuon_GEMDigitizer_GEMDigiProducer_h
36 class HepRandomEngine;
66 produces<GEMDigiCollection>();
67 produces<StripDigiSimLinks>(
"GEM");
68 produces<GEMDigiSimLinks>(
"GEM");
73 <<
"GEMDigiProducer::GEMDigiProducer() - RandomNumberGeneratorService is not present in configuration file.\n"
74 <<
"Add the service in the configuration file or remove the modules that require it.";
81 geom_token_ = esConsumes<GEMGeometry, MuonGeometryRecord, edm::Transition::BeginRun>();
91 desc.add<
double>(
"signalPropagationSpeed", 0.66);
92 desc.add<
double>(
"timeResolution", 5.);
93 desc.add<
double>(
"timeJitter", 1.0);
94 desc.add<
double>(
"averageShapingTime", 50.0);
95 desc.add<
double>(
"averageEfficiency", 0.98);
96 desc.add<
double>(
"averageNoiseRate", 0.001);
100 desc.add<
int>(
"minBunch", -5);
101 desc.add<
int>(
"maxBunch", 3);
103 desc.add<
bool>(
"fixedRollRadius",
true);
105 desc.add<
bool>(
"digitizeOnlyMuons",
false);
106 desc.add<
bool>(
"simulateBkgNoise",
false);
108 desc.add<
bool>(
"simulateNoiseCLS",
true);
109 desc.add<
bool>(
"simulateElectronBkg",
true);
111 desc.add<
bool>(
"simulateIntrinsicNoise",
false);
113 desc.add<
double>(
"instLumi", 7.5);
115 desc.add<
double>(
"rateFact", 1.0);
117 desc.add<
double>(
"bxWidth", 25E-9);
118 desc.add<
double>(
"referenceInstLumi", 5.);
120 desc.add<
double>(
"resolutionX", 0.03);
126 desc.add<
double>(
"GE11ModNeuBkgParam0", 5710.23);
127 desc.add<
double>(
"GE11ModNeuBkgParam1", -43.3928);
128 desc.add<
double>(
"GE11ModNeuBkgParam2", 0.0863681);
129 desc.add<
double>(
"GE21ModNeuBkgParam0", 1440.44);
130 desc.add<
double>(
"GE21ModNeuBkgParam1", -7.48607);
131 desc.add<
double>(
"GE21ModNeuBkgParam2", 0.0103078);
132 desc.add<
double>(
"GE11ElecBkgParam0", 406.249);
133 desc.add<
double>(
"GE11ElecBkgParam1", -2.90939);
134 desc.add<
double>(
"GE11ElecBkgParam2", 0.00548191);
135 desc.add<
double>(
"GE21ElecBkgParam0", 97.0505);
136 desc.add<
double>(
"GE21ElecBkgParam1", -43.3928);
137 desc.add<
double>(
"GE21ElecBkgParam2", 00.000550599);
139 descriptions.
add(
"simMuonGEMDigisDef",
desc);
150 CLHEP::HepRandomEngine* engine = &rng->
getEngine(
e.streamID());
158 auto digis = std::make_unique<GEMDigiCollection>();
159 auto stripDigiSimLinks = std::make_unique<StripDigiSimLinks>();
160 auto gemDigiSimLinks = std::make_unique<GEMDigiSimLinks>();
163 std::map<uint32_t, edm::PSimHitContainer> hitMap;
171 for (
const auto& roll : etaPartitions) {
173 const uint32_t rawId(detId.rawId());
174 const auto&
simHits(hitMap[rawId]);
176 LogDebug(
"GEMDigiProducer") <<
"GEMDigiProducer: found " <<
simHits.size() <<
" hit(s) in eta partition" << rawId;