1 #ifndef FASTSIM_SIMPLIFIEDGEOMETRY_H 2 #define FASTSIM_SIMPLIFIEDGEOMETRY_H 24 class InteractionModel;
25 class SimplifiedGeometryFactory;
160 std::vector<InteractionModel*>
CaloType getCaloType() const
Hack to interface "old" Calorimetry with "new" Tracker.
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.
const double getNuclearInteractionThicknessFactor() const
Some layers have a different thickness for nuclear interactions.
std::unique_ptr< TH1F > magneticFieldHist_
Histogram that stores the size of the magnetic field along the layer.
const std::vector< InteractionModel * > & getInteractionModels() const
Return the vector of all interaction models that are assigned with a layer.
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.
const double getGeomProperty() const
Return geometric attribute of the layer.
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 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).
int index_
Return index of this layer (layers are numbered according to their position in the detector)...
SimplifiedGeometry(double geomProperty)
Default constructor.
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).
const DetLayer * getDetLayer() const
Return pointer to the assigned active layer (if any).