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 {
33 
42  {
43 
44  public:
45 
47  FCS_StepInfoSDTool(const std::string& type, const std::string& name,
48  const IInterface* parent);
49 
51  StatusCode initialize() override final;
52 
54  StatusCode Gather() override final;
55 
56  private:
57 
59  G4VSensitiveDetector* makeSD() const override final;
60 
63 
65  std::unique_ptr<FCS_StepInfoSD>
66  makeOneLArSD(const std::string& name, ILArCalculatorSvc* calc,
67  const std::vector<std::string>& volumes) const;
68 
70  std::unique_ptr<FCS_StepInfoSD>
71  makeOneTileSD(const std::string& name, ITileCalculator* calc,
72  const std::vector<std::string>& volumes) const;
73 
75  std::string m_hitCollName;
76 
79  std::vector<std::string> m_stacVolumes;
80  std::vector<std::string> m_presBarVolumes;
81  std::vector<std::string> m_posIWVolumes;
82  std::vector<std::string> m_negIWVolumes;
83  std::vector<std::string> m_posOWVolumes;
84  std::vector<std::string> m_negOWVolumes;
85  std::vector<std::string> m_presECVolumes;
86  std::vector<std::string> m_pBOBVolumes;
87  std::vector<std::string> m_nBOBVolumes;
88  std::vector<std::string> m_fcal1Volumes;
89  std::vector<std::string> m_fcal2Volumes;
90  std::vector<std::string> m_fcal3Volumes;
91  std::vector<std::string> m_sliceVolumes;
92  std::vector<std::string> m_tileVolumes;
94 
95  ServiceHandle<ILArCalculatorSvc> m_bpsmodcalc; //LArG4::BarrelPresampler::CalibrationCalculator
96  ServiceHandle<ILArCalculatorSvc> m_embcalc; //LArG4::Barrel::CalibrationCalculator
97  ServiceHandle<ILArCalculatorSvc> m_emepiwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, 1)
98  ServiceHandle<ILArCalculatorSvc> m_emeniwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, -1)
99  ServiceHandle<ILArCalculatorSvc> m_emepowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, 1)
100  ServiceHandle<ILArCalculatorSvc> m_emenowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, -1)
101  ServiceHandle<ILArCalculatorSvc> m_emepscalc; //LArG4::EC::PresamplerCalibrationCalculator
102  ServiceHandle<ILArCalculatorSvc> m_emepobarcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib, 1)
103  ServiceHandle<ILArCalculatorSvc> m_emenobarcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib, 1)
104  ServiceHandle<ILArCalculatorSvc> m_heccalc; //LArG4::HEC::LArHECCalibrationWheelCalculator(LArG4::HEC::kWheelActive)
109 
115  const TileID* m_tileID;
118 
119  }; // class FCS_StepInfoSDTool
120 
121 } // namespace FCS_Param
122 
123 #endif
FCS_Param::FCS_StepInfoSDTool::m_fcal1calc
ServiceHandle< ILArCalculatorSvc > m_fcal1calc
Definition: FCS_StepInfoSDTool.h:105
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:267
FCS_Param::FCS_StepInfoSDTool::m_larHecID
const LArHEC_ID * m_larHecID
Definition: FCS_StepInfoSDTool.h:114
FCS_Param::FCS_StepInfoSDTool::makeSD
G4VSensitiveDetector * makeSD() const override final
Create the SD wrapper for current worker thread.
Definition: FCS_StepInfoSDTool.cxx:204
FCS_Param::FCS_StepInfoSDTool::m_fcal1Volumes
std::vector< std::string > m_fcal1Volumes
Definition: FCS_StepInfoSDTool.h:88
FCS_Param::FCS_StepInfoSDTool::m_fcal2Volumes
std::vector< std::string > m_fcal2Volumes
Definition: FCS_StepInfoSDTool.h:89
FCS_Param::FCS_StepInfoSDTool::m_negOWVolumes
std::vector< std::string > m_negOWVolumes
Definition: FCS_StepInfoSDTool.h:84
FCS_StepInfoSD.h
FCS_Param::FCS_StepInfoSDTool::initializeCalculators
virtual StatusCode initializeCalculators()
Initialize Calculator Services.
Definition: FCS_StepInfoSDTool.cxx:165
FCS_Param::FCS_StepInfoSDTool::m_posOWVolumes
std::vector< std::string > m_posOWVolumes
Definition: FCS_StepInfoSDTool.h:83
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:106
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:42
FCS_Param::FCS_StepInfoSDTool::m_emepobarcalc
ServiceHandle< ILArCalculatorSvc > m_emepobarcalc
Definition: FCS_StepInfoSDTool.h:102
FCS_Param::FCS_StepInfoSDTool::m_embcalc
ServiceHandle< ILArCalculatorSvc > m_embcalc
Definition: FCS_StepInfoSDTool.h:96
FCS_Param::FCS_StepInfoSDTool::m_presECVolumes
std::vector< std::string > m_presECVolumes
Definition: FCS_StepInfoSDTool.h:85
FCS_Param::FCS_StepInfoSDTool::m_stacVolumes
std::vector< std::string > m_stacVolumes
Definition: FCS_StepInfoSDTool.h:79
FCS_Param::FCS_StepInfoSDTool::m_presBarVolumes
std::vector< std::string > m_presBarVolumes
Definition: FCS_StepInfoSDTool.h:80
FCS_Param::FCS_StepInfoSDTool::m_negIWVolumes
std::vector< std::string > m_negIWVolumes
Definition: FCS_StepInfoSDTool.h:82
FCS_Param::FCS_StepInfoSDTool::m_emenobarcalc
ServiceHandle< ILArCalculatorSvc > m_emenobarcalc
Definition: FCS_StepInfoSDTool.h:103
FCS_Param::FCS_StepInfoSDTool::m_larFcalID
const LArFCAL_ID * m_larFcalID
Definition: FCS_StepInfoSDTool.h:113
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:232
FCS_Param::FCS_StepInfoSDTool::m_fcal3calc
ServiceHandle< ILArCalculatorSvc > m_fcal3calc
Definition: FCS_StepInfoSDTool.h:107
FCS_Param::FCS_StepInfoSDTool::m_tileVolumes
std::vector< std::string > m_tileVolumes
Definition: FCS_StepInfoSDTool.h:92
FCS_Param::FCS_StepInfoSDTool::m_bpsmodcalc
ServiceHandle< ILArCalculatorSvc > m_bpsmodcalc
Definition: FCS_StepInfoSDTool.h:95
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:75
FCS_Param::FCS_StepInfoSDTool::m_config
FCS_Param::Config m_config
Definition: FCS_StepInfoSDTool.h:117
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ILArCalculatorSvc
Definition: ILArCalculatorSvc.h:25
FCS_Param
Definition: FCS_StepInfoSD.h:39
FCS_Param::FCS_StepInfoSDTool::m_tileCalculator
ServiceHandle< ITileCalculator > m_tileCalculator
Definition: FCS_StepInfoSDTool.h:108
FCS_Param::FCS_StepInfoSDTool::m_sliceVolumes
std::vector< std::string > m_sliceVolumes
Definition: FCS_StepInfoSDTool.h:91
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
FCS_Param::FCS_StepInfoSDTool::m_tileID
const TileID * m_tileID
Definition: FCS_StepInfoSDTool.h:115
FCS_Param::FCS_StepInfoSDTool::m_larEmID
const LArEM_ID * m_larEmID
Definition: FCS_StepInfoSDTool.h:112
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:189
FCS_Param::FCS_StepInfoSDTool::m_heccalc
ServiceHandle< ILArCalculatorSvc > m_heccalc
Definition: FCS_StepInfoSDTool.h:104
SensitiveDetectorBase.h
FCS_Param::FCS_StepInfoSDTool::m_emepscalc
ServiceHandle< ILArCalculatorSvc > m_emepscalc
Definition: FCS_StepInfoSDTool.h:101
FCS_Param::FCS_StepInfoSDTool::m_emepiwcalc
ServiceHandle< ILArCalculatorSvc > m_emepiwcalc
Definition: FCS_StepInfoSDTool.h:97
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArEM_ID
Helper class for LArEM offline identifiers.
Definition: LArEM_ID.h:118
FCS_Param::Config
Definition: FCS_StepInfoSD.h:42
FCS_Param::FCS_StepInfoSDTool::initialize
StatusCode initialize() override final
Initialize the tool.
Definition: FCS_StepInfoSDTool.cxx:127
FCS_Param::FCS_StepInfoSDTool::m_posIWVolumes
std::vector< std::string > m_posIWVolumes
Definition: FCS_StepInfoSDTool.h:81
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1252
FCS_Param::FCS_StepInfoSDTool::m_nBOBVolumes
std::vector< std::string > m_nBOBVolumes
Definition: FCS_StepInfoSDTool.h:87
FCS_Param::FCS_StepInfoSDTool::m_emeniwcalc
ServiceHandle< ILArCalculatorSvc > m_emeniwcalc
Definition: FCS_StepInfoSDTool.h:98
FCS_Param::FCS_StepInfoSDTool::m_fcal3Volumes
std::vector< std::string > m_fcal3Volumes
Definition: FCS_StepInfoSDTool.h:90
FCS_Param::FCS_StepInfoSDTool
A base class for tools that manage FCS_StepInfoSDs.
Definition: FCS_StepInfoSDTool.h:42
FCS_Param::FCS_StepInfoSDTool::m_emenowcalc
ServiceHandle< ILArCalculatorSvc > m_emenowcalc
Definition: FCS_StepInfoSDTool.h:100
FCS_Param::FCS_StepInfoSDTool::m_pBOBVolumes
std::vector< std::string > m_pBOBVolumes
Definition: FCS_StepInfoSDTool.h:86
ServiceHandle< ILArCalculatorSvc >