ATLAS Offline Software
TileGeoSectionBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 #ifndef TILEGEOMODEL_TILEGEOSECTIONBUILDER_H
14 #define TILEGEOMODEL_TILEGEOSECTIONBUILDER_H
15 
16 #include "StoreGate/StoreGateSvc.h"
18 #include "GeoModelKernel/GeoPhysVol.h" //PVLink typedef
19 
20 // Definition for regions
21 #define TILE_REGION_CENTRAL 1
22 #define TILE_REGION_EXTENDED 2
23 #define TILE_REGION_GAP 3
24 #define TILE_REGION_MBSCIN 4
25 
26 class MsgStream;
27 class TileDddbManager;
28 class TileDetDescriptor;
30 class GeoMaterial;
31 class GeoTrd;
32 class GeoShape;
34 
36 {
37  public:
38 
41  TileDddbManager* pDbManager,
42  const TileSwitches & switches,
43  MsgStream * log);
44 
47 
58  void fillSection(PVLink& mother,
59  int sec_number,
60  double tile_rmax,
61  double rminb,
62  double dzglue,
63  double delta_phi,
64  int ModuleNcp = 0,
65  double zlen_itc2 = 0.,
66  bool neg = false);
67 
75  void fillGirder(PVLink& mother,
76  double tile_rmax,
77  double tilb_rmax,
78  double tan_delta_phi_2,
79  double thickness);
80 
89  void fillFinger(PVLink& mother,
90  int sec_number,
91  double tile_rmax,
92  double tilb_rmax,
93  double delta_phi_not_used,
94  bool testbeam,
95  int ModuleNcp = 0,
96  double corrected_dz = 0.);
97 
106  void fillPeriod(PVLink& mother,
107  double thickness,
108  double dzglue,
109  double tan_delta_phi_2,
110  int period_type,
111  GeoTrd * period=nullptr);
112 
122  void fillDescriptor(TileDetDescriptor*& descriptor,
123  unsigned int detector,
124  int side,
125  bool testbeam,
126  bool addPlates,
127  unsigned int nphi,
128  float zshift); // in mm
129 
138  int detector,
139  bool addPlates,
140  float zShiftPos, // in mm
141  float zShiftNeg); // in mm
142 
148  void calculateZ(int detector,
149  int side,
150  int sample,
151  float zshift,
152  float& zcenter,
153  float& dz);
154 
159  void calculateR(int detector,
160  int sample,
161  bool addPlates,
162  int firstScin,
163  int lastScin,
164  float& rcenter,
165  float& dr);
166 
174  void calculateEta(int detector,
175  int side,
176  int sample,
177  float& etamin,
178  float& etamax,
179  float& deta,
180  unsigned int& neta);
181 
188  void checking(const std::string& VolumeName, bool print, int level,
189  double X1, double X2, double Y1, double Y2, double Z);
190 
191  // These methods should be used when section contents are not built
192  // They initialize private data members used for computing cell dimensions
193  void setBarrelPeriodThickness(double val);
194  void setBarrelGlue(double val);
195  void setExtendedPeriodThickness(double val);
196 
197  private:
198 
201  MsgStream * m_log;
202 
205  double m_barrelGlue;
207 
209  bool m_verbose;
210 
211  GeoIntrusivePtr<GeoMaterial> m_matLArServices{};
212  GeoIntrusivePtr<GeoMaterial> m_matIronHalfDens{};
213 
216 
217  void checktransfunc(double absorber, double period, int np, double center);
218  void printdouble(const char * name, double val);
219 
220  const GeoShape * makeHolesScint(const GeoShape * mother, double R, double H2, double off, double off0 = 0.);
221  const GeoShape * makeHoles(const GeoShape * mother, double R, double H2, double off, double off0 = 0.);
222 };
223 
224 #endif // not TILEGEOMODEL_TILEGEOSECTIONBUILDER_H
TileGeoSectionBuilder::m_matIronHalfDens
GeoIntrusivePtr< GeoMaterial > m_matIronHalfDens
Definition: TileGeoSectionBuilder.h:212
python.AtlRunQueryAMI.period
period
Definition: AtlRunQueryAMI.py:224
TileGeoSectionBuilder::m_switches
TileSwitches m_switches
Definition: TileGeoSectionBuilder.h:203
TileGeoSectionBuilder::calculateR
void calculateR(int detector, int sample, bool addPlates, int firstScin, int lastScin, float &rcenter, float &dr)
Calculator of R position given sample in region (detector):
Definition: TileGeoSectionBuilder.cxx:3282
TRTCalib_cfilter.detector
detector
Definition: TRTCalib_cfilter.py:241
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
TileGeoSectionBuilder::m_log
MsgStream * m_log
Definition: TileGeoSectionBuilder.h:201
TileGeoSectionBuilder::m_matLArServices
GeoIntrusivePtr< GeoMaterial > m_matLArServices
Definition: TileGeoSectionBuilder.h:211
TileGeoSectionBuilder::makeHolesScint
const GeoShape * makeHolesScint(const GeoShape *mother, double R, double H2, double off, double off0=0.)
Definition: TileGeoSectionBuilder.cxx:3510
TileGeoSectionBuilder::fillFinger
void fillFinger(PVLink &mother, int sec_number, double tile_rmax, double tilb_rmax, double delta_phi_not_used, bool testbeam, int ModuleNcp=0, double corrected_dz=0.)
Finger parameters are the following:
Definition: TileGeoSectionBuilder.cxx:1434
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:111
TileGeoSectionBuilder::TileGeoSectionBuilder
TileGeoSectionBuilder(StoredMaterialManager *matManager, TileDddbManager *pDbManager, const TileSwitches &switches, MsgStream *log)
Constructor.
Definition: TileGeoSectionBuilder.cxx:51
TileGeoSectionBuilder::setBarrelGlue
void setBarrelGlue(double val)
Definition: TileGeoSectionBuilder.cxx:3465
PlotPulseshapeFromCool.np
np
Definition: PlotPulseshapeFromCool.py:64
H2
#define H2(x, y, z)
Definition: MD5.cxx:115
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TRT::Hit::side
@ side
Definition: HitInfo.h:83
TileGeoSectionBuilder::fillDescriptor
void fillDescriptor(TileDetDescriptor *&descriptor, unsigned int detector, int side, bool testbeam, bool addPlates, unsigned int nphi, float zshift)
Readout Descriptor parameters are the following:
Definition: TileGeoSectionBuilder.cxx:2453
TileGeoSectionBuilder::fillSection
void fillSection(PVLink &mother, int sec_number, double tile_rmax, double rminb, double dzglue, double delta_phi, int ModuleNcp=0, double zlen_itc2=0., bool neg=false)
Section parameters are the following:
Definition: TileGeoSectionBuilder.cxx:73
TileGeoSectionBuilder::fillPeriod
void fillPeriod(PVLink &mother, double thickness, double dzglue, double tan_delta_phi_2, int period_type, GeoTrd *period=nullptr)
Period parameters are the following:
Definition: TileGeoSectionBuilder.cxx:1758
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:116
TileGeoSectionBuilder::checktransfunc
void checktransfunc(double absorber, double period, int np, double center)
Definition: TileGeoSectionBuilder.cxx:3477
TileGeoSectionBuilder::m_barrelPeriodThickness
double m_barrelPeriodThickness
Definition: TileGeoSectionBuilder.h:204
TileGeoSectionBuilder::checking
void checking(const std::string &VolumeName, bool print, int level, double X1, double X2, double Y1, double Y2, double Z)
Function for checking empty volumes:
Definition: TileGeoSectionBuilder.cxx:2417
TileDetDescrManager
Definition: TileDetDescrManager.h:33
TileDetDescriptor
Definition: TileDetDescriptor.h:46
TileGeoSectionBuilder::m_dbManager
TileDddbManager * m_dbManager
Definition: TileGeoSectionBuilder.h:200
TileSwitches
Definition: TileSwitches.h:15
TileGeoSectionBuilder::calculateEta
void calculateEta(int detector, int side, int sample, float &etamin, float &etamax, float &deta, unsigned int &neta)
calculateEta function calculates are the following parameters given sample in region (detector)
Definition: TileGeoSectionBuilder.cxx:3392
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
TileGeoSectionBuilder::calculateZ
void calculateZ(int detector, int side, int sample, float zshift, float &zcenter, float &dz)
Calculator of Z position given sample in region (detector):
Definition: TileGeoSectionBuilder.cxx:3216
TileGeoSectionBuilder::makeHoles
const GeoShape * makeHoles(const GeoShape *mother, double R, double H2, double off, double off0=0.)
Definition: TileGeoSectionBuilder.cxx:3519
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:26
TileGeoSectionBuilder::~TileGeoSectionBuilder
~TileGeoSectionBuilder()
Destructor.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TileGeoSectionBuilder::m_verbose
bool m_verbose
Flag for activation verbose level for debugging.
Definition: TileGeoSectionBuilder.h:209
TileGeoSectionBuilder::setBarrelPeriodThickness
void setBarrelPeriodThickness(double val)
Definition: TileGeoSectionBuilder.cxx:3459
TileGeoSectionBuilder::m_theMaterialManager
StoredMaterialManager * m_theMaterialManager
Definition: TileGeoSectionBuilder.h:199
TileSwitches.h
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
eFEXNTuple.delta_phi
def delta_phi(phi1, phi2)
Definition: eFEXNTuple.py:14
TileGeoSectionBuilder::fillGirder
void fillGirder(PVLink &mother, double tile_rmax, double tilb_rmax, double tan_delta_phi_2, double thickness)
Girder parameters are the following:
Definition: TileGeoSectionBuilder.cxx:1350
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
StoredMaterialManager
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition: StoredMaterialManager.h:28
TileGeoSectionBuilder::setExtendedPeriodThickness
void setExtendedPeriodThickness(double val)
Definition: TileGeoSectionBuilder.cxx:3471
python.Logging.manager
manager
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/Logging.py:92
TileGeoSectionBuilder::m_extendedPeriodThickness
double m_extendedPeriodThickness
Definition: TileGeoSectionBuilder.h:206
TileGeoSectionBuilder::printdouble
void printdouble(const char *name, double val)
Definition: TileGeoSectionBuilder.cxx:3503
TileGeoSectionBuilder::computeCellDim
void computeCellDim(TileDetDescrManager *&manager, int detector, bool addPlates, float zShiftPos, float zShiftNeg)
Cell dimension parameters are the following:
Definition: TileGeoSectionBuilder.cxx:2708
LArCellBinning.etamin
etamin
Definition: LArCellBinning.py:137
TileDddbManager
This class provides access to constants in the Geometry DB.
Definition: TileDddbManager.h:38
StoreGateSvc.h
TileGeoSectionBuilder::m_barrelGlue
double m_barrelGlue
Definition: TileGeoSectionBuilder.h:205
TileGeoSectionBuilder::m_additionalIronLayer
double m_additionalIronLayer
Makes iron layer a little bit wider to obtain the same sampling fraction for simulation without a glu...
Definition: TileGeoSectionBuilder.h:215
TileGeoSectionBuilder
Definition: TileGeoSectionBuilder.h:36