ATLAS Offline Software
FPTracker/src/Plane.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "FPTracker/Plane.h"
6 #include "FPTracker/Particle.h"
9 #include <cmath>
10 #include <sstream>
11 #include <cassert>
12 namespace FPTracker{
13 
14  const std::string Plane::s_label="Plane";
15  std::string Plane::label() const{return s_label;}
16 
17  //Plane::Plane(double zpos, double xinnerp, const Magnet* mp, int side):
18  Plane::Plane(double zpos, Side side):
19  m_position( 0., 0., 0. ), m_side(side)
20  {
21  assert(zpos >= 0.);
22  zpos = side == beam2 ? -zpos:zpos;
23  TransversePoint shift = beamlineXPosition(zpos);
24  m_position = Point(shift.x(), shift.y(), zpos);
25 
26  }
27 
29  IBeamElement::ConstPtr_t pbe( new Plane(*this) );
30  return pbe;
31  }
32 
33  double Plane::frontFace() const{return m_position.z();}
34  double Plane::rearFace() const{return m_position.z();}
35  double Plane::zabspos() const{return std::fabs(m_position.z());}
36  double Plane::zsignedpos() const{return m_position.z();}
37  Point Plane::position() const{return m_position;}
38  Side Plane::side() const{return m_side;}
39 
40 
42  {
43  particle.setBeamCoordinateShift(this);
44  if (particle.isOutOfAperture()){return;}
45  if (particle.displacement().mag2() > FPTrackerConstants::beamPipeRadius2){
46  particle.setOutOfAperture(true);
47  }
48 
49  }
50 
52  {
53  return this->track(particle);
54  }
55 
56  std::string Plane::str() const {
57  std::ostringstream ost;
58  ost<<"\n-- Plane --\n";
59  ost<<" position "<<m_position<<'\n';
60  ost<<" side "<<m_side<<'\n';
61  return ost.str();
62  }
63 
64  bool Plane::isEndElement() const{return true;}
65 
66 std::ostream& operator<<(std::ostream& os, const Plane& p){
67  os<<p.str();
68  return os;
69  }
70 }
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
FPTracker::operator<<
std::ostream & operator<<(std::ostream &os, const Beamline &bl)
Definition: FPTracker/src/Beamline.cxx:163
FPTracker::Plane::Plane
Plane(double, Side)
Definition: FPTracker/src/Plane.cxx:18
FPTracker::Plane::m_position
Point m_position
Definition: FPTracker/FPTracker/Plane.h:46
FPTracker::Plane::track
void track(IParticle &) const
Definition: FPTracker/src/Plane.cxx:41
FPTracker::Plane::zsignedpos
double zsignedpos() const
Definition: FPTracker/src/Plane.cxx:36
FPTracker::Plane::str
std::string str() const
Definition: FPTracker/src/Plane.cxx:56
FPTracker::Plane::isEndElement
bool isEndElement() const
Definition: FPTracker/src/Plane.cxx:64
FPTracker::Plane::calibrate
void calibrate(IParticle &)
Definition: FPTracker/src/Plane.cxx:51
TRT::Hit::side
@ side
Definition: HitInfo.h:83
FPTracker::Plane::zabspos
double zabspos() const
Definition: FPTracker/src/Plane.cxx:35
FPTracker::Plane::rearFace
double rearFace() const
Definition: FPTracker/src/Plane.cxx:34
FPTracker::Plane::s_label
static const std::string s_label
Definition: FPTracker/FPTracker/Plane.h:45
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
FPTrackerConstants.h
FPTracker::Plane::position
Point position() const
Definition: FPTracker/src/Plane.cxx:37
FPTracker::beam2
@ beam2
Definition: FPTrackerConstants.h:12
FPTracker::beamlineXPosition
TransversePoint beamlineXPosition(double z)
Definition: beamlineXPosition.cxx:11
FPTracker::Plane::clone
IBeamElement::ConstPtr_t clone() const
Definition: FPTracker/src/Plane.cxx:28
FPTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: FPTracker/FPTracker/IBeamElement.h:40
FPTracker::Plane::label
std::string label() const
Definition: FPTracker/src/Plane.cxx:15
Side
Definition: WaferTree.h:36
FPTracker::Plane
Definition: FPTracker/FPTracker/Plane.h:19
FPTracker::Point::z
double z() const
Definition: FPTracker/src/Point.cxx:19
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
FPTracker::Point
Definition: FPTracker/FPTracker/Point.h:14
Plane.h
FPTracker::TransversePoint::x
double x() const
Definition: FPTracker/src/TransversePoint.cxx:16
FPTracker::Plane::frontFace
double frontFace() const
Definition: FPTracker/src/Plane.cxx:33
beamlineXPosition.h
FPTracker::Plane::m_side
Side m_side
Definition: FPTracker/FPTracker/Plane.h:47
Particle.h
FPTracker::FPTrackerConstants::beamPipeRadius2
static const double beamPipeRadius2
Definition: FPTrackerConstants.h:15
FPTracker::Plane::side
Side side() const
Definition: FPTracker/src/Plane.cxx:38
FPTracker
Definition: FPTracker/FPTracker/Beamline.h:12
FPTracker::TransversePoint::y
double y() const
Definition: FPTracker/src/TransversePoint.cxx:17
FPTracker::IParticle
Definition: ForwardDetectors/FPTracker/FPTracker/IParticle.h:17
FPTracker::TransversePoint
Definition: FPTracker/FPTracker/TransversePoint.h:12