ATLAS Offline Software
EmptySpaceElement.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "FPTracker/Particle.h"
7 #include <sstream>
8 #include <cmath>
9 #include <iostream>
10 
11 namespace FPTracker{
12 
13  EmptySpaceElement::EmptySpaceElement(double front, double back, const TransversePoint& beamAxis, Side side):
14  m_frontFace(front), m_rearFace(back),
15  m_signedLength(m_rearFace-m_frontFace),
16  m_absLength(std::fabs(m_signedLength)),
17  m_pos( beamAxis.x(), beamAxis.y(), front+0.5*m_signedLength),
18  m_label("Spacer"), m_side(side){
19  }
20 
22  m_frontFace(p->rearFace()), m_rearFace(c->frontFace()), m_signedLength(m_rearFace-m_frontFace),
23  m_absLength(std::fabs(m_signedLength)),
24  m_pos( p->position() ),
25  m_label("Spacer"), m_side(c->side()){
26  }
27 
30  return pbe;
31  }
32 
33  double EmptySpaceElement::frontFace() const {return m_frontFace;}
34  double EmptySpaceElement::rearFace() const {return m_rearFace;}
35  std::string EmptySpaceElement::label() const {return m_label;}
36  double EmptySpaceElement::zsignedpos() const {return m_frontFace + /*0.5* */m_signedLength;}//Added dpelikan @ 110308
37  double EmptySpaceElement::zabspos() const {return std::fabs(this->zsignedpos());}
40  bool EmptySpaceElement::isEndElement() const {return false;}
41 
43  {
44  //Added dpelikan @ 110308
45  double TransLength=m_absLength-(std::abs(particle.position().z())-std::abs(m_frontFace));
46  //std::cout<<m_absLength<<"\t"<<TransLength<<std::endl;
47 
48  particle.setBeamCoordinateShift(this);
49 
50 
51 
52  //particle.position() += m_absLength*particle.direction();
53  particle.position() += TransLength*particle.direction();
54  particle.position()[2] = m_rearFace;
55 
56  }
57 
59  {
60  return this->track(particle);
61  }
62 
63  std::string EmptySpaceElement::str() const {
64 
65  std::ostringstream ost;
66  ost <<" \n\n-- EmptySpaceElement --\n"
67  << "frontFace " << m_frontFace <<'\n'
68  << "rearFace " << m_rearFace <<'\n';
69  return ost.str();
70  }
71 
73  /*
74  double EmptySpaceElement::rearFace() const {return 0.;}
75  double EmptySpaceElement::frontFace() const {return 0.;}
76  std::string EmptySpaceElement::label() const {return "";}
77  double EmptySpaceElement::zsignedpos() const {return 0.;}
78  double EmptySpaceElement::zabspos() const {return 0.;}
79  Point EmptySpaceElement::position() const {return Point(0., 0., 0.);}
80  int EmptySpaceElement::side() const {return 0;}
81  bool EmptySpaceElement::isEndElement() const {return false;}
82  void EmptySpaceElement::track(Particle& particle) const {}
83 
84  std::string EmptySpaceElement::str() const {return " ";}
85  */
86 
87 }
88 
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
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
FPTracker::EmptySpaceElement::m_side
Side m_side
Definition: EmptySpaceElement.h:56
FPTracker::EmptySpaceElement::clone
IBeamElement::ConstPtr_t clone() const
Definition: EmptySpaceElement.cxx:28
FPTracker::EmptySpaceElement::m_absLength
double m_absLength
Definition: EmptySpaceElement.h:53
FPTracker::EmptySpaceElement::zabspos
double zabspos() const
Definition: EmptySpaceElement.cxx:37
FPTracker::EmptySpaceElement::rearFace
double rearFace() const
Definition: EmptySpaceElement.cxx:34
x
#define x
FPTracker::EmptySpaceElement::str
std::string str() const
Definition: EmptySpaceElement.cxx:63
TRT::Hit::side
@ side
Definition: HitInfo.h:83
FPTracker::EmptySpaceElement::position
Point position() const
Definition: EmptySpaceElement.cxx:38
FPTracker::EmptySpaceElement::track
void track(IParticle &) const
Definition: EmptySpaceElement.cxx:42
FPTracker::EmptySpaceElement::m_frontFace
double m_frontFace
Definition: EmptySpaceElement.h:50
FPTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: FPTracker/FPTracker/IBeamElement.h:40
FPTracker::EmptySpaceElement::side
Side side() const
Definition: EmptySpaceElement.cxx:39
Side
Definition: WaferTree.h:36
FPTracker::EmptySpaceElement::m_signedLength
double m_signedLength
Definition: EmptySpaceElement.h:52
FPTracker::EmptySpaceElement::EmptySpaceElement
EmptySpaceElement(double front, double back, const TransversePoint &beamAxis, Side side)
Definition: EmptySpaceElement.cxx:13
FPTracker::EmptySpaceElement::m_label
std::string m_label
Definition: EmptySpaceElement.h:55
EmptySpaceElement.h
FPTracker::EmptySpaceElement::~EmptySpaceElement
~EmptySpaceElement()
Definition: EmptySpaceElement.cxx:72
FPTracker::EmptySpaceElement::zsignedpos
double zsignedpos() const
Definition: EmptySpaceElement.cxx:36
FPTracker::Point
Definition: FPTracker/FPTracker/Point.h:14
y
#define y
FPTracker::EmptySpaceElement::isEndElement
bool isEndElement() const
Definition: EmptySpaceElement.cxx:40
FPTracker::EmptySpaceElement::m_rearFace
double m_rearFace
Definition: EmptySpaceElement.h:51
Particle.h
FPTracker
Definition: FPTracker/FPTracker/Beamline.h:12
FPTracker::EmptySpaceElement::label
std::string label() const
Definition: EmptySpaceElement.cxx:35
FPTracker::IParticle
Definition: ForwardDetectors/FPTracker/FPTracker/IParticle.h:17
FPTracker::EmptySpaceElement::m_pos
Point m_pos
Definition: EmptySpaceElement.h:54
FPTracker::TransversePoint
Definition: FPTracker/FPTracker/TransversePoint.h:12
python.compressB64.c
def c
Definition: compressB64.py:93
FPTracker::EmptySpaceElement::calibrate
void calibrate(IParticle &)
Definition: EmptySpaceElement.cxx:58
FPTracker::EmptySpaceElement::frontFace
double frontFace() const
Definition: EmptySpaceElement.cxx:33