ATLAS Offline Software
ILArBarrelPresamplerGeometry.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 // ILArBarrelPresamplerGeometry.h
6 // Prepared in 2016 based on LArVCalculator from Bill Seligman
7 
8 #ifndef LARG4BARREL_ILARBARRELPRESAMPLERGEOMETRY_H
9 #define LARG4BARREL_ILARBARRELPRESAMPLERGEOMETRY_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 BarrelPresampler {
24 
25  // output of computations
26  struct CalcData {
27  G4int sampling = 0; // sampling number (1 to 3)
28  G4int region = 0; // region number (0 or 1)
29  G4int etaBin = 0; // cell number in eta
30  G4int phiBin = 0; // cell number in phi
31  G4int gap = 0;
32  G4int module = 0;
33  G4double distElec = 0.; // algebric distance to electrode
34  G4double xElec = 0.; // projection along electrode axis
35  G4double dist = 0.;
36  };
37 
38  } //end of BarrelPresampler namespace
39 
40 } // end of LArG4 namespace
41 
42 class ILArBarrelPresamplerGeometry: virtual public IService {
43 public:
44 
46 
48 
50 
51  // Full identifier computation from a G4 step
52  virtual LArG4Identifier CalculateIdentifier( const G4Step*) const = 0;
53 
54  // Given a point compute all quantities (cell number, distance to electrode, etc...)
55  virtual bool findCell(LArG4::BarrelPresampler::CalcData & currentCellData, G4double xloc,G4double yloc,G4double zloc) const = 0;
56 };
57 
58 #endif // LARG4BARREL_ILARBARRELPRESAMPLERGEOMETRY_H
LArG4Identifier
Definition: LArG4Identifier.h:121
LArG4::BarrelPresampler::CalcData::xElec
G4double xElec
Definition: ILArBarrelPresamplerGeometry.h:34
LArG4::BarrelPresampler::CalcData::region
G4int region
Definition: ILArBarrelPresamplerGeometry.h:28
ILArBarrelPresamplerGeometry::DeclareInterfaceID
DeclareInterfaceID(ILArBarrelPresamplerGeometry, 1, 0)
LArG4::BarrelPresampler::CalcData
Definition: ILArBarrelPresamplerGeometry.h:26
LArG4::BarrelPresampler::CalcData::phiBin
G4int phiBin
Definition: ILArBarrelPresamplerGeometry.h:30
LArG4::BarrelPresampler::CalcData::module
G4int module
Definition: ILArBarrelPresamplerGeometry.h:32
LArG4
Definition: LArWheelCalculatorEnums.h:8
LArG4::BarrelPresampler::CalcData::dist
G4double dist
Definition: ILArBarrelPresamplerGeometry.h:35
LArG4::BarrelPresampler::CalcData::gap
G4int gap
Definition: ILArBarrelPresamplerGeometry.h:31
ILArBarrelPresamplerGeometry::CalculateIdentifier
virtual LArG4Identifier CalculateIdentifier(const G4Step *) const =0
LArG4::BarrelPresampler::CalcData::distElec
G4double distElec
Definition: ILArBarrelPresamplerGeometry.h:33
LArG4Identifier.h
ILArBarrelPresamplerGeometry::ILArBarrelPresamplerGeometry
ILArBarrelPresamplerGeometry()
Definition: ILArBarrelPresamplerGeometry.h:45
ILArBarrelPresamplerGeometry::~ILArBarrelPresamplerGeometry
virtual ~ILArBarrelPresamplerGeometry()
Definition: ILArBarrelPresamplerGeometry.h:47
ILArBarrelPresamplerGeometry
Definition: ILArBarrelPresamplerGeometry.h:42
LArG4::BarrelPresampler::CalcData::sampling
G4int sampling
Definition: ILArBarrelPresamplerGeometry.h:27
LArG4::BarrelPresampler::CalcData::etaBin
G4int etaBin
Definition: ILArBarrelPresamplerGeometry.h:29
ILArBarrelPresamplerGeometry::findCell
virtual bool findCell(LArG4::BarrelPresampler::CalcData &currentCellData, G4double xloc, G4double yloc, G4double zloc) const =0