23 : cacheIdentifierTrackerRecoGeometry_(0),
24 cacheIdentifierIdealMagneticField_(0),
25 geometricSearchTracker_(nullptr),
26 magneticField_(nullptr),
27 useFixedMagneticFieldZ_(
cfg.exists(
"magneticFieldZ")),
28 fixedMagneticFieldZ_(
cfg.getUntrackedParameter<double>(
"magneticFieldZ", 0.)),
29 useTrackerRecoGeometryRecord_(
cfg.getUntrackedParameter<
bool>(
"useTrackerRecoGeometryRecord",
true)),
30 trackerAlignmentLabel_(
cfg.getUntrackedParameter<
std::
string>(
"trackerAlignmentLabel",
"")),
33 maxRadius_(
cfg.getUntrackedParameter<double>(
"maxRadius", 500.)),
34 maxZ_(
cfg.getUntrackedParameter<double>(
"maxZ", 1200.)),
35 barrelBoundary_(
cfg.exists(
"trackerBarrelBoundary"))
37 forwardBoundary_(
cfg.exists(
"trackerForwardBoundary"))
39 trackerBarrelBoundaryCfg_(barrelBoundary_
43 trackerForwardBoundaryCfg_(forwardBoundary_
56 const std::map<std::string, fastsim::InteractionModel*>& interactionModelMap) {
112 <<
"barrel layers must be ordered according to increading radius" 113 <<
"\nbarrel layer " <<
index <<
" has radius smaller than or equal to radius of barrel layer " <<
index - 1
149 <<
"forward layers must be ordered according to increasing z" 150 <<
"forward layer " <<
index <<
" has z smaller than or equal to z of forward layer " <<
index - 1;
162 <<
"\n# fastsim::Geometry" 163 <<
"\n## BarrelLayers:";
164 for (
const auto& layer :
geometry.barrelLayers_) {
165 os <<
"\n " << *layer << layer->getInteractionModels().size() <<
" interaction models";
167 os <<
"\n## ForwardLayers:";
168 for (
const auto& layer :
geometry.forwardLayers_) {
169 os <<
"\n " << *layer << layer->getInteractionModels().size() <<
" interaction models";
171 os <<
"\n-----------";
const bool useTrackerRecoGeometryRecord_
Use GeometricSearchTracker (active layers/reco geometry). Can be used to get position/radius of track...
unsigned long long cacheIdentifierTrackerRecoGeometry_
Check interval of validity of the tracker geometry.
std::vector< std::unique_ptr< BarrelSimplifiedGeometry > > barrelLayers_
The vector of barrel layers (increasing radius)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
void update(const edm::EventSetup &iSetup, const std::map< std::string, InteractionModel *> &interactionModelMap)
Initializes the tracker geometry.
const GeometricSearchTracker * geometricSearchTracker_
const MagneticField * magneticField_
The tracker geometry.
Global3DPoint GlobalPoint
const std::vector< edm::ParameterSet > forwardLayerCfg_
The config in which all parameters of the forward layers are defined.
const std::vector< edm::ParameterSet > barrelLayerCfg_
The config in which all parameters of the barrel layers are defined.
const double fixedMagneticFieldZ_
Use a uniform magnetic field or non-uniform from MagneticFieldRecord.
const double maxZ_
Upper bound of the radius of the whole tracker geometry.
unsigned long long cacheIdentifier() const
const edm::ParameterSet trackerForwardBoundaryCfg_
Hack to interface "old" calo to "new" tracking.
const std::string trackerAlignmentLabel_
The tracker alignment label.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::unique_ptr< MagneticField > ownedMagneticField_
Needed to create a uniform magnetic field if speciefied in config.
edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > geometricSearchTrackerESToken_
std::unique_ptr< ForwardSimplifiedGeometry > createForwardSimplifiedGeometry(LayerType type, const edm::ParameterSet &cfg) const
Helper method for createSimplifiedGeometry(..) to create a forward layer (ForwardSimplifiedGeometry)...
std::ostream & operator<<(std::ostream &os, const fastsim::Geometry &geometry)
const bool forwardBoundary_
Hack to interface "old" calo to "new" tracking.
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldESToken_
Constructs a tracker layer according to entry in python config (incl interaction models).
const edm::ParameterSet trackerBarrelBoundaryCfg_
Hack to interface "old" calo to "new" tracking.
Definition the tracker geometry (vectors of forward/barrel layers).
Geometry(const edm::ParameterSet &, edm::ConsumesCollector &&)
Constructor.
double getMagneticFieldZ(const math::XYZTLorentzVector &position) const
Initializes the tracker geometry.
static int position[264][3]
std::unique_ptr< BarrelSimplifiedGeometry > createBarrelSimplifiedGeometry(const edm::ParameterSet &cfg) const
Helper method for createSimplifiedGeometry(..) to create a barrel layer (BarrelSimplifiedGeometry).
std::vector< std::unique_ptr< ForwardSimplifiedGeometry > > forwardLayers_
The vector of forward layers (increasing Z-position)
const bool useFixedMagneticFieldZ_
Needed to create a uniform magnetic field if speciefied in config.
~Geometry()
Default destructor.
const bool barrelBoundary_
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry.
unsigned long long cacheIdentifierIdealMagneticField_
Check interval of validity of the magnetic field.