ATLAS Offline Software
ForwardDetectors/ForwardTracker/src/Spacer.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 #include <sstream>
9 
10 namespace ForwardTracker {
11 
12  Spacer::Spacer(double front, double rear, Side side):
13  m_label ("Spacer"),
14  m_side (side),
15  m_frontFace(front),
16  m_rearFace (rear),
17  m_position (0., 0., m_rearFace)
18  {}
19 
21  m_label ("Spacer"),
22  m_side (current->side()),
23  m_frontFace(previous->rearFace()),
24  m_rearFace (current->frontFace()),
25  m_position (previous->position().x(), previous->position().y(), m_rearFace)
26  {}
27 
29 
30  particle.setBeamCoordinateShift(this);
31 
32  if (particle.isOutOfAperture()) return;
33 
34  double aside = ForwardTrackerConstants::aside[m_side];
35  Point direction = particle.direction();
36  TransversePoint displacement = particle.displacement();
37 
38  displacement += std::fabs(m_rearFace - particle.z())*aside/direction[2]*direction.transverse(); // Linear drift
39 
40  particle.updatePositionFromDisplacement(displacement);
41  particle.z() = m_rearFace;
42 
43  if (particle.displacement().mag2() > ForwardTrackerConstants::beamPipeRadius2) particle.setOutOfAperture(true);
44  }
45 
46  std::string Spacer::str() const {
47 
48  std::ostringstream ost;
49 
50  ost << "m_label " << m_label << "\n"
51  << "m_side " << m_side << "\n"
52  << "m_frontFace " << m_frontFace << "\n"
53  << "m_rearFace " << m_rearFace << "\n"
54  << "m_position " << m_position << "\n";
55 
56  return ost.str();
57  }
58 }
59 
fillPileUpNoiseLumi.current
current
Definition: fillPileUpNoiseLumi.py:52
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
python.trigbs_prescaleL1.ost
ost
Definition: trigbs_prescaleL1.py:104
ForwardTracker::Spacer::m_rearFace
double m_rearFace
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:47
ForwardTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:39
Particle.h
ForwardTracker::ForwardTrackerConstants::aside
static const double aside[2]
Definition: ForwardTrackerConstants.h:20
ForwardTracker::Spacer::Spacer
Spacer(double front, double back, Side side)
Definition: ForwardDetectors/ForwardTracker/src/Spacer.cxx:12
x
#define x
ForwardTracker::Point
Definition: ForwardTracker/ForwardTracker/Point.h:15
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ForwardTracker::Spacer::m_frontFace
double m_frontFace
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:46
ForwardTracker::Spacer::m_label
std::string m_label
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:44
ForwardTracker::Spacer::m_side
Side m_side
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:45
Side
Definition: WaferTree.h:36
ForwardTracker::TransversePoint
Definition: ForwardTracker/ForwardTracker/TransversePoint.h:13
ForwardTracker::Spacer::str
std::string str() const
Definition: ForwardDetectors/ForwardTracker/src/Spacer.cxx:46
ForwardTracker::IParticle
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/IParticle.h:16
ForwardTracker::Point::transverse
TransversePoint transverse() const
Definition: ForwardTracker/ForwardTracker/Point.h:28
y
#define y
ForwardTracker::Spacer::m_position
Point m_position
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:48
Spacer.h
ForwardTracker::ForwardTrackerConstants::beamPipeRadius2
static const double beamPipeRadius2
Definition: ForwardTrackerConstants.h:19
ForwardTracker
Definition: ForwardTracker/ForwardTracker/Beamline.h:12
Trk::previous
@ previous
Definition: BinningData.h:32
ForwardTracker::Spacer::track
void track(IParticle &) const
Definition: ForwardDetectors/ForwardTracker/src/Spacer.cxx:28