DD4hep - The AIDA detector description toolkit for high energy physics experiments
DD4hep  Rev:Unversioneddirectory
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LayeringExtension.h
Go to the documentation of this file.
1 /*
2  * LayeringExtension.h
3  *
4  * Abstract extension used by the LayeredSubdetector class.
5  *
6  * Created on: Dec 11, 2013
7  * Author: Christian Grefe, CERN
8  */
9 
10 #ifndef DDRec_LAYERINGEXTENSION_H_
11 #define DDRec_LAYERINGEXTENSION_H_
12 
13 #include "DD4hep/Detector.h"
14 
15 namespace DD4hep {
16 namespace DDRec {
17 
24 public:
26  virtual ~LayeringExtension() {
27  }
28 
30  virtual int numberOfLayers() const = 0;
31 
33  virtual int numberOfSensors(int layerIndex) const = 0;
34 
36  virtual Geometry::DetElement layer(int layerIndex) const = 0;
37 
39  virtual const std::vector<Geometry::DetElement>& sensors(int layerIndex) const = 0;
40 
42  virtual const std::vector<Geometry::DetElement>& absorbers(int layerIndex) const = 0;
43 
45  virtual double totalThickness() const = 0;
46 
48  virtual double totalRadiationLength() const = 0;
49 
51  virtual double totalInteractionLength() const = 0;
52 
54  virtual double thickness(int layerIndex) const = 0;
55 
57  virtual double radiationLength(int layerIndex) const = 0;
58 
60  virtual double interactionLength(int layerIndex) const = 0;
61 
63  virtual double absorberThickness(int layerIndex) const = 0;
64 
66  virtual double absorberRadiationLength(int layerIndex) const = 0;
67 
69  virtual double absorberInteractionLength(int layerIndex) const = 0;
70 
72  virtual double sensorThickness(int layerIndex) const = 0;
73 
75  virtual double sensorRadiationLength(int layerIndex) const = 0;
76 
78  virtual double sensorInteractionLength(int layerIndex) const = 0;
79 
80 protected:
82  }
83 };
84 
85 } /* namespace DDRec */
86 } /* namespace DD4hep */
87 #endif /* DDRec_LAYERINGEXTENSION_H_ */
virtual const std::vector< Geometry::DetElement > & absorbers(int layerIndex) const =0
Access to the non-sensitive DetElements of a given layer index.
virtual double absorberThickness(int layerIndex) const =0
Access the total thickness of all non-sensitive elements of the layer with the given index...
virtual double interactionLength(int layerIndex) const =0
Access the total nuclear interaction length of the layer with the given index.
virtual ~LayeringExtension()
Destructor.
virtual double radiationLength(int layerIndex) const =0
Access the total radiation length of the layer with the given index.
virtual double absorberInteractionLength(int layerIndex) const =0
Access the total nuclear interaction length of all non-sensitive elements of the layer with the given...
virtual double thickness(int layerIndex) const =0
Access the total thickness of the layer with the given index.
virtual Geometry::DetElement layer(int layerIndex) const =0
Access to the layer DetElement for the given index.
virtual double sensorRadiationLength(int layerIndex) const =0
Access the total radiation length of all sensitive elements of the layer with the given index...
virtual double totalRadiationLength() const =0
Access the total radiation length of the sub detector.
virtual int numberOfLayers() const =0
Access to the total number of layers.
virtual int numberOfSensors(int layerIndex) const =0
Access to the total number of sensors in a given layer index.
virtual const std::vector< Geometry::DetElement > & sensors(int layerIndex) const =0
Access to the sensitive DetElements of a given layer index.
virtual double totalInteractionLength() const =0
Access the total nuclear interaction length of the sub detector.
Handle class describing a detector element.
Definition: Detector.h:172
virtual double absorberRadiationLength(int layerIndex) const =0
Access the total radiation length of all non-sensitive elements of the layer with the given index...
virtual double sensorInteractionLength(int layerIndex) const =0
Access the total nuclear interaction length of all sensitive elements of the layer with the given ind...
virtual double totalThickness() const =0
Access the total thickness of the sub detector.
virtual double sensorThickness(int layerIndex) const =0
Access the total thickness of all sensitive elements of the layer with the given index.