Implementation of a generic detector layer (base class for forward/barrel layers). More...
#include <SimplifiedGeometry.h>
Public Types | |
enum | CaloType { NONE, TRACKERBOUNDARY, PRESHOWER1, PRESHOWER2, ECAL, HCAL, VFCAL } |
Hack to interface "old" Calorimetry with "new" Tracker. More... | |
Public Member Functions | |
CaloType | getCaloType () const |
Hack to interface "old" Calorimetry with "new" Tracker. More... | |
const DetLayer * | getDetLayer () const |
Return pointer to the assigned active layer (if any). More... | |
const double | getGeomProperty () const |
Return geometric attribute of the layer. More... | |
const std::vector< InteractionModel * > & | getInteractionModels () const |
Return the vector of all interaction models that are assigned with a layer. More... | |
virtual const double | getMagneticFieldZ (const math::XYZTLorentzVector &position) const =0 |
Return magnetic field (field only has Z component!) on the layer. More... | |
const double | getNuclearInteractionThicknessFactor () const |
Some layers have a different thickness for nuclear interactions. More... | |
virtual const double | getThickness (const math::XYZTLorentzVector &position) const =0 |
Return thickness of the layer at a given position. More... | |
virtual const double | getThickness (const math::XYZTLorentzVector &position, const math::XYZTLorentzVector &momentum) const =0 |
Return thickness of the layer at a given position, also considering the incident angle. More... | |
int | index () const |
Return index of this layer (layers are numbered according to their position in the detector). More... | |
virtual bool | isForward () const =0 |
Returns false/true depending if the object is a (non-abstract) barrel/forward layer. More... | |
SimplifiedGeometry & | operator= (SimplifiedGeometry &&)=default |
SimplifiedGeometry & | operator= (SimplifiedGeometry const &)=delete |
void | setCaloType (CaloType type) |
Hack to interface "old" Calorimetry with "new" Tracker. More... | |
void | setIndex (int index) |
Set index of this layer (layers are numbered according to their position in the detector). More... | |
SimplifiedGeometry (double geomProperty) | |
Default constructor. More... | |
SimplifiedGeometry (SimplifiedGeometry &&)=default | |
SimplifiedGeometry (SimplifiedGeometry const &)=delete | |
virtual | ~SimplifiedGeometry () |
Default destructor. More... | |
Protected Attributes | |
CaloType | caloType_ |
Hack to interface "old" Calorimetry with "new" Tracker. More... | |
const DetLayer * | detLayer_ |
Return pointer to the assigned active layer (if any). More... | |
double | geomProperty_ |
Geometric property of the layer: radius (barrel layer) / position z (forward layer) More... | |
int | index_ |
Return index of this layer (layers are numbered according to their position in the detector). The (usual) order is increasing 'geomProperty'. More... | |
std::vector< InteractionModel * > | interactionModels_ |
Vector of all interaction models that are assigned with a layer. More... | |
std::unique_ptr< TH1F > | magneticFieldHist_ |
Histogram that stores the size of the magnetic field along the layer. More... | |
double | nuclearInteractionThicknessFactor_ |
Some layers have a different thickness for nuclear interactions. More... | |
std::unique_ptr< TH1F > | thicknessHist_ |
Histogram that stores the tickness (radLengths) along the layer. More... | |
Friends | |
class | fastsim::SimplifiedGeometryFactory |
std::ostream & | operator<< (std::ostream &os, const SimplifiedGeometry &layer) |
Some basic output. More... | |
Implementation of a generic detector layer (base class for forward/barrel layers).
Each layer has a geometric attribute ('geomProperty') which depends on which kind of layer is actually created (radius for barrel layers, position z for forward layers). Furthermore, a thickness in radiation length is assigned which can vary throughout the layer.
Definition at line 35 of file SimplifiedGeometry.h.
Hack to interface "old" Calorimetry with "new" Tracker.
Enumerator | |
---|---|
NONE | |
TRACKERBOUNDARY | |
PRESHOWER1 | |
PRESHOWER2 | |
ECAL | |
HCAL | |
VFCAL |
Definition at line 59 of file SimplifiedGeometry.h.
fastsim::SimplifiedGeometry::SimplifiedGeometry | ( | double | geomProperty | ) |
Default constructor.
'geomProperty' depends on which kind of layer is actually created
Definition at line 17 of file SimplifiedGeometry.cc.
|
default |
|
delete |
|
virtual |
|
inline |
Hack to interface "old" Calorimetry with "new" Tracker.
Definition at line 65 of file SimplifiedGeometry.h.
References caloType_.
Referenced by FastSimProducer::createFSimTrack(), and FastSimProducer::produce().
|
inline |
Return pointer to the assigned active layer (if any).
Necessary to create SimHits.
Definition at line 127 of file SimplifiedGeometry.h.
References detLayer_.
Referenced by fastsim::TrackerSimHitProducer::interact().
|
inline |
Return geometric attribute of the layer.
'geomProperty' depends on which kind of layer is actually created
Definition at line 95 of file SimplifiedGeometry.h.
References geomProperty_.
Referenced by fastsim::MultipleScattering::interact().
|
inline |
Return the vector of all interaction models that are assigned with a layer.
This makes it easy to switch on/off some interactions for some layers.
Definition at line 146 of file SimplifiedGeometry.h.
References interactionModels_.
Referenced by FastSimProducer::produce().
|
pure virtual |
Return magnetic field (field only has Z component!) on the layer.
position | A position which has to be on the layer. |
Implemented in fastsim::BarrelSimplifiedGeometry, and fastsim::ForwardSimplifiedGeometry.
Referenced by fastsim::TrackerSimHitProducer::interact(), and fastsim::LayerNavigator::moveParticleToNextLayer().
|
inline |
Some layers have a different thickness for nuclear interactions.
Right now only considered for TEC layers.
Definition at line 121 of file SimplifiedGeometry.h.
References nuclearInteractionThicknessFactor_.
Referenced by fastsim::NuclearInteraction::interact(), and fastsim::NuclearInteractionFTF::interact().
|
pure virtual |
Return thickness of the layer at a given position.
Returns the thickness of the layer (in radiation length) at a specified position since the thickness can vary throughout the layer.
position | A position which has to be on the layer. |
Implemented in fastsim::BarrelSimplifiedGeometry, and fastsim::ForwardSimplifiedGeometry.
Referenced by FastSimProducer::createFSimTrack(), fastsim::PairProduction::interact(), fastsim::EnergyLoss::interact(), fastsim::Bremsstrahlung::interact(), fastsim::MultipleScattering::interact(), fastsim::MuonBremsstrahlung::interact(), fastsim::TrackerSimHitProducer::interact(), fastsim::NuclearInteraction::interact(), fastsim::NuclearInteractionFTF::interact(), and FastSimProducer::produce().
|
pure virtual |
Return thickness of the layer at a given position, also considering the incident angle.
Returns the thickness of the layer (in radiation length) at a specified position and a given incident angle since the thickness can vary throughout the layer.
position | A position which has to be on the layer. |
momentum | The momentum of the incident particle. |
Implemented in fastsim::BarrelSimplifiedGeometry, and fastsim::ForwardSimplifiedGeometry.
|
inline |
Return index of this layer (layers are numbered according to their position in the detector).
The (usual) order is increasing 'geomProperty':
Definition at line 87 of file SimplifiedGeometry.h.
References index_.
Referenced by fastsim::ParticleManager::addSecondaries(), BeautifulSoup.PageElement::insert(), fastsim::LayerNavigator::moveParticleToNextLayer(), fastsim::Geometry::nextLayer(), fastsim::Geometry::previousLayer(), and setIndex().
|
pure virtual |
Returns false/true depending if the object is a (non-abstract) barrel/forward layer.
Function to easily destinguish barrel from forward layers (which both inherit from SimplifiedGeometry).
Implemented in fastsim::BarrelSimplifiedGeometry, and fastsim::ForwardSimplifiedGeometry.
Referenced by fastsim::ParticleManager::addSecondaries(), FastSimProducer::createFSimTrack(), fastsim::MultipleScattering::interact(), fastsim::TrackerSimHitProducer::interact(), fastsim::LayerNavigator::moveParticleToNextLayer(), fastsim::Trajectory::nextCrossingTimeC(), and fastsim::operator<<().
|
default |
|
delete |
|
inline |
Hack to interface "old" Calorimetry with "new" Tracker.
Definition at line 62 of file SimplifiedGeometry.h.
References caloType_.
|
inline |
Set index of this layer (layers are numbered according to their position in the detector).
The (usual) order is increasing 'geomProperty':
Definition at line 78 of file SimplifiedGeometry.h.
|
friend |
Definition at line 151 of file SimplifiedGeometry.h.
|
friend |
Some basic output.
|
protected |
Hack to interface "old" Calorimetry with "new" Tracker.
Definition at line 162 of file SimplifiedGeometry.h.
Referenced by getCaloType(), and setCaloType().
|
protected |
Return pointer to the assigned active layer (if any).
Definition at line 156 of file SimplifiedGeometry.h.
Referenced by getDetLayer().
|
protected |
Geometric property of the layer: radius (barrel layer) / position z (forward layer)
Definition at line 154 of file SimplifiedGeometry.h.
Referenced by getGeomProperty(), fastsim::BarrelSimplifiedGeometry::getRadius(), fastsim::ForwardSimplifiedGeometry::getZ(), and fastsim::operator<<().
|
protected |
Return index of this layer (layers are numbered according to their position in the detector). The (usual) order is increasing 'geomProperty'.
Definition at line 155 of file SimplifiedGeometry.h.
Referenced by index(), fastsim::operator<<(), and setIndex().
|
protected |
Vector of all interaction models that are assigned with a layer.
Definition at line 161 of file SimplifiedGeometry.h.
Referenced by getInteractionModels().
|
protected |
Histogram that stores the size of the magnetic field along the layer.
Definition at line 157 of file SimplifiedGeometry.h.
Referenced by fastsim::ForwardSimplifiedGeometry::getMagneticFieldZ(), and fastsim::BarrelSimplifiedGeometry::getMagneticFieldZ().
|
protected |
Some layers have a different thickness for nuclear interactions.
Definition at line 159 of file SimplifiedGeometry.h.
Referenced by getNuclearInteractionThicknessFactor().
|
protected |
Histogram that stores the tickness (radLengths) along the layer.
Definition at line 158 of file SimplifiedGeometry.h.
Referenced by fastsim::ForwardSimplifiedGeometry::getThickness(), and fastsim::BarrelSimplifiedGeometry::getThickness().