ATLAS Offline Software
Loading...
Searching...
No Matches
LArBarrelPresamplerGeometry.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// LArBarrelPresamplerGeometry.hh
6
7#ifndef LARG4BARREL_LARBARRELPRESAMPLERGEOMETRY_H
8#define LARG4BARREL_LARBARRELPRESAMPLERGEOMETRY_H
9
12
15#include "AthenaKernel/Units.h"
16#include "globals.hh"
17
18
19// Forward declarations.
21class G4Step;
22
23namespace LArG4 {
24
25 namespace BarrelPresampler {
26
27 class Geometry: public extends<AthService, ILArBarrelPresamplerGeometry> {
28
29 public:
30
31 //constructor
32 Geometry(const std::string& name, ISvcLocator * pSvcLocator);
33
34 virtual ~Geometry() = default;
35
36 virtual StatusCode initialize() override final;
37
38 virtual LArG4Identifier CalculateIdentifier( const G4Step* ) const override final;
39 virtual bool findCell(CalcData & currentCellData, G4double xloc,G4double yloc,G4double zloc) const override final;
40
41 private:
44
45 inline G4int determineZSide(const double zCoord) const {
46 // in TB case, only 1 side,
47 // in Atlas case, use overall z to decide side
48 if (m_testbeam) { return 1; }
49 if (zCoord > 0.) { return 1; }
50 return -1;
51 }
53 // detector name, for translated geometry
54 Gaudi::Property<std::string> m_detectorName{this, "DetectorName", "LArMgr"};
55 // is this a test beam simulation job
56 Gaudi::Property<bool> m_testbeam{this, "TestBeam", false};
59#include "PresParameterDef.h"
60
61 // end z of the various modules
62 G4double m_end_module[8]{};
63 G4double m_zminPS{3.00*Athena::Units::mm}; // FIXME this should come from the database;
64 G4double m_zpres{1549.*Athena::Units::mm}; // position of mother volume inside nominal Atlas frame
65 G4double m_cat_th{};
66 // z of first cathode in each module
67 G4double m_first_cathod[8]{};
68 // tilt of electrodes
69 G4double m_tilt[8]{};
70 // number of gaps per cell
71 G4int m_ngap_cell[8]{};
72 // pitch in z of gaps
73 G4double m_pitch[8]{};
74 // number of cells per modules
75 G4int m_ncell_module[8]{};
76 // total LAr thickness
77 G4double m_halfThickLAr{0.5*13.*Athena::Units::mm}; // LAr total gap
78 } ;
79
80 } //end of Barrel namespace
81
82} // end of LArG4 namespace
83
84#endif // LARG4BARREL_LARBARRELPRESAMPLERGEOMETRY_H
Wrapper to avoid constant divisions when using units.
virtual StatusCode initialize() override final
initialize geometry parameters this should at some stage be taken from a database....
virtual LArG4Identifier CalculateIdentifier(const G4Step *) const override final
The following method computes the identifiers in the Presampler volume:
G4int determineZSide(const double zCoord) const
LArG4Identifier CalculatePS_DMIdentifier(const G4Step *, const G4int indPS) const
LArG4Identifier CalculatePSActiveIdentifier(const G4Step *, const G4int indPS) const
calculate identifier from a G4 step in the PS active region This function should always return a vali...
Geometry(const std::string &name, ISvcLocator *pSvcLocator)
virtual bool findCell(CalcData &currentCellData, G4double xloc, G4double yloc, G4double zloc) const override final
=============================================================================== bool findCell(xloc,...
Gaudi::Property< std::string > m_detectorName
#define private