ATLAS Offline Software
Loading...
Searching...
No Matches
FCALModule.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef LARREADOUTGEOMETRY_FCALMODULE_H
6#define LARREADOUTGEOMETRY_FCALMODULE_H
7
8#include "Identifier/Identifier.h"
10#include "GeoModelKernel/GeoVDetectorElement.h"
11#include "GeoModelKernel/GeoDefinitions.h"
12#include "GaudiKernel/SystemOfUnits.h"
15#include <utility>
16#include <vector>
17
28
31
32class FCALModule : public GeoVDetectorElement
33{
34
35 public:
36 typedef std::vector<FCALTile>::const_iterator ConstIterator;
37 typedef enum {FCAL1=1, FCAL2=2, FCAL3=3} Module;
38 typedef enum {NEG=0, POS=1} Endcap;
39
40
41 public:
42
43
47 FCALModule (const GeoVFullPhysVol *physVol
48 , Module module
49 , Endcap endcap
50 , double projectivityDisplacement = 4*Gaudi::Units::cm);
51
56
60 const FCALDetectorManager* getManager () const;
61
66
71
75 const FCALTile* getTile (int i, int j) const;
76
81
86
90 double getFullWidthX (const FCALTile& tile) const;
91
95 double getFullWidthY (const FCALTile& tile) const;
96
100 double getFullDepthZ (const FCALTile& ) const;
101
105 const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
106
110 const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
111
112
113 double getProjectivityDisplacement() const;
114
115 private:
116 static constexpr size_t MAXTUBES = 64;
117
118 FCALModule(const FCALModule &right);
120
121
125 void setManager (FCALDetectorManager* fcalManager);
126
130 std::vector<FCALTile> m_tileList;
131
136
141
146
150 using tubexy_t = std::pair<double, double>;
152
153 const tubexy_t& getFullWidths (unsigned int ntubes) const;
154
158 double m_dz;
159
160
162
164
165};
166
167
168
169
171{
172 return m_manager;
173}
174
176{
178}
179
180
181#endif
Cached value with atomic update.
Cached value with atomic update.
Definition CachedValue.h:55
A manager class providing access to readout geometry information for the forward calorimeter.
FCALModule::Endcap getEndcapIndex() const
Returns the side (O=Negative, 1=Positive)
FCALModule & operator=(const FCALModule &right)
double getProjectivityDisplacement() const
Definition FCALModule.h:175
std::vector< FCALTile > m_tileList
A List of Tiles.
Definition FCALModule.h:130
double getFullWidthY(const FCALTile &tile) const
Gets Tile Full Width in Y.
const FCALDetectorManager * getManager() const
Gets the manager.
Definition FCALModule.h:170
double getFullDepthZ(const FCALTile &) const
Gets Tile (full) Depth.
double getFullWidthX(const FCALTile &tile) const
Gets Tile Full Width in X.
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
FCALDetectorManager * m_manager
Point to the manager.
Definition FCALModule.h:145
double m_dz
Holds Delta Z, Full width of a cell.
Definition FCALModule.h:158
~FCALModule()
Desctructor.
Module m_Mod
Module number: 1, 2, or 3.
Definition FCALModule.h:135
friend class FCALDetectorManager
Definition FCALModule.h:163
std::vector< FCALTile >::const_iterator ConstIterator
Definition FCALModule.h:36
std::pair< double, double > tubexy_t
X/Y pairs of tile sizes.
Definition FCALModule.h:150
FCALModule::ConstIterator beginTiles() const
Iteration over FCAL Tiles.
Endcap m_EC
Endcap.
Definition FCALModule.h:140
void setManager(FCALDetectorManager *fcalManager)
Sets the manager.
FCALModule::Module getModuleIndex() const
Returns the Module (1,2, or 3)
const FCALTile * getTile(int i, int j) const
Returns a tile by indices i and j.
double m_projectivityDisplacement
Definition FCALModule.h:161
static constexpr size_t MAXTUBES
Definition FCALModule.h:116
CxxUtils::CachedValue< tubexy_t > m_tileSizes[MAXTUBES]
Definition FCALModule.h:151
FCALModule(const GeoVFullPhysVol *physVol, Module module, Endcap endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
Constructor.
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
const tubexy_t & getFullWidths(unsigned int ntubes) const
FCALModule(const FCALModule &right)
FCALModule::ConstIterator endTiles() const
Iteration over FCAL Tiles.
A tile of the forward calorimeter readout geometry.
Definition FCALTile.h:27
Ensure that the extensions for the Vector3D are properly loaded.
Eigen::Affine3d Transform3D