GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
CalorimeterParametersImpl.h
1 #ifndef GEAR_CalorimeterParametersImpl_H
2 #define GEAR_CalorimeterParametersImpl_H 1
3 
4 #include <vector>
5 
6 #include "gear/CalorimeterParameters.h"
7 #include "gearimpl/GearParametersImpl.h"
8 #include "gearimpl/LayerLayoutImpl.h"
9 
10 namespace gear {
11 
12 class LayerLayoutImpl ;
13 
21 
22  public:
23 
26  CalorimeterParametersImpl(double rMin, double zMax, int symOrder=8, double phi0=0.0) ;
27 
28 
31  CalorimeterParametersImpl(double rMin, double rMax, double zMin, int symOrder=2, double phi0=0.0) ;
32 
33 
35  virtual ~CalorimeterParametersImpl() { /* nop */; }
36 
37 
39  virtual const LayerLayout & getLayerLayout() const { return _layout ; }
40 
44  virtual int getLayoutType() const { return _type ; }
45 
48  virtual const std::vector<double>& getExtent() const ;
49 
50 
57  virtual int getSymmetryOrder() const { return _sym ; }
58 
61  virtual double getPhi0() const { return _phi ; }
62 
63 
64  virtual LayerLayoutImpl& layerLayout() { return _layout ; }
65 
66  protected:
67 
68  int _type {};
69  int _sym {};
70  double _phi {};
71  LayerLayoutImpl _layout {};
72  mutable std::vector<double> _extent {};
73 
74  }; // class
75 } // namespace gear
76 #endif /* ifndef GEAR_CalorimeterParametersImpl_H */
Implementation of GearParameters - a set off parameters that can be used to describe the geometrical ...
virtual ~CalorimeterParametersImpl()
Destructor.
Proposal for an abstract interface that defines geometry properties of a typical sampling calorimeter...
Abstract description of a layered layout detector - typically a a sampling calorimeter.
Definition: LayerLayout.h:15
virtual int getSymmetryOrder() const
The order of the rotational symmetry 8 for an octagonal barrel calorimeter 2 for an endcap calorim...
virtual const LayerLayout & getLayerLayout() const
The layer layout in the calorimeter.
virtual int getLayoutType() const
The type of the calorimeter layout: CalorimeterParametersImpl.BARREL or CalorimeterParametersImpl.ENDCAP.
virtual double getPhi0() const
The azimuthal angle of the first module if symmetryOrder &gt; 0.
virtual const std::vector< double > & getExtent() const
Extent of the calorimeter in the r-z-plane [ rmin, rmax, zmin, zmax ] in mm.
CalorimeterParametersImpl(double rMin, double zMax, int symOrder=8, double phi0=0.0)
C&#39;tor for a cylindrical (octagonal) BARREL calorimeter.
Implementation of layered layout detector - typically a a sampling calorimeter.