23 m_hitTypeToGranularityMap(this->GetDefaultHitTypeToGranularityMap()),
39 SubDetectorMap::const_iterator iter =
m_subDetectorMap.find(subDetectorName);
44 return *(iter->second);
59 return *(iter->second);
81 std::cout <<
"GeometryManager: specified hitType must be registered with a specific granularity. See PandoraApi.h " << std::endl;
103 std::cout <<
"Failed to create sub detector: " << statusCodeException.
ToString() << std::endl;
105 pSubDetector =
nullptr;
109 return STATUS_CODE_SUCCESS;
117 const LArTPC *pLArTPC =
nullptr;
128 std::cout <<
"Failed to create lar tpc: " << statusCodeException.
ToString() << std::endl;
134 return STATUS_CODE_SUCCESS;
139template <
typename PARAMETERS,
typename OBJECT>
142 const OBJECT *pDetectorGap =
nullptr;
149 return STATUS_CODE_FAILURE;
152 return STATUS_CODE_SUCCESS;
156 std::cout <<
"Failed to create gap: " << statusCodeException.
ToString() << std::endl;
158 pDetectorGap =
nullptr;
168 delete mapEntry.second;
170 for (
const LArTPCMap::value_type &mapEntry :
m_larTPCMap)
171 delete mapEntry.second;
182 return STATUS_CODE_SUCCESS;
191 if (!hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
TRACKER,
VERY_FINE)).second ||
192 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
ECAL,
FINE)).second ||
193 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
HCAL,
COARSE)).second ||
194 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
MUON,
VERY_COARSE)).second ||
195 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
TPC_VIEW_U,
VERY_FINE)).second ||
196 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
TPC_VIEW_V,
VERY_FINE)).second ||
197 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
TPC_VIEW_W,
VERY_FINE)).second ||
198 !hitTypeToGranularityMap.insert(HitTypeToGranularityMap::value_type(
TPC_3D,
VERY_FINE)).second)
203 return hitTypeToGranularityMap;
214 iter->second = granularity;
221 return STATUS_CODE_SUCCESS;
Header file for the detector gap class.
Header file for the geometry manager class.
Header file for the lar tpc class.
Header file for the object factory class.
#define PANDORA_THROW_RESULT_IF(StatusCode1, Operator, Command)
Header file for the sub detector class.
SubDetectorMap m_subDetectorMap
Map from sub detector name to sub detector.
~GeometryManager()
Destructor.
HitTypeToGranularityMap m_hitTypeToGranularityMap
The hit type to granularity map.
StatusCode SetHitTypeGranularity(const HitType hitType, const Granularity granularity)
Set the granularity level to be associated with a specified hit type.
LArTPCMap m_larTPCMap
Map from lar tpc volume id to lar tpc.
DetectorGapList m_detectorGapList
List of gaps in the active detector volume.
const SubDetector & GetSubDetector(const std::string &subDetectorName) const
Get the sub detector corresponding to a specified name.
StatusCode CreateSubDetector(const object_creation::Geometry::SubDetector::Parameters ¶meters, const ObjectFactory< object_creation::Geometry::SubDetector::Parameters, object_creation::Geometry::SubDetector::Object > &factory)
Create sub detector.
HitTypeToGranularityMap GetDefaultHitTypeToGranularityMap() const
Get the default hit type to granularity map.
std::map< HitType, Granularity > HitTypeToGranularityMap
StatusCode EraseAllContent()
Erase all geometry manager content.
SubDetectorTypeMap m_subDetectorTypeMap
Map from sub detector type to sub detector.
Granularity GetHitTypeGranularity(const HitType hitType) const
Get the granularity level specified for a given calorimeter hit type.
GeometryManager(const Pandora *const pPandora)
Constructor.
StatusCode CreateGap(const PARAMETERS ¶meters, const ObjectFactory< PARAMETERS, OBJECT > &factory)
Create gap.
StatusCode CreateLArTPC(const object_creation::Geometry::LArTPC::Parameters ¶meters, const ObjectFactory< object_creation::Geometry::LArTPC::Parameters, object_creation::Geometry::LArTPC::Object > &factory)
Create lar tpc.
const LArTPC & GetLArTPC() const
If there is exactly one registered lar tpc instance, return it; else raise an exception.
unsigned int GetLArTPCVolumeId() const
Get the lar volume id, uniquely specifying the lar tpc.
ObjectFactory class responsible for extended pandora object creation.
virtual StatusCode Create(const Parameters ¶meters, const Object *&pObject) const =0
Create an object with the given parameters.
StatusCodeException class.
std::string ToString() const
Get status code as a string.
StatusCode GetStatusCode() const
Get status code.
const std::string & GetSubDetectorName() const
Get the sub detector name, uniquely specifying the sub detector.
SubDetectorType GetSubDetectorType() const
Get the sub detector type, e.g. ECAL_BARREL, HCAL_ENDCAP, TPC, etc.
HitType
Calorimeter hit type enum.
Granularity
Granularity enum.
StatusCode
The StatusCode enum.
SubDetectorType
Subdetector type enum.