ATLAS Offline Software
PixelSensorSDTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Pixel Sensitive Detector.
6 // The Hits are processed here. For every hit I get the position and
7 // an information on the sensor in which the interaction happened
8 
9 // Class header
10 #include "PixelSensorSDTool.h"
11 
12 // For the SD itself
13 #include "PixelSensorSD.h"
14 #include "PixelSensorGmxSD.h"
15 
18 #include <GeoModelRead/ReadGeoModel.h>
19 
20 // STL includes
21 #include <exception>
22 
23 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
24 
25 PixelSensorSDTool::PixelSensorSDTool(const std::string& type, const std::string& name, const IInterface* parent)
27 {
28 }
29 
31 {
33  return StatusCode::SUCCESS;
34 }
35 
37 {
39  return StatusCode::SUCCESS;
40 }
41 
42 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
43 
44 G4VSensitiveDetector* PixelSensorSDTool::makeSD() const
45 {
46  // Make sure the job has been set up properly
47  ATH_MSG_DEBUG( "Initializing SD" );
48  GeoModelIO::ReadGeoModel* sqlreader = nullptr;
49  StatusCode sc = m_geoDbTagSvc.retrieve();
50  if (sc.isFailure()) {
51  msg(MSG::ERROR) << "Could not locate GeoDbTagSvc" << endmsg;
52  }
53  else {
54  sqlreader = m_geoDbTagSvc->getSqliteReader();
55  }
56 
57 
58  // Create a fresh SD
59  if (!m_gmxSensor){
60  return new PixelSensorSD(name(), m_outputCollectionNames[0]);
61  } else {
62  return new PixelSensorGmxSD(name(), m_outputCollectionNames[0],sqlreader);
63  }
64 }
65 
SensitiveDetectorBase::SetupEvent
virtual StatusCode SetupEvent() override
Beginning of an athena event.
Definition: SensitiveDetectorBase.h:70
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition: HitCollectionMap.h:21
HitCollectionMap.h
PixelSensorSDTool::PixelSensorSDTool
PixelSensorSDTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: PixelSensorSDTool.cxx:25
PixelSensorGmxSD
Definition: PixelSensorGmxSD.h:28
AtlasHitsVector< SiHit >
SensitiveDetectorBase
Common base class for tools that create and manage Geant4 sensitive detectors.
Definition: SensitiveDetectorBase.h:50
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
HitCollectionMap::Emplace
std::pair< StorageIterator, bool > Emplace(std::string const &hitCollectionName, CollectionArgs &&... args)
Insert a container in the map with in-place construction.
Definition: HitCollectionMap.h:38
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
PixelSensorSDTool::makeSD
G4VSensitiveDetector * makeSD() const override final
Definition: PixelSensorSDTool.cxx:44
PixelSensorSD
Definition: PixelSensorSD.h:27
PixelSensorGmxSD.h
PixelSensorSD.h
SensitiveDetectorBase::m_outputCollectionNames
Gaudi::Property< std::vector< std::string > > m_outputCollectionNames
Names of all output collections written out by this SD.
Definition: SensitiveDetectorBase.h:98
PixelSensorSDTool::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: PixelSensorSDTool.h:38
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
HitCollectionMap::Record
void Record(std::string const &sgKey, std::string const &hitCollectionName, EventContext const &ctx)
Record the hit collection hitCollectionName to the StoreGate sgKey.
Definition: HitCollectionMap.h:82
SensitiveDetectorBase::Gather
virtual StatusCode Gather() override
End of an athena event.
Definition: SensitiveDetectorBase.h:78
PixelSensorSDTool::m_gmxSensor
Gaudi::Property< bool > m_gmxSensor
Definition: PixelSensorSDTool.h:37
PixelSensorSDTool.h
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
SiHitCollection.h