ATLAS Offline Software
Loading...
Searching...
No Matches
ALFA_PileUpTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ALFA_PILEUP_TOOL_H
6#define ALFA_PILEUP_TOOL_H
7
9
10#include "Gaudi/Property.h"
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ITHistSvc.h"
14
16
19
22
24
25#include <string>
26#include <vector>
27
28namespace CLHEP {
29 class HepRandomEngine;
30}
31
33
34 public:
35
36 ALFA_PileUpTool(const std::string& type,
37 const std::string& name,
38 const IInterface* parent);
39
40 virtual StatusCode initialize() override final;
41 virtual StatusCode finalize() override final;
42
45 virtual StatusCode prepareEvent(const EventContext& ctx, const unsigned int nInputEvents) override final;
46
48 virtual StatusCode processBunchXing(
49 int bunchXing,
50 SubEventIterator bSubEvents,
51 SubEventIterator eSubEvents
52 ) override final;
55 // virtual bool toProcess(int bunchXing) const;
56
58 virtual StatusCode mergeEvent(const EventContext& ctx) override final;
59
60 virtual StatusCode processAllSubEvents(const EventContext& ctx) override final;
61
62 private:
63
64 StatusCode recordCollection(ServiceHandle<StoreGateSvc>& evtStore, const std::string& key_digitCnt);
65
68
69
70 StatusCode fill_MD_DigitCollection(CLHEP::HepRandomEngine*);
71
72 StatusCode recordODCollection(ServiceHandle<StoreGateSvc>& evtStore, const std::string& key_ODdigitCnt);
73
76
77
78 StatusCode fill_OD_DigitCollection(CLHEP::HepRandomEngine*);
79 StatusCode XTalk();
80
81
82 ServiceHandle<PileUpMergeSvc> m_mergeSvc{this, "mergeSvc", "PileUpMergeSvc", ""};
83 ServiceHandle<IAthRNGSvc> m_randomSvc{this, "RndmSvc", "AthRNGSvc", ""};
84 Gaudi::Property<std::string> m_randomStreamName{this, "RandomStreamName", "ALFARndEng", ""};
85
86 double m_E_fib[8][20][64]{};
87 double m_E_ODfib[8][2][3][30]{};
88
89
94
97
98
99 double m_sigma0{};
100 double m_sigma1{};
101 double m_meanE_dep{};
102 double m_meanN_photo{};
103 double m_mean{};
104 double m_stdDev{};
105 double m_AmplitudeCut{};
106
109
110 double m_cross_talk[8][127]{};
111 int m_fibres[8][20][64]{};
112
113
114};
115
116#endif
AtlasHitsVector< ALFA_Hit > ALFA_HitCollection
AtlasHitsVector< ALFA_ODHit > ALFA_ODHitCollection
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition IPileUpTool.h:22
the preferred mechanism to access information from the different event stores in a pileup job.
helper base class IPileUpTool::toProcess().
ServiceHandle< PileUpMergeSvc > m_mergeSvc
ALFA_ODHitCollection * m_mergedALFA_ODHitList
StatusCode fill_OD_DigitCollection(CLHEP::HepRandomEngine *)
std::string m_SimODHitCollectionName
ALFA_DigitCollection * m_digitCollection
virtual StatusCode initialize() override final
std::string m_SimHitCollectionName
double m_E_fib[8][20][64]
void ALFA_OD_info(const ALFA_ODHitCollection *)
double m_cross_talk[8][127]
std::string m_key_DigitCollection
StatusCode recordCollection(ServiceHandle< StoreGateSvc > &evtStore, const std::string &key_digitCnt)
void ALFA_MD_info(const ALFA_HitCollection *)
ALFA_HitCollection * m_mergedALFA_HitList
virtual StatusCode processBunchXing(int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final
called for each active bunch-crossing to process current SubEvents bunchXing is in ns
ServiceHandle< IAthRNGSvc > m_randomSvc
virtual StatusCode mergeEvent(const EventContext &ctx) override final
return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase...
virtual StatusCode finalize() override final
StatusCode fill_MD_DigitCollection(CLHEP::HepRandomEngine *)
Gaudi::Property< std::string > m_randomStreamName
std::string m_key_ODDigitCollection
StatusCode recordODCollection(ServiceHandle< StoreGateSvc > &evtStore, const std::string &key_ODdigitCnt)
virtual StatusCode processAllSubEvents(const EventContext &ctx) override final
int m_fibres[8][20][64]
ALFA_ODDigitCollection * m_ODdigitCollection
virtual StatusCode prepareEvent(const EventContext &ctx, const unsigned int nInputEvents) override final
code taken from ZDC; author (highly) probably John Chapman called before the subevts loop.
ALFA_PileUpTool(const std::string &type, const std::string &name, const IInterface *parent)
double m_E_ODfib[8][2][3][30]
PileUpToolBase(const std::string &type, const std::string &name, const IInterface *parent)