CMS 3D CMS Logo

List of all members | Public Member Functions
fastsim::ForwardSimplifiedGeometry Class Reference

Implementation of a forward detector layer (disk). More...

#include <ForwardSimplifiedGeometry.h>

Inheritance diagram for fastsim::ForwardSimplifiedGeometry:
fastsim::SimplifiedGeometry

Public Member Functions

 ForwardSimplifiedGeometry (double z)
 Constructor. More...
 
 ForwardSimplifiedGeometry (ForwardSimplifiedGeometry &&)=default
 Move constructor. More...
 
const double getMagneticFieldZ (const math::XYZTLorentzVector &position) const override
 Return magnetic field (field only has Z component!) on the forward layer. More...
 
const double getThickness (const math::XYZTLorentzVector &position) const override
 Return thickness of the forward layer at a given position. More...
 
const double getThickness (const math::XYZTLorentzVector &position, const math::XYZTLorentzVector &momentum) const override
 Return thickness of the forward layer at a given position, also considering the incident angle. More...
 
const double getZ () const
 Return z-position of the forward layer. More...
 
bool isForward () const override
 Returns true since class for forward layer. More...
 
 ~ForwardSimplifiedGeometry () override
 Default destructor. More...
 
- Public Member Functions inherited from fastsim::SimplifiedGeometry
CaloType getCaloType () const
 Hack to interface "old" Calorimetry with "new" Tracker. More...
 
const DetLayergetDetLayer () 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...
 
const double getNuclearInteractionThicknessFactor () const
 Some layers have a different thickness for nuclear interactions. More...
 
int index () const
 Return index of this layer (layers are numbered according to their position in the detector). More...
 
SimplifiedGeometryoperator= (SimplifiedGeometry &&)=default
 
