ATLAS Offline Software
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 
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 
53 
54  virtual ~ILArBarrelGeometry() {};
55 
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:64
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
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 &currentCellData, 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