CMS 3D CMS Logo

HelixTrajectory.h
Go to the documentation of this file.
1 
2 #ifndef FASTSIM_HELIXTRAJECTORY_H
3 #define FASTSIM_HELIXTRAJECTORY_H
4 
6 
8 // Author: L. Vanelderen, S. Kurz
9 // Date: 29 May 2017
11 
12 namespace fastsim {
14 
18  class HelixTrajectory : public Trajectory {
19  public:
21 
26  HelixTrajectory(const Particle& particle, double magneticFieldZ);
27 
29 
32  bool crosses(const BarrelSimplifiedGeometry& layer) const override;
33 
35 
42  double nextCrossingTimeC(const BarrelSimplifiedGeometry& layer, bool onLayer = false) const override;
43 
45 
48  void move(double deltaTimeC) override;
49 
51 
54  double getRadParticle(double phi) const;
55 
56  private:
57  const double radius_;
58  const double phi_;
59  const double centerX_;
61  const double centerY_;
62  const double centerR_;
63  const double minR_;
64  const double maxR_;
65  const double phiSpeed_;
66  };
67 } // namespace fastsim
68 
69 #endif
fastsim::HelixTrajectory::crosses
bool crosses(const BarrelSimplifiedGeometry &layer) const override
Check if an intersection of the trajectory with a barrel layer exists.
Definition: HelixTrajectory.cc:56
fastsim::HelixTrajectory::radius_
const double radius_
The radius of the helix.
Definition: HelixTrajectory.h:57
fastsim::HelixTrajectory::nextCrossingTimeC
double nextCrossingTimeC(const BarrelSimplifiedGeometry &layer, bool onLayer=false) const override
Return delta time (t*c) of the next intersection of trajectory and barrel layer.
Definition: HelixTrajectory.cc:60
Trajectory.h
fastsim::HelixTrajectory::phi_
const double phi_
Ranges from 0 to 2PI: 0 corresponds to the positive X direction, phi increases counterclockwise.
Definition: HelixTrajectory.h:58
fastsim::HelixTrajectory::maxR_
const double maxR_
The maximum distance of the helix from the center of the tracker.
Definition: HelixTrajectory.h:64
fastsim::BarrelSimplifiedGeometry
Implementation of a barrel detector layer (cylindrical).
Definition: BarrelSimplifiedGeometry.h:22
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
fastsim::HelixTrajectory
Mathematical representation of a helix.
Definition: HelixTrajectory.h:18
fastsim::HelixTrajectory::centerY_
const double centerY_
Y-coordinate of the center of the helix.
Definition: HelixTrajectory.h:61
fastsim::HelixTrajectory::phiSpeed_
const double phiSpeed_
The angular speed of the particle on the helix trajectory.
Definition: HelixTrajectory.h:65
fastsim::HelixTrajectory::HelixTrajectory
HelixTrajectory(const Particle &particle, double magneticFieldZ)
Constructor.
Definition: HelixTrajectory.cc:15
fastsim::Trajectory
Definition the generic trajectory of a particle (base class for helix/straight trajectories).
Definition: Trajectory.h:26
fastsim::HelixTrajectory::centerR_
const double centerR_
Distance of the center of the helix from the center of the tracker.
Definition: HelixTrajectory.h:62
fastsim::HelixTrajectory::move
void move(double deltaTimeC) override
Move the particle along the helix trajectory for a given time.
Definition: HelixTrajectory.cc:193
CaloMaterial_cfi.magneticFieldZ
magneticFieldZ
Definition: CaloMaterial_cfi.py:112
Particle
Definition: Particle.py:1
fastsim
Definition: BarrelSimplifiedGeometry.h:15
fastsim::HelixTrajectory::minR_
const double minR_
The minimal distance of the helix from the center of the tracker.
Definition: HelixTrajectory.h:63
fastsim::HelixTrajectory::getRadParticle
double getRadParticle(double phi) const
Return distance of particle from center of the detector if it was at given angle phi of the helix.
Definition: HelixTrajectory.cc:209
fastsim::HelixTrajectory::centerX_
const double centerX_
X-coordinate of the center of the helix.
Definition: HelixTrajectory.h:60