CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
StraightTrajectory.h
Go to the documentation of this file.
1 #ifndef FASTSIM_STRAIGHTTRAJECTORY_H
2 #define FASTSIM_STRAIGHTTRAJECTORY_H
3 
5 
7 // Author: L. Vanelderen, S. Kurz
8 // Date: 29 May 2017
10 
11 namespace fastsim {
13 
16  class StraightTrajectory : public Trajectory {
17  public:
19  /*
20  \param particle A (usually uncharged) particle (or charged particle with very high pT so that trajectory can be considered straight).
21  */
22  StraightTrajectory(const Particle& particle) : Trajectory(particle) { ; }
23 
25  /*
26  \param trajectory StraightTrajectory does not have any special attribues so it can be copied right away
27  */
28  StraightTrajectory(const Trajectory& trajectory) : Trajectory(trajectory) { ; }
29 
31 
36  bool crosses(const BarrelSimplifiedGeometry& layer) const override { return true; }
37 
39 
45  double nextCrossingTimeC(const BarrelSimplifiedGeometry& layer, bool onLayer = false) const override;
46 
48 
51  void move(double deltaTimeC) override;
52  };
53 } // namespace fastsim
54 
55 #endif
Implementation of a barrel detector layer (cylindrical).
constexpr std::array< uint8_t, layerIndexSize > layer
StraightTrajectory(const Trajectory &trajectory)
Use Copy Constructor.
Mathematical representation of a straight trajectory.
Definition the generic trajectory of a particle (base class for helix/straight trajectories).
Definition: Trajectory.h:26
StraightTrajectory(const Particle &particle)
Constructor.
double nextCrossingTimeC(const BarrelSimplifiedGeometry &layer, bool onLayer=false) const override
Return delta time (t*c) of the next intersection of trajectory and barrel layer.
bool crosses(const BarrelSimplifiedGeometry &layer) const override
Check if an intersection of the trajectory with a barrel layer exists.
Definition of a generic FastSim Particle which can be propagated through the detector (formerly Parti...
Definition: Particle.h:16
void move(double deltaTimeC) override
Move the particle along the helix trajectory for a given time.