34 double delta = b * b - a *
c;
38 double sqrtDelta =
sqrt(delta);
45 double tc1 = (-b - sqrtDelta) / a *
momentum_.E();
46 double tc2 = (-b + sqrtDelta) / a *
momentum_.E();
48 if (onLayer && tc2 > 0) {
55 if (particleMovesInwards != particleMovesInwards2) {
72 position_.SetXYZT(position_.X() + momentum_.X() / momentum_.E() * deltaTimeC,
73 position_.Y() + momentum_.Y() / momentum_.E() * deltaTimeC,
74 position_.Z() + momentum_.Z() / momentum_.E() * deltaTimeC,
const edm::EventSetup & c
Implementation of a barrel detector layer (cylindrical).
static double constexpr speedOfLight
Speed of light [cm / ns].
constexpr std::array< uint8_t, layerIndexSize > layer
math::XYZTLorentzVector position_
position of the particle that was used to create trajectory
double nextCrossingTimeC(const BarrelSimplifiedGeometry &layer, bool onLayer=false) const override
Return delta time (t*c) of the next intersection of trajectory and barrel layer.
const double getRadius() const
Return radius of the barrel layer.
math::XYZTLorentzVector momentum_
momentum of the particle that was used to create trajectory
void move(double deltaTimeC) override
Move the particle along the helix trajectory for a given time.