SimplifiedGeometryoperator= (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...
 

Additional Inherited Members

- Public Types inherited from fastsim::SimplifiedGeometry
enum  CaloType {
  NONE, TRACKERBOUNDARY, PRESHOWER1, PRESHOWER2,
  ECAL, HCAL, VFCAL
}
 Hack to interface "old" Calorimetry with "new" Tracker. More...
 
- Protected Attributes inherited from fastsim::SimplifiedGeometry
CaloType caloType_
 Hack to interface "old" Calorimetry with "new" Tracker. More...
 
const DetLayerdetLayer_
 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...
 

Detailed Description

Implementation of a forward detector layer (disk).

A disk with a position in Z and a thickness (in radiation length). The layer is regarded to have an infinite radius, however the thickness can vary (as a function of the radius) and also be 0.

Definition at line 21 of file ForwardSimplifiedGeometry.h.

Constructor & Destructor Documentation

◆ ForwardSimplifiedGeometry() [1/2]

fastsim::ForwardSimplifiedGeometry::ForwardSimplifiedGeometry ( double  z)
inline

Constructor.

Create a forward layer with a given position (along z-axis).

Parameters
radiusThe z-position of the layer (in cm).

Definition at line 28 of file ForwardSimplifiedGeometry.h.

28 : SimplifiedGeometry(z) {}

◆ ForwardSimplifiedGeometry() [2/2]

fastsim::ForwardSimplifiedGeometry::ForwardSimplifiedGeometry ( ForwardSimplifiedGeometry &&  )
default

Move constructor.

◆ ~ForwardSimplifiedGeometry()

fastsim::ForwardSimplifiedGeometry::~ForwardSimplifiedGeometry ( )
inlineoverride

Default destructor.

Definition at line 34 of file ForwardSimplifiedGeometry.h.

34 {};

Member Function Documentation

◆ getMagneticFieldZ()

const double fastsim::ForwardSimplifiedGeometry::getMagneticFieldZ ( const math::XYZTLorentzVector position) const
inlineoverridevirtual

Return magnetic field (field only has Z component!) on the forward layer.

Returns the magnetic field along the forward layer at a specified position (radial symmetric).

Parameters
positionA position which has to be on the forward layer.
Returns
The magnetic field on the layer.

Implements fastsim::SimplifiedGeometry.

Definition at line 72 of file ForwardSimplifiedGeometry.h.

72  {
73  return magneticFieldHist_->GetBinContent(magneticFieldHist_->GetXaxis()->FindBin(position.Pt()));
74  }

References fastsim::SimplifiedGeometry::magneticFieldHist_, and position.

◆ getThickness() [1/2]

const double fastsim::ForwardSimplifiedGeometry::getThickness ( const math::XYZTLorentzVector position) const
inlineoverridevirtual

Return thickness of the forward layer at a given position.

Returns the thickness of the forward layer (in radiation length) at a specified position since the thickness can vary as a function of the radius.

Parameters
positionA position which has to be on the forward layer.
Returns
The thickness of the layer (in radiation length).
See also
getThickness(const math::XYZTLorentzVector & position, const math::XYZTLorentzVector & momentum)

Implements fastsim::SimplifiedGeometry.

Definition at line 49 of file ForwardSimplifiedGeometry.h.

49  {
50  return thicknessHist_->GetBinContent(thicknessHist_->GetXaxis()->FindBin(position.Pt()));
51  }

References position, and fastsim::SimplifiedGeometry::thicknessHist_.

Referenced by getThickness().

◆ getThickness() [2/2]

const double fastsim::ForwardSimplifiedGeometry::getThickness ( const math::XYZTLorentzVector position,
const math::XYZTLorentzVector momentum 
) const
inlineoverridevirtual

Return thickness of the forward layer at a given position, also considering the incident angle.

Returns the thickness of the forward layer (in radiation length) at a specified position and a given incident angle since the thickness can vary as a function of the radius.

Parameters
positionA position which has to be on the forward layer.
momentumThe momentum of the incident particle.
Returns
The thickness of the layer (in radiation length).
See also
getThickness(const math::XYZTLorentzVector & position)

Implements fastsim::SimplifiedGeometry.

Definition at line 61 of file ForwardSimplifiedGeometry.h.

62  {
63  return getThickness(position) / fabs(momentum.Pz()) * momentum.P();
64  }

References getThickness(), and position.

◆ getZ()

const double fastsim::ForwardSimplifiedGeometry::getZ ( ) const
inline

Return z-position of the forward layer.

Returns
The z-position of the layer (in cm).

Definition at line 40 of file ForwardSimplifiedGeometry.h.

40 { return geomProperty_; }

References fastsim::SimplifiedGeometry::geomProperty_.

◆ isForward()

bool fastsim::ForwardSimplifiedGeometry::isForward ( ) const
inlineoverridevirtual

Returns true since class for forward layer.

Function to easily destinguish barrel from forward layers (which both inherit from ForwardSimplifiedGeometry).

Returns
true

Implements fastsim::SimplifiedGeometry.

Definition at line 81 of file ForwardSimplifiedGeometry.h.

81 { return true; }
fastsim::SimplifiedGeometry::magneticFieldHist_
std::unique_ptr< TH1F > magneticFieldHist_
Histogram that stores the size of the magnetic field along the layer.
Definition: SimplifiedGeometry.h:157
fastsim::ForwardSimplifiedGeometry::getThickness
const double getThickness(const math::XYZTLorentzVector &position) const override
Return thickness of the forward layer at a given position.
Definition: ForwardSimplifiedGeometry.h:49
fastsim::SimplifiedGeometry::thicknessHist_
std::unique_ptr< TH1F > thicknessHist_
Histogram that stores the tickness (radLengths) along the layer.
Definition: SimplifiedGeometry.h:158
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
fastsim::SimplifiedGeometry::geomProperty_
double geomProperty_
Geometric property of the layer: radius (barrel layer) / position z (forward layer)
Definition: SimplifiedGeometry.h:154
fastsim::SimplifiedGeometry::SimplifiedGeometry
SimplifiedGeometry(double geomProperty)
Default constructor.
Definition: SimplifiedGeometry.cc:17