CMS 3D CMS Logo

defaultRKPropagator.h
Go to the documentation of this file.
1 #ifndef RKPropagatorDefault_H
2 #define RKPropagatorDefault_H
3 
6 
7 namespace defaultRKPropagator {
8 
10 
11  // not clear why we need all this
12  class TrivialFieldProvider final : public MagneticFieldProvider<float> {
13  public:
14  TrivialFieldProvider(const MagneticField* field) : theField(field) {}
15 
16  LocalVectorType valueInTesla(const LocalPointType& lp) const override {
17  // NOTE: the following transformation only works for the central volume
18  // where global and local coordinates are numerically equal !
21  }
22 
23  private:
25  };
26 
27  class RKMagVolume final : public MagVolume {
28  public:
30  : MagVolume(pos, rot, mfp) {}
31 
32  bool inside(const GlobalPoint& gp, double tolerance = 0.) const override { return true; }
33 
35  const std::vector<VolumeSide>& faces() const override { return theFaces; }
36 
37  private:
38  std::vector<VolumeSide> theFaces;
39  };
40 
41  struct Product {
42  explicit Product(const MagneticField* field, PropagationDirection dir = alongMomentum, double tolerance = 5.e-5)
43  : mpf(field),
49  };
50 
51 } // namespace defaultRKPropagator
52 
53 #endif // RKPropagatorDefault
Vector3DBase< float, LocalTag >
TkRotation< float >
RKPropagatorInS
Definition: RKPropagatorInS.h:19
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
defaultRKPropagator::Product
Definition: defaultRKPropagator.h:41
align::RotationType
TkRotation< Scalar > RotationType
Definition: Definitions.h:27
defaultRKPropagator::RKMagVolume::RKMagVolume
RKMagVolume(const PositionType &pos, const RotationType &rot, const MagneticFieldProvider< float > *mfp)
Definition: defaultRKPropagator.h:29
defaultRKPropagator::TrivialFieldProvider
Definition: defaultRKPropagator.h:12
pos
Definition: PixelAliasList.h:18
align::PositionType
Point3DBase< Scalar, GlobalTag > PositionType
Definition: Definitions.h:28
defaultRKPropagator
Definition: defaultRKPropagator.h:7
MagneticFieldProvider
Definition: MagCylinder.h:14
defaultRKPropagator::TrivialFieldProvider::TrivialFieldProvider
TrivialFieldProvider(const MagneticField *field)
Definition: defaultRKPropagator.h:14
MagVolume::GlobalPoint
GloballyPositioned< float >::GlobalPoint GlobalPoint
Definition: MagVolume.h:18
RKPropagatorInS.h
defaultRKPropagator::RKMagVolume::inside
bool inside(const GlobalPoint &gp, double tolerance=0.) const override
Definition: defaultRKPropagator.h:32
defaultRKPropagator::Product::mpf
TrivialFieldProvider mpf
Definition: defaultRKPropagator.h:46
Point3DBase< float, LocalTag >
defaultRKPropagator::Product::volume
RKMagVolume volume
Definition: defaultRKPropagator.h:47
defaultRKPropagator::TrivialFieldProvider::valueInTesla
LocalVectorType valueInTesla(const LocalPointType &lp) const override
Definition: defaultRKPropagator.h:16
defaultRKPropagator::RKMagVolume::faces
const std::vector< VolumeSide > & faces() const override
Access to volume faces - dummy implementation.
Definition: defaultRKPropagator.h:35
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
defaultRKPropagator::Product::Product
Product(const MagneticField *field, PropagationDirection dir=alongMomentum, double tolerance=5.e-5)
Definition: defaultRKPropagator.h:42
MagneticFieldProvider.h
defaultRKPropagator::TrivialFieldProvider::theField
const MagneticField * theField
Definition: defaultRKPropagator.h:24
MagVolume
Definition: MagVolume.h:13
tolerance
const double tolerance
Definition: HGCalGeomParameters.cc:26
PV3DBase::basicVector
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:53
defaultRKPropagator::RKMagVolume::theFaces
std::vector< VolumeSide > theFaces
Definition: defaultRKPropagator.h:38
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
defaultRKPropagator::Product::propagator
RKPropagator propagator
Definition: defaultRKPropagator.h:48
MagneticFieldProvider< float >::LocalVectorType
Vector3DBase< float, LocalTag > LocalVectorType
Definition: MagneticFieldProvider.h:22
MagneticField
Definition: MagneticField.h:19
alongMomentum
Definition: PropagationDirection.h:4
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
defaultRKPropagator::RKMagVolume
Definition: defaultRKPropagator.h:27