ATLAS Offline Software
FCS_StepInfoSDTool.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 ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H
6 #define ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H
7 
12 
13 // System includes
14 #include <string>
15 #include <vector>
16 
17 // G4Atlas includes
19 
20 // Local includes
21 #include "FCS_StepInfoSD.h"
22 
23 // Forward declarations
24 class ILArCalculatorSvc;
25 class LArEM_ID;
26 class LArFCAL_ID;
27 class LArHEC_ID;
28 class TileID;
29 class ITileCalculator;
30 
31 namespace FCS_Param {
32 
41 
42  public:
44  FCS_StepInfoSDTool(const std::string& type, const std::string& name,
45  const IInterface* parent);
46 
48  StatusCode initialize() override final;
49 
51  StatusCode Gather() override final;
52 
53  private:
55  G4VSensitiveDetector* makeSD() const override final;
56 
59 
61  std::unique_ptr<FCS_StepInfoSD> makeOneLArSD(
62  const std::string& name, ILArCalculatorSvc* calc,
63  const std::vector<std::string>& volumes) const;
64 
66  std::unique_ptr<FCS_StepInfoSD> makeOneTileSD(
67  const std::string& name, ITileCalculator* calc,
68  const std::vector<std::string>& volumes) const;
69 
71  std::string m_hitCollName;
72 
75  std::vector<std::string> m_stacVolumes;
76  std::vector<std::string> m_presBarVolumes;
77  std::vector<std::string> m_posIWVolumes;
78  std::vector<std::string> m_negIWVolumes;
79  std::vector<std::string> m_posOWVolumes;
80  std::vector<std::string> m_negOWVolumes;
81  std::vector<std::string> m_presECVolumes;
82  std::vector<std::string> m_pBOBVolumes;
83  std::vector<std::string> m_nBOBVolumes;
84  std::vector<std::string> m_fcal1Volumes;
85  std::vector<std::string> m_fcal2Volumes;
86  std::vector<std::string> m_fcal3Volumes;
87  std::vector<std::string> m_sliceVolumes;
88  std::vector<std::string> m_tileVolumes;
90 
92  m_bpsmodcalc; // LArG4::BarrelPresampler::CalibrationCalculator
94  m_embcalc; // LArG4::Barrel::CalibrationCalculator
95  ServiceHandle<ILArCalculatorSvc> m_emepiwcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel,
96  // 1)
97  ServiceHandle<ILArCalculatorSvc> m_emeniwcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel,
98  // -1)
99  ServiceHandle<ILArCalculatorSvc> m_emepowcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel,
100  // 1)
101  ServiceHandle<ILArCalculatorSvc> m_emenowcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel,
102  // -1)
104  m_emepscalc; // LArG4::EC::PresamplerCalibrationCalculator
105  ServiceHandle<ILArCalculatorSvc> m_emepobarcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib,
106  // 1)
107  ServiceHandle<ILArCalculatorSvc> m_emenobarcalc; // LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib,
108  // 1)
110  m_heccalc; // LArG4::HEC::LArHECCalibrationWheelCalculator(LArG4::HEC::kWheelActive)
115 
121  const TileID* m_tileID;
124 
125 }; // class FCS_StepInfoSDTool
126 
127 } // namespace FCS_Param
128 
129 #endif
FCS_Param::FCS_StepInfoSDTool::m_fcal1calc
ServiceHandle< ILArCalculatorSvc > m_fcal1calc
Definition: FCS_StepInfoSDTool.h:111
FCS_Param::FCS_StepInfoSDTool::makeOneTileSD
std::unique_ptr< FCS_StepInfoSD > makeOneTileSD(const std::string &name, ITileCalculator *calc, const std::vector< std::string > &volumes) const
Helper method to create one SD.
Definition: FCS_StepInfoSDTool.cxx:262
FCS_Param::FCS_StepInfoSDTool::m_larHecID
const LArHEC_ID * m_larHecID
Definition: FCS_StepInfoSDTool.h:120
FCS_Param::FCS_StepInfoSDTool::makeSD
G4VSensitiveDetector * makeSD() const override final
Create the SD wrapper for current worker thread.
Definition: FCS_StepInfoSDTool.cxx:182
FCS_Param::FCS_StepInfoSDTool::m_fcal1Volumes
std::vector< std::string > m_fcal1Volumes
Definition: FCS_StepInfoSDTool.h:84
FCS_Param::FCS_StepInfoSDTool::m_fcal2Volumes
std::vector< std::string > m_fcal2Volumes
Definition: FCS_StepInfoSDTool.h:85
FCS_Param::FCS_StepInfoSDTool::m_negOWVolumes
std::vector< std::string > m_negOWVolumes
Definition: FCS_StepInfoSDTool.h:80
FCS_StepInfoSD.h
FCS_Param::FCS_StepInfoSDTool::initializeCalculators
virtual StatusCode initializeCalculators()
Initialize Calculator Services.
Definition: FCS_StepInfoSDTool.cxx:145
FCS_Param::FCS_StepInfoSDTool::m_posOWVolumes
std::vector< std::string > m_posOWVolumes
Definition: FCS_StepInfoSDTool.h:79
FCS_Param::FCS_StepInfoSDTool::FCS_StepInfoSDTool
FCS_StepInfoSDTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: FCS_StepInfoSDTool.cxx:36
ITileCalculator
Definition: ITileCalculator.h:67
FCS_Param::FCS_StepInfoSDTool::m_fcal2calc
ServiceHandle< ILArCalculatorSvc > m_fcal2calc
Definition: FCS_StepInfoSDTool.h:112
LArHEC_ID
Helper class for LArHEC offline identifiers.
Definition: LArHEC_ID.h:85
SensitiveDetectorBase
Common base class for tools that create and manage Geant4 sensitive detectors.
Definition: SensitiveDetectorBase.h:50
FCS_Param::FCS_StepInfoSDTool::m_emepobarcalc
ServiceHandle< ILArCalculatorSvc > m_emepobarcalc
Definition: FCS_StepInfoSDTool.h:105
FCS_Param::FCS_StepInfoSDTool::m_embcalc
ServiceHandle< ILArCalculatorSvc > m_embcalc
Definition: FCS_StepInfoSDTool.h:94
FCS_Param::FCS_StepInfoSDTool::m_presECVolumes
std::vector< std::string > m_presECVolumes
Definition: FCS_StepInfoSDTool.h:81
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
FCS_Param::FCS_StepInfoSDTool::m_stacVolumes
std::vector< std::string > m_stacVolumes
Definition: FCS_StepInfoSDTool.h:75
FCS_Param::FCS_StepInfoSDTool::m_presBarVolumes
std::vector< std::string > m_presBarVolumes
Definition: FCS_StepInfoSDTool.h:76
FCS_Param::FCS_StepInfoSDTool::m_negIWVolumes
std::vector< std::string > m_negIWVolumes
Definition: FCS_StepInfoSDTool.h:78
FCS_Param::FCS_StepInfoSDTool::m_emenobarcalc
ServiceHandle< ILArCalculatorSvc > m_emenobarcalc
Definition: FCS_StepInfoSDTool.h:107
FCS_Param::FCS_StepInfoSDTool::m_larFcalID
const LArFCAL_ID * m_larFcalID
Definition: FCS_StepInfoSDTool.h:119
FCS_Param::FCS_StepInfoSDTool::m_emepowcalc
ServiceHandle< ILArCalculatorSvc > m_emepowcalc
Definition: FCS_StepInfoSDTool.h:99
FCS_Param::FCS_StepInfoSDTool::makeOneLArSD
std::unique_ptr< FCS_StepInfoSD > makeOneLArSD(const std::string &name, ILArCalculatorSvc *calc, const std::vector< std::string > &volumes) const
Helper method to create one SD.
Definition: FCS_StepInfoSDTool.cxx:223
FCS_Param::FCS_StepInfoSDTool::m_fcal3calc
ServiceHandle< ILArCalculatorSvc > m_fcal3calc
Definition: FCS_StepInfoSDTool.h:113
FCS_Param::FCS_StepInfoSDTool::m_tileVolumes
std::vector< std::string > m_tileVolumes
Definition: FCS_StepInfoSDTool.h:88
FCS_Param::FCS_StepInfoSDTool::m_bpsmodcalc
ServiceHandle< ILArCalculatorSvc > m_bpsmodcalc
Definition: FCS_StepInfoSDTool.h:92
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FCS_Param::FCS_StepInfoSDTool::m_hitCollName
std::string m_hitCollName
Hit collection name.
Definition: FCS_StepInfoSDTool.h:71
FCS_Param::FCS_StepInfoSDTool::m_config
FCS_Param::Config m_config
Definition: FCS_StepInfoSDTool.h:123
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ILArCalculatorSvc
Definition: ILArCalculatorSvc.h:25
FCS_Param
Definition: FCS_StepInfoSD.h:35
FCS_Param::FCS_StepInfoSDTool::m_tileCalculator
ServiceHandle< ITileCalculator > m_tileCalculator
Definition: FCS_StepInfoSDTool.h:114
FCS_Param::FCS_StepInfoSDTool::m_sliceVolumes
std::vector< std::string > m_sliceVolumes
Definition: FCS_StepInfoSDTool.h:87
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
FCS_Param::FCS_StepInfoSDTool::m_tileID
const TileID * m_tileID
Definition: FCS_StepInfoSDTool.h:121
FCS_Param::FCS_StepInfoSDTool::m_larEmID
const LArEM_ID * m_larEmID
Definition: FCS_StepInfoSDTool.h:118
FCS_Param::FCS_StepInfoSDTool::Gather
StatusCode Gather() override final
Calls down to all the SDs to pack their hits into one collection.
Definition: FCS_StepInfoSDTool.cxx:168
FCS_Param::FCS_StepInfoSDTool::m_heccalc
ServiceHandle< ILArCalculatorSvc > m_heccalc
Definition: FCS_StepInfoSDTool.h:110
SensitiveDetectorBase.h
FCS_Param::FCS_StepInfoSDTool::m_emepscalc
ServiceHandle< ILArCalculatorSvc > m_emepscalc
Definition: FCS_StepInfoSDTool.h:104
FCS_Param::FCS_StepInfoSDTool::m_emepiwcalc
ServiceHandle< ILArCalculatorSvc > m_emepiwcalc
Definition: FCS_StepInfoSDTool.h:95
LArEM_ID
Helper class for LArEM offline identifiers.
Definition: LArEM_ID.h:118
FCS_Param::Config
Definition: FCS_StepInfoSD.h:37
FCS_Param::FCS_StepInfoSDTool::initialize
StatusCode initialize() override final
Initialize the tool.
Definition: FCS_StepInfoSDTool.cxx:108
FCS_Param::FCS_StepInfoSDTool::m_posIWVolumes
std::vector< std::string > m_posIWVolumes
Definition: FCS_StepInfoSDTool.h:77
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1251
FCS_Param::FCS_StepInfoSDTool::m_nBOBVolumes
std::vector< std::string > m_nBOBVolumes
Definition: FCS_StepInfoSDTool.h:83
FCS_Param::FCS_StepInfoSDTool::m_emeniwcalc
ServiceHandle< ILArCalculatorSvc > m_emeniwcalc
Definition: FCS_StepInfoSDTool.h:97
FCS_Param::FCS_StepInfoSDTool::m_fcal3Volumes
std::vector< std::string > m_fcal3Volumes
Definition: FCS_StepInfoSDTool.h:86
FCS_Param::FCS_StepInfoSDTool
A base class for tools that manage FCS_StepInfoSDs.
Definition: FCS_StepInfoSDTool.h:40
FCS_Param::FCS_StepInfoSDTool::m_emenowcalc
ServiceHandle< ILArCalculatorSvc > m_emenowcalc
Definition: FCS_StepInfoSDTool.h:101
FCS_Param::FCS_StepInfoSDTool::m_pBOBVolumes
std::vector< std::string > m_pBOBVolumes
Definition: FCS_StepInfoSDTool.h:82
ServiceHandle< ILArCalculatorSvc >