![]() |
ATLAS Offline Software
|
This class implements the CaloDetDescr/ICaloRecoMaterialTool and provides the average materials needed for the LAr part of the Calorimeter/CaloTrackingGeometry volumes. More...
#include <LArRecoMaterialTool.h>
Public Member Functions | |
| LArRecoMaterialTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| ~LArRecoMaterialTool ()=default | |
| virtual StatusCode | initialize () override |
| virtual bool | get_material (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &volume, double &x0, double &dEdx, double &aveA, double &aveZ) const override |
| virtual void | get_default_material (double &density, double &x0, double &dEdx, double &aveA, double &aveZ) const override |
| default material used to fill the envelope | |
| void | print () const override |
Private Member Functions | |
| void | ScanTree () |
| Private method called at initialisation : fills all arrays by calling the "optimised" methods. | |
| bool | ScanCRYO (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| Private optimised methods for each subsystem. | |
| bool | ScanPS (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| bool | ScanEMB (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| bool | ScanEMEC (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| bool | ScanHEC (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| bool | ScanFCAL (CaloSubdetNames::ALIGNVOL alvol, double &mass, double &x0, double &dEdx, double &aveA, double &aveZ) |
| void | blendGeoVolume (GeoPVConstLink &geoVolLink, std::vector< double > &volume, std::vector< double > &mass, std::vector< double > &x0, std::vector< double > &dEdX, std::vector< double > &aveA, std::vector< double > &aveZ) const |
| Private method to blend GeoLogVolume. | |
| void | addMaterialFraction (const GeoLogVol &geoVol, std::vector< double > &volume, std::vector< double > &mass, std::vector< double > &x0, std::vector< double > &dEdX, std::vector< double > &aveA, std::vector< double > &aveZ) const |
| Private method to add material. | |
| void | averageFraction (std::vector< double > &volumeFractions, std::vector< double > &massFractions, std::vector< double > &x0Fractions, std::vector< double > &dEdXFractions, std::vector< double > &aveAFractions, std::vector< double > &aveZFractions, double &mass, double &volume, double &x0, double &dEdx, double &aveA, double &aveZ, double &rho) |
| Private method to average results stored in private arrays. | |
| std::string | map_av (CaloSubdetNames::ALIGNVOL alvol) |
Private Attributes | |
| bool | m_parseGeoModelForMaterial = false |
| Private bool set at initialisation : decides if the GeoModel is parsed or bypassed. | |
| const CaloCell_ID * | m_calo_id {nullptr} |
| const CaloDM_ID * | m_dm_id {nullptr} |
| std::vector< CaloSubdetNames::ALIGNVOL > | m_alignvol_number |
| std::vector< double > | m_alignvol_mass |
| std::vector< double > | m_alignvol_x0 |
| std::vector< double > | m_alignvol_dEdX |
| std::vector< double > | m_alignvol_aveA |
| std::vector< double > | m_alignvol_aveZ |
| std::vector< double > | m_massFractions |
| std::vector< double > | m_volumeFractions |
| std::vector< double > | m_x0Fractions |
| std::vector< double > | m_dEdXFractions |
| std::vector< double > | m_averageAFractions |
| std::vector< double > | m_averageZFractions |
| std::vector< double > | m_child_massFractions |
| std::vector< double > | m_child_volumeFractions |
| std::vector< double > | m_child_x0Fractions |
| std::vector< double > | m_child_dEdXFractions |
| std::vector< double > | m_child_averageAFractions |
| std::vector< double > | m_child_averageZFractions |
| std::vector< double > | m_child_Rho |
| std::vector< double > | m_child_Volume |
| std::vector< double > | m_child_Mass |
This class implements the CaloDetDescr/ICaloRecoMaterialTool and provides the average materials needed for the LAr part of the Calorimeter/CaloTrackingGeometry volumes.
For this, it uses the PVLinks provided by the LArSubdetPosHelper.
Note that it means that eta/phi dependencies of the material within a given GeoModel volume is not supported : although an interface using the CaloDM identifiers is foreseen, numbers will be averaged.
Interface and implementation are preliminary !!!!
Definition at line 38 of file LArRecoMaterialTool.h.
| LArRecoMaterialTool::LArRecoMaterialTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 29 of file LArRecoMaterialTool.cxx.
|
default |
|
private |
Private method to add material.
Definition at line 1051 of file LArRecoMaterialTool.cxx.
|
private |
Private method to average results stored in private arrays.
Definition at line 1091 of file LArRecoMaterialTool.cxx.
|
private |
Private method to blend GeoLogVolume.
Definition at line 1030 of file LArRecoMaterialTool.cxx.
|
overridevirtual |
default material used to fill the envelope
Definition at line 95 of file LArRecoMaterialTool.cxx.
|
overridevirtual |
Definition at line 69 of file LArRecoMaterialTool.cxx.
|
overridevirtual |
Definition at line 37 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 1145 of file LArRecoMaterialTool.cxx.
|
override |
Definition at line 110 of file LArRecoMaterialTool.cxx.
|
private |
Private optimised methods for each subsystem.
Definition at line 173 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 501 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 656 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 852 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 694 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 343 of file LArRecoMaterialTool.cxx.
|
private |
Private method called at initialisation : fills all arrays by calling the "optimised" methods.
Definition at line 125 of file LArRecoMaterialTool.cxx.
|
private |
Definition at line 143 of file LArRecoMaterialTool.h.
|
private |
Definition at line 144 of file LArRecoMaterialTool.h.
|
private |
Definition at line 142 of file LArRecoMaterialTool.h.
|
private |
Definition at line 140 of file LArRecoMaterialTool.h.
|
private |
Definition at line 139 of file LArRecoMaterialTool.h.
|
private |
Definition at line 141 of file LArRecoMaterialTool.h.
|
private |
Definition at line 151 of file LArRecoMaterialTool.h.
|
private |
Definition at line 152 of file LArRecoMaterialTool.h.
|
private |
Definition at line 135 of file LArRecoMaterialTool.h.
|
private |
Definition at line 158 of file LArRecoMaterialTool.h.
|
private |
Definition at line 159 of file LArRecoMaterialTool.h.
|
private |
Definition at line 157 of file LArRecoMaterialTool.h.
|
private |
Definition at line 162 of file LArRecoMaterialTool.h.
|
private |
Definition at line 154 of file LArRecoMaterialTool.h.
|
private |
Definition at line 160 of file LArRecoMaterialTool.h.
|
private |
Definition at line 161 of file LArRecoMaterialTool.h.
|
private |
Definition at line 155 of file LArRecoMaterialTool.h.
|
private |
Definition at line 156 of file LArRecoMaterialTool.h.
|
private |
Definition at line 150 of file LArRecoMaterialTool.h.
|
private |
Definition at line 136 of file LArRecoMaterialTool.h.
|
private |
Definition at line 147 of file LArRecoMaterialTool.h.
|
private |
Private bool set at initialisation : decides if the GeoModel is parsed or bypassed.
Definition at line 70 of file LArRecoMaterialTool.h.
|
private |
Definition at line 148 of file LArRecoMaterialTool.h.
|
private |
Definition at line 149 of file LArRecoMaterialTool.h.