ATLAS Offline Software
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
FCALModule Class Reference

#include <FCALModule.h>

Inheritance diagram for FCALModule:
Collaboration diagram for FCALModule:

Public Types

enum  Module { FCAL1 =1, FCAL2 =2, FCAL3 =3 }
 
enum  Endcap { NEG =0, POS =1 }
 
typedef std::vector< FCALTile >::const_iterator ConstIterator
 

Public Member Functions

 FCALModule (const GeoVFullPhysVol *physVol, Module module, Endcap endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
 Constructor. More...
 
 ~FCALModule ()
 Desctructor. More...
 
const FCALDetectorManagergetManager () const
 Gets the manager. More...
 
FCALModule::ConstIterator beginTiles () const
 Iteration over FCAL Tiles. More...
 
FCALModule::ConstIterator endTiles () const
 Iteration over FCAL Tiles. More...
 
const FCALTilegetTile (int i, int j) const
 Returns a tile by indices i and j. More...
 
FCALModule::Endcap getEndcapIndex () const
 Returns the side (O=Negative, 1=Positive) More...
 
FCALModule::Module getModuleIndex () const
 Returns the Module (1,2, or 3) More...
 
double getFullWidthX (const FCALTile &tile) const
 Gets Tile Full Width in X. More...
 
double getFullWidthY (const FCALTile &tile) const
 Gets Tile Full Width in Y. More...
 
double getFullDepthZ (const FCALTile &) const
 Gets Tile (full) Depth. More...
 
const Amg::Transform3DgetAbsoluteTransform (const GeoAlignmentStore *alignStore=nullptr) const
 Returns the absolute transform of this element. More...
 
const Amg::Transform3DgetDefAbsoluteTransform (const GeoAlignmentStore *alignStore=nullptr) const
 Returns the absolute transform of this element. More...
 
double getProjectivityDisplacement () const
 

Private Types

using tubexy_t = std::pair< double, double >
 X/Y pairs of tile sizes. More...
 

Private Member Functions

 FCALModule (const FCALModule &right)
 
FCALModuleoperator= (const FCALModule &right)
 
void setManager (FCALDetectorManager *fcalManager)
 Sets the manager. More...
 
const tubexy_tgetFullWidths (unsigned int ntubes) const
 

Private Attributes

std::vector< FCALTilem_tileList
 A List of Tiles. More...
 
Module m_Mod
 Module number: 1, 2, or 3. More...
 
Endcap m_EC
 Endcap. More...
 
FCALDetectorManagerm_manager
 Point to the manager. More...
 
CxxUtils::CachedValue< tubexy_tm_tileSizes [MAXTUBES]
 
double m_dz
 Holds Delta Z, Full width of a cell. More...
 
double m_projectivityDisplacement
 

Static Private Attributes

static constexpr size_t MAXTUBES = 64
 

Friends

class FCALDetectorManager
 

Detailed Description

@brief Description of an FCAL Module

This class combines a description of the cell granularity with a physical volume to create a description of an FCAL module positioned within ATLAS. It provides access to the FCAL Tiles.

Definition at line 32 of file FCALModule.h.

Member Typedef Documentation

◆ ConstIterator

typedef std::vector<FCALTile>::const_iterator FCALModule::ConstIterator

Definition at line 36 of file FCALModule.h.

◆ tubexy_t

using FCALModule::tubexy_t = std::pair<double, double>
private

X/Y pairs of tile sizes.

Definition at line 150 of file FCALModule.h.

Member Enumeration Documentation

◆ Endcap

Enumerator
NEG 
POS 

Definition at line 38 of file FCALModule.h.

38 {NEG=0, POS=1} Endcap;

◆ Module

Enumerator
FCAL1 
FCAL2 
FCAL3 

Definition at line 37 of file FCALModule.h.

37 {FCAL1=1, FCAL2=2, FCAL3=3} Module;

Constructor & Destructor Documentation

◆ FCALModule() [1/2]

FCALModule::FCALModule ( const GeoVFullPhysVol *  physVol,
Module  module,
Endcap  endcap,
double  projectivityDisplacement = 4*Gaudi::Units::cm 
)

Constructor.

Definition at line 29 of file FCALModule.cxx.

30  : GeoVDetectorElement(physVol)
31  , m_Mod(module)
32  , m_EC(endcap)
33  , m_manager(nullptr)
34  , m_dz(((const GeoTubs *) physVol->getLogVol()->getShape())->getZHalfLength()*2.0)
35  , m_projectivityDisplacement(projectivityDisplacement)
36 {
37 
38 }

◆ ~FCALModule()

FCALModule::~FCALModule ( )
default

Desctructor.

◆ FCALModule() [2/2]

FCALModule::FCALModule ( const FCALModule right)
private

Member Function Documentation

◆ beginTiles()

FCALModule::ConstIterator FCALModule::beginTiles ( ) const

Iteration over FCAL Tiles.

Definition at line 46 of file FCALModule.cxx.

47 {
48  return m_tileList.begin();
49 }

◆ endTiles()

FCALModule::ConstIterator FCALModule::endTiles ( ) const

Iteration over FCAL Tiles.

Definition at line 51 of file FCALModule.cxx.

52 {
53  return m_tileList.end();
54 }

◆ getAbsoluteTransform()

const Amg::Transform3D & FCALModule::getAbsoluteTransform ( const GeoAlignmentStore alignStore = nullptr) const

Returns the absolute transform of this element.

Definition at line 94 of file FCALModule.cxx.

95 {
96  const GeoVFullPhysVol *fullPhysVol = getMaterialGeom();
97  return alignStore
98  ? fullPhysVol->getCachedAbsoluteTransform(alignStore)
99  : fullPhysVol->getAbsoluteTransform();
100 }

◆ getDefAbsoluteTransform()

const Amg::Transform3D & FCALModule::getDefAbsoluteTransform ( const GeoAlignmentStore alignStore = nullptr) const

Returns the absolute transform of this element.

Definition at line 102 of file FCALModule.cxx.

103 {
104  const GeoVFullPhysVol *fullPhysVol = getMaterialGeom();
105  return alignStore
106  ? fullPhysVol->getCachedDefAbsoluteTransform(alignStore)
107  : fullPhysVol->getDefAbsoluteTransform();
108 }

◆ getEndcapIndex()

FCALModule::Endcap FCALModule::getEndcapIndex ( ) const

Returns the side (O=Negative, 1=Positive)

Definition at line 69 of file FCALModule.cxx.

70 {
71  return m_EC;
72 }

◆ getFullDepthZ()

double FCALModule::getFullDepthZ ( const FCALTile ) const

Gets Tile (full) Depth.

Definition at line 89 of file FCALModule.cxx.

90 {
91  return m_dz;
92 }

◆ getFullWidths()

const FCALModule::tubexy_t & FCALModule::getFullWidths ( unsigned int  ntubes) const
private

Definition at line 124 of file FCALModule.cxx.

125 {
126  if (ntubes > MAXTUBES) std::abort();
127  if (!m_tileSizes[ntubes-1].isValid()) {
128  const FCAL_ChannelMap *cMap=m_manager->getChannelMap();
129  float dx,dy;
130  cMap->tileSize(m_Mod,ntubes,dx,dy);
131  m_tileSizes[ntubes-1].set (std::make_pair (dx, dy));
132  }
133  return *m_tileSizes[ntubes-1].ptr();
134 }

◆ getFullWidthX()

double FCALModule::getFullWidthX ( const FCALTile tile) const

Gets Tile Full Width in X.

Definition at line 79 of file FCALModule.cxx.

80 {
81  return getFullWidths (tile.getNumTubes()).first;
82 }

◆ getFullWidthY()

double FCALModule::getFullWidthY ( const FCALTile tile) const

Gets Tile Full Width in Y.

Definition at line 84 of file FCALModule.cxx.

85 {
86  return getFullWidths (tile.getNumTubes()).second;
87 }

◆ getManager()

const FCALDetectorManager * FCALModule::getManager ( ) const
inline

Gets the manager.

Definition at line 170 of file FCALModule.h.

171 {
172  return m_manager;
173 }

◆ getModuleIndex()

FCALModule::Module FCALModule::getModuleIndex ( ) const

Returns the Module (1,2, or 3)

Definition at line 74 of file FCALModule.cxx.

75 {
76  return m_Mod;
77 }

◆ getProjectivityDisplacement()

double FCALModule::getProjectivityDisplacement ( ) const
inline

Definition at line 175 of file FCALModule.h.

176 {
178 }

◆ getTile()

const FCALTile * FCALModule::getTile ( int  i,
int  j 
) const

Returns a tile by indices i and j.

Definition at line 56 of file FCALModule.cxx.

57 {
58 
59  unsigned int id = (j<<16) | i;
60 
61  std::vector<FCALTile>::const_iterator it = lower_bound(m_tileList.begin(),m_tileList.end(), id);
62  if ((*it).getIndexI()!=i || (*it).getIndexJ()!=j) {
63  return nullptr;
64  }
65  return &*it;
66 
67 }

◆ operator=()

FCALModule& FCALModule::operator= ( const FCALModule right)
private

◆ setManager()

void FCALModule::setManager ( FCALDetectorManager fcalManager)
private

Sets the manager.

Used by the manager. Initialized when managed.

Definition at line 110 of file FCALModule.cxx.

111 {
112  m_manager = fcalManager;
113  const FCAL_ChannelMap *cMap = m_manager->getChannelMap();
115  for (t=begin;t!=end;++t) {
116  FCALTile tile(this,t);
117  m_tileList.push_back(tile);
118  }
119  std::sort(m_tileList.begin(),m_tileList.end());
120 }

Friends And Related Function Documentation

◆ FCALDetectorManager

friend class FCALDetectorManager
friend

Definition at line 163 of file FCALModule.h.

Member Data Documentation

◆ m_dz

double FCALModule::m_dz
private

Holds Delta Z, Full width of a cell.

Definition at line 158 of file FCALModule.h.

◆ m_EC

Endcap FCALModule::m_EC
private

Endcap.

0 is Negative, 1 is Positive

Definition at line 140 of file FCALModule.h.

◆ m_manager

FCALDetectorManager* FCALModule::m_manager
private

Point to the manager.

Definition at line 145 of file FCALModule.h.

◆ m_Mod

Module FCALModule::m_Mod
private

Module number: 1, 2, or 3.

Definition at line 135 of file FCALModule.h.

◆ m_projectivityDisplacement

double FCALModule::m_projectivityDisplacement
private

Definition at line 161 of file FCALModule.h.

◆ m_tileList

std::vector<FCALTile> FCALModule::m_tileList
private

A List of Tiles.

Definition at line 130 of file FCALModule.h.

◆ m_tileSizes

CxxUtils::CachedValue<tubexy_t> FCALModule::m_tileSizes[MAXTUBES]
private

Definition at line 151 of file FCALModule.h.

◆ MAXTUBES

constexpr size_t FCALModule::MAXTUBES = 64
staticconstexprprivate

Definition at line 116 of file FCALModule.h.


The documentation for this class was generated from the following files:
FCALModule::m_projectivityDisplacement
double m_projectivityDisplacement
Definition: FCALModule.h:161
CxxUtils::CachedValue::ptr
const T * ptr() const
Return a pointer to the cached value.
FCALModule::FCAL2
@ FCAL2
Definition: FCALModule.h:37
FCAL_ChannelMap::end
tileMap_const_iterator end(int isam) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:148
FCALModule::MAXTUBES
static constexpr size_t MAXTUBES
Definition: FCALModule.h:116
FCAL_ChannelMap
This class contains the tube and tile maps for the FCAL A tile is of a set of FCAL tubes.
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:34
FCALModule::getFullWidths
const tubexy_t & getFullWidths(unsigned int ntubes) const
Definition: FCALModule.cxx:124
FCALModule::POS
@ POS
Definition: FCALModule.h:38
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
skel.it
it
Definition: skel.GENtoEVGEN.py:396
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
isValid
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition: AtlasPID.h:620
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
ReadCellNoiseFromCool.tile
tile
Definition: ReadCellNoiseFromCool.py:92
FCALModule::NEG
@ NEG
Definition: FCALModule.h:38
FCALTile
A tile of the forward calorimeter readout geometry.
Definition: FCALTile.h:27
python.PyAthena.module
module
Definition: PyAthena.py:131
FCALModule::m_Mod
Module m_Mod
Module number: 1, 2, or 3.
Definition: FCALModule.h:135
lumiFormat.i
int i
Definition: lumiFormat.py:85
FCALModule::m_tileSizes
CxxUtils::CachedValue< tubexy_t > m_tileSizes[MAXTUBES]
Definition: FCALModule.h:151
FCALModule::m_tileList
std::vector< FCALTile > m_tileList
A List of Tiles.
Definition: FCALModule.h:130
FCALModule::m_EC
Endcap m_EC
Endcap.
Definition: FCALModule.h:140
FCALModule::Endcap
Endcap
Definition: FCALModule.h:38
CxxUtils::CachedValue::set
void set(const T &val) const
Set the value, assuming it is currently invalid.
FCALModule::m_manager
FCALDetectorManager * m_manager
Point to the manager.
Definition: FCALModule.h:145
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
FCAL_ChannelMap::tileMap_const_iterator
tileMap_t::const_iterator tileMap_const_iterator
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:144
FCALDetectorManager::getChannelMap
const FCAL_ChannelMap * getChannelMap() const
Returns the Channel Map.
Definition: FCALDetectorManager.h:126
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
FCAL_ChannelMap::begin
tileMap_const_iterator begin(int isam) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:147
FCALModule::FCAL1
@ FCAL1
Definition: FCALModule.h:37
FCAL_ChannelMap::tileSize
void tileSize(int sam, int eta, int phi, float &dx, float &dy) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx:429
FCALModule::m_dz
double m_dz
Holds Delta Z, Full width of a cell.
Definition: FCALModule.h:158
FCALModule::Module
Module
Definition: FCALModule.h:37
FCALModule::FCAL3
@ FCAL3
Definition: FCALModule.h:37