5 #ifndef PILEUPMT_PILEUPMTALG_H
6 #define PILEUPMT_PILEUPMTALG_H
30 #include <string_view>
41 using namespace std::chrono;
42 std::lock_guard lck{
m_mtx};
57 std::lock_guard lck{
m_mtx};
65 std::lock_guard lck{
m_mtx};
84 virtual bool isClonable()
const override {
return true; }
98 "MinbiasSvc for low pT minbias"};
100 "MinbiasSvc for high pT minbias"};
102 "MinbiasSvc for cavern background"};
104 this,
"BeamHaloMinbiasSvc",
"",
"MinbiasSvc for beam halo background"};
106 this,
"BeamGasMinbiasSvc",
"",
"MinbiasSvc for beam gas background"};
108 "Beam intensity service"};
110 this,
"BeamLumiSvc",
"LumiProfileSvc",
"Beam luminosity service"};
112 "RNG service for pile-up digitization"};
113 ToolHandleArray<IPileUpTool> m_puTools{
114 this,
"PileUpTools", {},
"Pileup tools"};
115 Gaudi::Property<bool> m_writeTrace{
this,
"WriteTrace",
false,
"Write trace of pileup events used"};
116 Gaudi::Property<int> m_skippedHSEvents{
this,
"SkippedHSEvents", 0,
117 "Number of skipped HS events"};
118 Gaudi::Property<float> m_avgMu{
this,
"AverageMu", 200,
"Average mu"};
119 Gaudi::Property<float> m_fracLowPt{
this,
"FracLowPt", 0.,
120 "Fraction of pileup that has low pT"};
121 Gaudi::Property<float> m_fracHighPt{
this,
"FracHighPt", 0.,
122 "Fraction of pileup that has high pT"};
123 Gaudi::Property<float> m_numCavern{
124 this,
"NumCavern", 0.,
"Number of cavern background events per BC"};
125 Gaudi::Property<float> m_numBeamGas{
126 this,
"NumBeamGas", 0.,
"Number of beam gas background events per BC"};
127 Gaudi::Property<float> m_numBeamHalo{
128 this,
"NumBeamHalo", 0.,
"Number of beam halo background events per BC"};
129 Gaudi::Property<int> m_BCSpacing{
this,
"BCSpacing", 25,
130 "Bunch crossing spacing in ns"};
131 Gaudi::Property<int> m_earliestDeltaBC{
132 this,
"EarliestDeltaBC", -32,
133 "Earliest bunch crossing to consider (as delta)"};
134 Gaudi::Property<int> m_latestDeltaBC{
135 this,
"LatestDeltaBC", +6,
136 "Latest bunch crossing to consider (as delta)"};
138 this,
"SkipEvtIdxSvc",
"SkipEventIdxSvc",
139 "Skipped event index (run / lb num) provider"};
141 this,
"BeamSpotKey",
"BeamSpotData",
"Beam spot info key"};
143 this,
"EventInfoKey",
"OverlayEvent",
"Overlay EventInfo key"};
147 std::unique_ptr<const xAOD::EventInfo>& ei,
148 std::unique_ptr<xAOD::EventAuxInfo>& eiAux,
149 bool pileup =
false)
const;
150 inline unsigned int get_BCID(
int bc,
unsigned int central_BCID)
const {
151 constexpr
int maxBCPerOrbit = 3564;
152 return static_cast<unsigned int>((bc +
static_cast<int>(central_BCID)) %
160 const EventContext& ctx,
unsigned long subevt_id,
161 std::vector<std::uint64_t>& trace);
166 #endif //> !PILEUPMT_PILEUPMTALG_H