ATLAS Offline Software
Loading...
Searching...
No Matches
LUCID_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 LUCID_DIGITIZATION_TOOL_H
6#define LUCID_DIGITIZATION_TOOL_H
7
9
11
14
15#include "xAODEventInfo/EventInfo.h" // SubEventIterator
16#include "xAODEventInfo/EventAuxInfo.h"// SubEventIterator
17
20
21#include "Gaudi/Property.h"
22#include "GaudiKernel/ServiceHandle.h"
23
24#include <vector>
25#include <utility> /* pair */
26
27namespace CLHEP {
28 class HepRandomEngine;
29}
30
32
33public:
34
35 LUCID_PileUpTool(const std::string& type,
36 const std::string& name,
37 const IInterface* parent);
38
39 virtual StatusCode initialize() override final;
40 virtual StatusCode finalize() override final;
41
43 virtual StatusCode prepareEvent(const EventContext& ctx, const unsigned int nInputEvents) override final;
44
46 virtual StatusCode processBunchXing(int bunchXing,
47 SubEventIterator bSubEvents,
48 SubEventIterator eSubEvents) override final;
51 // virtual bool toProcess(int bunchXing) const override final;
52
54 virtual StatusCode mergeEvent(const EventContext& ctx) override final;
55
57 virtual StatusCode processAllSubEvents(const EventContext& ctx) override final;
58
59private:
60
61 ServiceHandle<PileUpMergeSvc> m_mergeSvc{this, "mergeSvc", "PileUpMergeSvc", ""};
62 ServiceHandle<IAthRNGSvc> m_randomSvc{this, "RndmSvc", "AthRNGSvc", ""};
63 Gaudi::Property<std::string> m_randomStreamName{this, "RandomStreamName", "LUCIDRndEng", ""};
64
65 std::string m_dataObjectName;
68 std::string m_key_digitCnt;
69
71};
72
73#endif
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition IPileUpTool.h:22
AtlasHitsVector< LUCID_SimHit > LUCID_SimHitCollection
the preferred mechanism to access information from the different event stores in a pileup job.
helper base class IPileUpTool::toProcess().
LUCID_PileUpTool(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize() override final
ServiceHandle< IAthRNGSvc > m_randomSvc
ServiceHandle< PileUpMergeSvc > m_mergeSvc
virtual StatusCode mergeEvent(const EventContext &ctx) override final
return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase...
std::string m_digitsContainerName
Gaudi::Property< std::string > m_randomStreamName
LUCID_SimHitCollection * m_mergedhitList
virtual StatusCode processAllSubEvents(const EventContext &ctx) override final
perform the digitization - used by LUCID_DigiTop::execute
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
virtual StatusCode finalize() override final
std::string m_key_digitCnt
std::string m_dataObjectName
virtual StatusCode prepareEvent(const EventContext &ctx, const unsigned int nInputEvents) override final
called before the subevts loop. Not (necessarily) able to access SubEvents
std::string m_SimHitCollectionName
PileUpToolBase(const std::string &type, const std::string &name, const IInterface *parent)