ATLAS Offline Software
LArCalorimeter
LArG4
LArG4Barrel
src
ILArBarrelGeometry.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// ILArBarrelGeometry.h
6
// Prepared in 2016 based on LArVCalculator from Bill Seligman
7
8
#ifndef LARG4BARREL_ILARBARRELGEOMETRY_H
9
#define LARG4BARREL_ILARBARRELGEOMETRY_H
10
11
#include "GaudiKernel/IService.h"
12
13
#include "globals.hh"
14
15
#include "
LArG4Code/LArG4Identifier.h
"
16
17
18
// Forward declaractions:
19
class
G4Step;
20
21
namespace
LArG4
{
22
23
namespace
Barrel
{
24
25
// output of computations (everything in half barrel frame except m_zSide)
26
struct
CalcData
{
27
int
cellID
= 0;
// 0 if not valid cell
28
G4int
sampling
= 0;
// sampling number (1 to 3)
29
G4int
region
= 0;
// region number (0 or 1)
30
G4int
etaBin
= 0;
// cell number in eta
31
G4int
phiBin
= 0;
// cell number in phi
32
G4int
zSide
= 0;
// side (+-1 for +-z)
33
G4int
phiGap
= 0;
// number (0 to 1024) of closest electrode
34
G4int
nstraight
= 0;
// number of straight section (0 to 13)
35
G4int
nfold
= 0;
// number of closest fold (0 to 14)
36
G4double
distElec
= 0.;
// algebric distance to electrode
37
G4double
distAbs
= 0.;
// algebric distance to absorber
38
G4double
xl
= 0.;
// normalized lenght along electrode
39
G4double
x0
= 0.;
//
40
G4double
y0
= 0.;
// coordinates in local cell frame (down absorber with phi=0)
41
G4int
sampMap
= 0;
// sampling number not taking into account readout strips
42
G4int
etaMap
= 0;
// eta number not taking into account readout strips
43
};
44
45
}
//end of Barrel namespace
46
47
}
// end of LArG4 namespace
48
49
class
ILArBarrelGeometry
:
virtual
public
IService {
50
public
:
51
52
ILArBarrelGeometry
() {};
53
54
virtual
~ILArBarrelGeometry
() {};
55
56
DeclareInterfaceID
(
ILArBarrelGeometry
,1,0);
57
58
virtual
void
initializeForSDCreation
() = 0;
59
60
// Full identifier computation from a G4 step
61
virtual
LArG4Identifier
CalculateIdentifier
(
const
G4Step* )
const
= 0;
62
63
// Given a point compute all quantities (cell number, distance to electrode, etc...)
64
virtual
void
findCell
(
LArG4::Barrel::CalcData
& currentCellData,
const
double
&
x
,
const
double
&
y
,
const
double
&
z
,
65
const
double
&
r
,
const
double
&
eta
,
const
double
&
phi
,
const
bool
detail
)
const
= 0;
66
67
};
68
69
#endif // LARG4BARREL_ILARBARRELGEOMETRY_H
beamspotman.r
def r
Definition:
beamspotman.py:676
LArG4Identifier
Definition:
LArG4Identifier.h:121
phi
Scalar phi() const
phi method
Definition:
AmgMatrixBasePlugin.h:67
eta
Scalar eta() const
pseudorapidity method
Definition:
AmgMatrixBasePlugin.h:83
ILArBarrelGeometry::CalculateIdentifier
virtual LArG4Identifier CalculateIdentifier(const G4Step *) const =0
detail
Definition:
extract_histogram_tag.cxx:14
LArG4::Barrel::CalcData
Definition:
ILArBarrelGeometry.h:26
ILArBarrelGeometry::DeclareInterfaceID
DeclareInterfaceID(ILArBarrelGeometry, 1, 0)
ILArBarrelGeometry
Definition:
ILArBarrelGeometry.h:49
LArG4::Barrel::CalcData::phiGap
G4int phiGap
Definition:
ILArBarrelGeometry.h:33
LArG4::Barrel::CalcData::x0
G4double x0
Definition:
ILArBarrelGeometry.h:39
x
#define x
LArG4
Definition:
LArWheelCalculatorEnums.h:8
LArG4::Barrel::CalcData::xl
G4double xl
Definition:
ILArBarrelGeometry.h:38
DetType::Barrel
@ Barrel
Definition:
DetType.h:14
LArG4::Barrel::CalcData::cellID
int cellID
Definition:
ILArBarrelGeometry.h:27
ILArBarrelGeometry::ILArBarrelGeometry
ILArBarrelGeometry()
Definition:
ILArBarrelGeometry.h:52
z
#define z
LArG4::Barrel::CalcData::sampling
G4int sampling
Definition:
ILArBarrelGeometry.h:28
LArG4::Barrel::CalcData::phiBin
G4int phiBin
Definition:
ILArBarrelGeometry.h:31
ILArBarrelGeometry::~ILArBarrelGeometry
virtual ~ILArBarrelGeometry()
Definition:
ILArBarrelGeometry.h:54
ILArBarrelGeometry::findCell
virtual void findCell(LArG4::Barrel::CalcData ¤tCellData, const double &x, const double &y, const double &z, const double &r, const double &eta, const double &phi, const bool detail) const =0
LArG4::Barrel::CalcData::nfold
G4int nfold
Definition:
ILArBarrelGeometry.h:35
LArG4Identifier.h
LArG4::Barrel::CalcData::etaMap
G4int etaMap
Definition:
ILArBarrelGeometry.h:42
LArG4::Barrel::CalcData::sampMap
G4int sampMap
Definition:
ILArBarrelGeometry.h:41
LArG4::Barrel::CalcData::region
G4int region
Definition:
ILArBarrelGeometry.h:29
LArG4::Barrel::CalcData::zSide
G4int zSide
Definition:
ILArBarrelGeometry.h:32
LArG4::Barrel::CalcData::etaBin
G4int etaBin
Definition:
ILArBarrelGeometry.h:30
LArG4::Barrel::CalcData::distElec
G4double distElec
Definition:
ILArBarrelGeometry.h:36
LArG4::Barrel::CalcData::nstraight
G4int nstraight
Definition:
ILArBarrelGeometry.h:34
LArG4::Barrel::CalcData::y0
G4double y0
Definition:
ILArBarrelGeometry.h:40
y
#define y
ILArBarrelGeometry::initializeForSDCreation
virtual void initializeForSDCreation()=0
LArG4::Barrel::CalcData::distAbs
G4double distAbs
Definition:
ILArBarrelGeometry.h:37
Generated on Sun Dec 22 2024 21:11:29 for ATLAS Offline Software by
1.8.18