ATLAS Offline Software
TRTOverlay.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETOVERLAY_TRTOVERLAY_H
6 #define INDETOVERLAY_TRTOVERLAY_H
7 
9 //
14 //
16 //
18 #include "AthAllocators/DataPool.h"
19 #include "GaudiKernel/ServiceHandle.h"
20 
21 
22 class TRT_ID;
23 
24 namespace CLHEP {
25 class HepRandomEngine;
26 }
27 
28 namespace OverlayTesting {
29 class TRTOverlay_test;
30 }
31 
33  public:
35 
36  TRTOverlay(const std::string &name, ISvcLocator *pSvcLocator);
37 
38  virtual StatusCode initialize() override final;
39  virtual StatusCode execute(const EventContext &ctx) const override final;
40 
41  private:
43  const EventContext &ctx, const TRT_RDO_Container *bkgContainer,
44  const TRT_RDO_Container *signalContainer,
45  TRT_RDO_Container *outputContainer,
46  const InDetSimDataCollection *signalSDOCollection,
47  DataPool<TRT_LoLumRawData>& dataItemsPool) const;
48 
49  void mergeCollections(TRT_RDO_Collection *bkgCollection,
50  TRT_RDO_Collection *signalCollection,
52  double occupancy,
53  const InDetSimDataCollection *signalSDOCollection,
54  const TRTCond::StrawStatusData *strawStatusHT,
55  CLHEP::HepRandomEngine *rndmEngine) const;
56 
58 
59  Gaudi::Property<bool> m_sortBkgInput{this, "SortBkgInput", false,
60  "Sort background input RDOs"};
61 
63  this, "BkgInputKey", "Bkg_TRT_RDOs",
64  " ReadHandleKey for Background Input TRT_RDO_Container"};
66  this, "SignalInputKey", "Sig_TRT_RDOs",
67  "ReadHandleKey for Signal Input TRT_RDO_Container"};
69  this, "OutputKey", "TRT_RDOs",
70  "WriteHandleKey for Output TRT_RDO_Container"};
72  this, "SignalInputSDOKey", "Sig_TRT_SDO_Map",
73  "ReadHandleKey for Signal Input InDetSimDataCollection for TRT"};
75  this, "StrawStatusHT", "StrawStatusHTData", "StrawStatusHT key"};
76 
77  // Following tools, services and configurables are there only for the correct
78  // treatment of HT hits
79  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc",
80  "Random Number Service"};
81 
82  Gaudi::Property<double> m_HTOccupancyCorrectionB{
83  this, "TRT_HT_OccupancyCorrectionBarrel", 0.110, ""};
84  Gaudi::Property<double> m_HTOccupancyCorrectionEC{
85  this, "TRT_HT_OccupancyCorrectionEndcap", 0.090, ""};
86  Gaudi::Property<double> m_HTOccupancyCorrectionB_noE{
87  this, "TRT_HT_OccupancyCorrectionBarrelNoE", 0.060, ""};
88  Gaudi::Property<double> m_HTOccupancyCorrectionEC_noE{
89  this, "TRT_HT_OccupancyCorrectionEndcapNoE", 0.050, ""};
90  Gaudi::Property<double> m_HTOccupancyCorrectionB_Ar{
91  this, "TRT_HT_OccupancyCorrectionBarrelAr", 0.100, ""};
92  Gaudi::Property<double> m_HTOccupancyCorrectionEC_Ar{
93  this, "TRT_HT_OccupancyCorrectionEndcapAr", 0.101, ""};
94  Gaudi::Property<double> m_HTOccupancyCorrectionB_Ar_noE{
95  this, "TRT_HT_OccupancyCorrectionBarrelArNoE", 0.088, ""};
96  Gaudi::Property<double> m_HTOccupancyCorrectionEC_Ar_noE{
97  this, "TRT_HT_OccupancyCorrectionEndcapArNoE", 0.102, ""};
98  ToolHandle<InDet::ITRT_LocalOccupancy> m_TRT_LocalOccupancyTool{
99  this, "TRT_LocalOccupancyTool", "TRT_LocalOccupancy", ""};
100 };
101 
102 #endif // INDETOVERLAY_TRTOVERLAY_H
TRTOverlay::m_trtId
const TRT_ID * m_trtId
Definition: TRTOverlay.h:57
TRTOverlay::m_HTOccupancyCorrectionEC_Ar
Gaudi::Property< double > m_HTOccupancyCorrectionEC_Ar
Definition: TRTOverlay.h:92
TRT_RDO_Container.h
TRTOverlay::initialize
virtual StatusCode initialize() override final
Definition: TRTOverlay.cxx:69
TRTOverlay::m_HTOccupancyCorrectionB_Ar
Gaudi::Property< double > m_HTOccupancyCorrectionB_Ar
Definition: TRTOverlay.h:90
TRT_LoLumRawData
Definition: TRT_LoLumRawData.h:25
TRTOverlay::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition: TRTOverlay.cxx:101
TRTOverlay::m_outputKey
SG::WriteHandleKey< TRT_RDO_Container > m_outputKey
Definition: TRTOverlay.h:68
InDetSimDataCollection
Definition: InDetSimDataCollection.h:25
TRTOverlay::m_strawStatusHTKey
SG::ReadCondHandleKey< TRTCond::StrawStatusData > m_strawStatusHTKey
Definition: TRTOverlay.h:74
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
TRTOverlay::m_signalInputKey
SG::ReadHandleKey< TRT_RDO_Container > m_signalInputKey
Definition: TRTOverlay.h:65
ITRT_LocalOccupancy.h
OverlayTesting
Definition: TRTOverlay.h:28
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TRTOverlay::m_signalInputSDOKey
SG::ReadHandleKey< InDetSimDataCollection > m_signalInputSDOKey
Definition: TRTOverlay.h:71
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
TRTOverlay::mergeCollections
void mergeCollections(TRT_RDO_Collection *bkgCollection, TRT_RDO_Collection *signalCollection, TRT_RDO_Collection *outputCollection, double occupancy, const InDetSimDataCollection *signalSDOCollection, const TRTCond::StrawStatusData *strawStatusHT, CLHEP::HepRandomEngine *rndmEngine) const
Here we take 2 view containers with elements owned by the DataPool we modify some of them and push th...
Definition: TRTOverlay.cxx:288
TRTOverlay::m_TRT_LocalOccupancyTool
ToolHandle< InDet::ITRT_LocalOccupancy > m_TRT_LocalOccupancyTool
Definition: TRTOverlay.h:98
TRTOverlay::m_HTOccupancyCorrectionB_noE
Gaudi::Property< double > m_HTOccupancyCorrectionB_noE
Definition: TRTOverlay.h:86
DataPool.h
AthReentrantAlgorithm.h
TRTOverlay::m_HTOccupancyCorrectionEC_noE
Gaudi::Property< double > m_HTOccupancyCorrectionEC_noE
Definition: TRTOverlay.h:88
postInclude.outputCollection
outputCollection
Definition: postInclude.SortInput.py:27
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TRTOverlay::m_sortBkgInput
Gaudi::Property< bool > m_sortBkgInput
Definition: TRTOverlay.h:59
SG::ReadCondHandleKey< TRTCond::StrawStatusData >
TRTCond
Definition: BasicRtRelation.cxx:8
TRTOverlay::TRTOverlay_test
friend class OverlayTesting::TRTOverlay_test
Definition: TRTOverlay.h:34
TRTOverlay::m_HTOccupancyCorrectionB
Gaudi::Property< double > m_HTOccupancyCorrectionB
Definition: TRTOverlay.h:82
TRT_ID
Definition: TRT_ID.h:84
TRTOverlay
Definition: TRTOverlay.h:32
InDetSimDataCollection.h
TRTOverlay::overlayContainer
StatusCode overlayContainer(const EventContext &ctx, const TRT_RDO_Container *bkgContainer, const TRT_RDO_Container *signalContainer, TRT_RDO_Container *outputContainer, const InDetSimDataCollection *signalSDOCollection, DataPool< TRT_LoLumRawData > &dataItemsPool) const
Definition: TRTOverlay.cxx:160
TRTOverlay::m_HTOccupancyCorrectionEC
Gaudi::Property< double > m_HTOccupancyCorrectionEC
Definition: TRTOverlay.h:84
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
TRTOverlay::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: TRTOverlay.h:79
TRTOverlay::m_bkgInputKey
SG::ReadHandleKey< TRT_RDO_Container > m_bkgInputKey
Definition: TRTOverlay.h:62
TRTOverlay::TRTOverlay
TRTOverlay(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TRTOverlay.cxx:64
TRTOverlay::m_HTOccupancyCorrectionB_Ar_noE
Gaudi::Property< double > m_HTOccupancyCorrectionB_Ar_noE
Definition: TRTOverlay.h:94
TRTOverlay::m_HTOccupancyCorrectionEC_Ar_noE
Gaudi::Property< double > m_HTOccupancyCorrectionEC_Ar_noE
Definition: TRTOverlay.h:96
TRT_LoLumRawData.h
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
StrawStatusData.h