ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
HECLongBlock Class Reference

#include <HECLongBlock.h>

Collaboration diagram for HECLongBlock:

Public Member Functions

 HECLongBlock (const HECLongBlock &right)
 Copy Constructor. More...
 
 HECLongBlock (unsigned int blockNum, double innerRad, double outerRad, double totalDepth, unsigned int nLarGaps, double frontPlateThick, double backPlateThick, const double etaRange[15])
 Constructor. More...
 
 ~HECLongBlock ()
 Destructor. More...
 
HECLongBlockoperator= (const HECLongBlock &right)
 Assignment. More...
 
const HECRadialSegmentgetRadialSegment (unsigned int i) const
 Returns a radial segment if it exists. More...
 
unsigned int getNumRadialSegments () const
 returns the number of radial segments (14) More...
 
unsigned int getBlockNumber () const
 Block Number (1-7) More...
 
double getInnerRadius () const
 Inner Radius of LongBlock (CLHEP::mm) More...
 
double getOuterRadius () const
 Outer Radius of LongBlock (CLHEP::mm) More...
 
double getDepth () const
 Depth of block (CLHEP::mm) More...
 
unsigned int getNumLArGaps () const
 Number of LArGaps in Block. More...
 
double getFrontPlateThickness () const
 Front plate thickness (or zero if no front plate) More...
 
double getBackPlateThickness () const
 Back plate thickness (or zero if no back plate) More...
 

Private Attributes

std::vector< HECRadialSegment * > m_RadialSeg
 
unsigned int m_blockNumber
 
double m_innerRadius
 
double m_outerRadius
 
double m_depth
 
unsigned int m_numLArGaps
 
double m_frontPlateThickness
 
double m_backPlateThickness
 

Detailed Description

 @brief Description of HEC Longitudinal Block.

The HEC has longitudinal segments known as blocks. Each block is sliced radially. For a good picture of this, go here:

hepweb.phys.uvic.ca/atlas/hec-emec/geometry/ hec_eta_100dpi.jpg (Up to the directory for related drawings).

HECLongBlock obect describes both the longitudinal segmentation of the HEC into wheels and the radial division of each wheel into Radial Segments (see HECRadialSegment class); these radial segments are the building blocks of the (nonprojective) HEC Cells (see the HECCell class).

Definition at line 31 of file HECLongBlock.h.

Constructor & Destructor Documentation

◆ HECLongBlock() [1/2]

HECLongBlock::HECLongBlock ( const HECLongBlock right)

Copy Constructor.

Definition at line 7 of file HECLongBlock.cxx.

11  m_depth(right.m_depth),
15 {
16  for (int i=0;i<14;i++) {
17  m_RadialSeg.push_back( right.m_RadialSeg[i] ? new HECRadialSegment(*right.m_RadialSeg[i]) : nullptr);
18  }
19 }

◆ HECLongBlock() [2/2]

HECLongBlock::HECLongBlock ( unsigned int  blockNum,
double  innerRad,
double  outerRad,
double  totalDepth,
unsigned int  nLarGaps,
double  frontPlateThick,
double  backPlateThick,
const double  etaRange[15] 
)

Constructor.

Definition at line 21 of file HECLongBlock.cxx.

29  : m_blockNumber(blockNum),
30  m_innerRadius(innerRad),
31  m_outerRadius(outerRad),
32  m_depth(totalDepth),
33  m_numLArGaps(nLarGaps),
34  m_frontPlateThickness(frontPlateThick),
35  m_backPlateThickness(backPlateThick)
36 {
37  for (int i=0;i<14;i++) m_RadialSeg.push_back(nullptr);
38  bool started=false;
39  for (int i=0;i<14;i++) {
40  if (etaRange[i]!=etaRange[i+1]) {
41  started=true;
43  }
44  else {
45  if (started) break;
46  }
47  }
48 }

◆ ~HECLongBlock()

HECLongBlock::~HECLongBlock ( )

Destructor.

Definition at line 51 of file HECLongBlock.cxx.

52 {
53  for (int i=0;i<14;i++) delete m_RadialSeg[i];
54 }

Member Function Documentation

◆ getBackPlateThickness()

double HECLongBlock::getBackPlateThickness ( ) const
inline

Back plate thickness (or zero if no back plate)

Definition at line 184 of file HECLongBlock.h.

185 {
186 
187  return m_backPlateThickness;
188 
189 }

◆ getBlockNumber()

unsigned int HECLongBlock::getBlockNumber ( ) const
inline

Block Number (1-7)

Definition at line 142 of file HECLongBlock.h.

143 {
144 
145  return m_blockNumber;
146 
147 }

◆ getDepth()

