1 #ifndef FASTSIM_SIMPLIFIEDGEOMETRY_H
2 #define FASTSIM_SIMPLIFIEDGEOMETRY_H
24 class InteractionModel;
25 class SimplifiedGeometryFactory;
160 std::vector<InteractionModel*>
Implementation of a generic detector layer (base class for forward/barrel layers).
virtual const double getMagneticFieldZ(const math::XYZTLorentzVector &position) const =0
Return magnetic field (field only has Z component!) on the layer.
virtual const double getThickness(const math::XYZTLorentzVector &position) const =0
Return thickness of the layer at a given position.
CaloType
Hack to interface "old" Calorimetry with "new" Tracker.
std::unique_ptr< TH1F > magneticFieldHist_
Histogram that stores the size of the magnetic field along the layer.
const double getNuclearInteractionThicknessFactor() const
Some layers have a different thickness for nuclear interactions.
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< InteractionModel * > interactionModels_
Vector of all interaction models that are assigned with a layer.
std::unique_ptr< TH1F > thicknessHist_
Histogram that stores the tickness (radLengths) along the layer.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
CaloType getCaloType() const
Hack to interface "old" Calorimetry with "new" Tracker.
std::ostream & operator<<(std::ostream &os, const fastsim::Geometry &geometry)
CaloType caloType_
Hack to interface "old" Calorimetry with "new" Tracker.
double nuclearInteractionThicknessFactor_
Some layers have a different thickness for nuclear interactions.
void setCaloType(CaloType type)
Hack to interface "old" Calorimetry with "new" Tracker.
const std::vector< InteractionModel * > & getInteractionModels() const
Return the vector of all interaction models that are assigned with a layer.
const DetLayer * detLayer_
Return pointer to the assigned active layer (if any).
virtual bool isForward() const =0
Returns false/true depending if the object is a (non-abstract) barrel/forward layer.
Constructs a tracker layer according to entry in python config (incl interaction models).
const double getGeomProperty() const
Return geometric attribute of the layer.
int index_
Return index of this layer (layers are numbered according to their position in the detector)...
SimplifiedGeometry(double geomProperty)
Default constructor.
const DetLayer * getDetLayer() const
Return pointer to the assigned active layer (if any).
int index() const
Return index of this layer (layers are numbered according to their position in the detector)...
friend std::ostream & operator<<(std::ostream &os, const SimplifiedGeometry &layer)
Some basic output.
static int position[264][3]
double geomProperty_
Geometric property of the layer: radius (barrel layer) / position z (forward layer) ...
SimplifiedGeometry & operator=(SimplifiedGeometry &&)=default
virtual ~SimplifiedGeometry()
Default destructor.
void setIndex(int index)
Set index of this layer (layers are numbered according to their position in the detector).