CMS 3D CMS Logo

StraightTrajectory.h
Go to the documentation of this file.
1 #ifndef FASTSIM_STRAIGHTTRAJECTORY_H
2 #define FASTSIM_STRAIGHTTRAJECTORY_H
3 
5 
6 
8 // Author: L. Vanelderen, S. Kurz
9 // Date: 29 May 2017
11 
12 
13 namespace fastsim
14 {
16 
20  {
21  public:
23  /*
24  \param particle A (usually uncharged) particle (or charged particle with very high pT so that trajectory can be considered straight).
25  */
26  StraightTrajectory(const Particle & particle) : Trajectory(particle) {;}
27 
29  /*
30  \param trajectory StraightTrajectory does not have any special attribues so it can be copied right away
31  */
32  StraightTrajectory(const Trajectory & trajectory) : Trajectory(trajectory) {;}
33 
35 
40  bool crosses(const BarrelSimplifiedGeometry & layer) const override {return true;}
41 
43 
49  double nextCrossingTimeC(const BarrelSimplifiedGeometry & layer, bool onLayer = false) const override;
50 
52 
55  void move(double deltaTimeC) override;
56  };
57 }
58 
59 #endif
Implementation of a barrel detector layer (cylindrical).
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:29
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.
void move(double deltaTimeC) override
Move the particle along the helix trajectory for a given time.