double HECLongBlock::getDepth ( ) const
inline

Depth of block (CLHEP::mm)

Definition at line 163 of file HECLongBlock.h.

164 {
165 
166  return m_depth;
167 
168 }

◆ getFrontPlateThickness()

double HECLongBlock::getFrontPlateThickness ( ) const
inline

Front plate thickness (or zero if no front plate)

Definition at line 177 of file HECLongBlock.h.

178 {
179 
180  return m_frontPlateThickness;
181 
182 }

◆ getInnerRadius()

double HECLongBlock::getInnerRadius ( ) const
inline

Inner Radius of LongBlock (CLHEP::mm)

Definition at line 149 of file HECLongBlock.h.

150 {
151 
152  return m_innerRadius;
153 
154 }

◆ getNumLArGaps()

unsigned int HECLongBlock::getNumLArGaps ( ) const
inline

Number of LArGaps in Block.

Definition at line 170 of file HECLongBlock.h.

171 {
172 
173  return m_numLArGaps;
174 
175 }

◆ getNumRadialSegments()

unsigned int HECLongBlock::getNumRadialSegments ( ) const
inline

returns the number of radial segments (14)

Definition at line 133 of file HECLongBlock.h.

134 {
135 
136  return m_RadialSeg.size();
137 
138 }

◆ getOuterRadius()

double HECLongBlock::getOuterRadius ( ) const
inline

Outer Radius of LongBlock (CLHEP::mm)

Definition at line 156 of file HECLongBlock.h.

157 {
158 
159  return m_outerRadius;
160 
161 }

◆ getRadialSegment()

const HECRadialSegment * HECLongBlock::getRadialSegment ( unsigned int  i) const
inline

Returns a radial segment if it exists.

Definition at line 126 of file HECLongBlock.h.

127 {
128 
129  return m_RadialSeg[i];
130 
131 }

◆ operator=()

HECLongBlock & HECLongBlock::operator= ( const HECLongBlock right)

Assignment.

Definition at line 56 of file HECLongBlock.cxx.

57 {
58  if (this != & right) {
62  m_depth=right.m_depth;
66 
67  for (int i=0;i<14;i++) {
68  m_RadialSeg.push_back( right.m_RadialSeg[i] ? new HECRadialSegment(*right.m_RadialSeg[i]) : nullptr);
69  }
70 
71  }
72  return *this;
73 }

Member Data Documentation

◆ m_backPlateThickness

double HECLongBlock::m_backPlateThickness
private

Definition at line 119 of file HECLongBlock.h.

◆ m_blockNumber

unsigned int HECLongBlock::m_blockNumber
private

Definition at line 113 of file HECLongBlock.h.

◆ m_depth

double HECLongBlock::m_depth
private

Definition at line 116 of file HECLongBlock.h.

◆ m_frontPlateThickness

double HECLongBlock::m_frontPlateThickness
private

Definition at line 118 of file HECLongBlock.h.

◆ m_innerRadius

double HECLongBlock::m_innerRadius
private

Definition at line 114 of file HECLongBlock.h.

◆ m_numLArGaps

unsigned int HECLongBlock::m_numLArGaps
private

Definition at line 117 of file HECLongBlock.h.

◆ m_outerRadius

double HECLongBlock::m_outerRadius
private

Definition at line 115 of file HECLongBlock.h.

◆ m_RadialSeg

std::vector<HECRadialSegment *> HECLongBlock::m_RadialSeg
private

Definition at line 112 of file HECLongBlock.h.


The documentation for this class was generated from the following files:
LArCellBinning.etaRange
etaRange
Filling Eta range.
Definition: LArCellBinning.py:128
HECLongBlock::m_RadialSeg
std::vector< HECRadialSegment * > m_RadialSeg
Definition: HECLongBlock.h:112
HECLongBlock::m_depth
double m_depth
Definition: HECLongBlock.h:116
lumiFormat.i
int i
Definition: lumiFormat.py:92
HECLongBlock::m_numLArGaps
unsigned int m_numLArGaps
Definition: HECLongBlock.h:117
HECLongBlock::m_outerRadius
double m_outerRadius
Definition: HECLongBlock.h:115
HECLongBlock::m_frontPlateThickness
double m_frontPlateThickness
Definition: HECLongBlock.h:118
HECLongBlock::m_innerRadius
double m_innerRadius
Definition: HECLongBlock.h:114
HECRadialSegment
Description of a radial segment of a HEC module.
Definition: HECRadialSegment.h:20
HECLongBlock::m_backPlateThickness
double m_backPlateThickness
Definition: HECLongBlock.h:119
HECLongBlock::m_blockNumber
unsigned int m_blockNumber
Definition: HECLongBlock.h:113