ATLAS Offline Software
Loading...
Searching...
No Matches
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:
19class G4Step;
20
21namespace 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
49class ILArBarrelGeometry: virtual public IService {
50public:
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
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define y
#define x
#define z
virtual LArG4Identifier CalculateIdentifier(const G4Step *) const =0
virtual void initializeForSDCreation()=0
DeclareInterfaceID(ILArBarrelGeometry, 1, 0)
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
int r
Definition globals.cxx:22