ATLAS Offline Software
ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FORWARDTRACKER_PARTICLE_H
6 #define FORWARDTRACKER_PARTICLE_H
7 
8 #include "IBeamElement.h"
9 #include "IParticle.h"
10 #include "Point.h"
11 #include "TransversePoint.h"
12 
13 namespace ForwardTracker {
14 
15  class IBeamElement;
16 
17  class Particle: virtual public IParticle {
18 
19  public:
20 
21  Particle();
22  Particle(double x, double y, double z, double px, double py, double pz, bool charge);
23 
24  Point position() const { return m_position; }
25  Point& position() { return m_position; }
27  Point direction() const { return m_direction; }
28  Point& direction() { return m_direction; }
31  double z() const { return m_position.z(); }
32  double& z() { return m_position[2]; }
33  double momentum() const { return m_momentum; }
34  bool charged() const { return m_charged; }
35  bool isOutOfAperture() const { return m_outOfAperture; }
36  bool debug() const { return m_debug; }
37 
39  void setBeamCoordinateShift(const IBeamElement* b) { m_beamCoordinateShift = -1.*(b->position()).transverse(); }
40  void setOutOfAperture (bool out) { if (out) m_outOfAperture = true; } // once out, always out
41  void setDebug (bool flag) { m_debug = flag; }
42  void addMsg (const std::string& msg) { m_msg += msg; }
43 
45 
46  m_position[0] = disp[0] - m_beamCoordinateShift[0]; // when the displacement from the magnet center is equal to the distance from the beam axis,
47  m_position[1] = disp[1] - m_beamCoordinateShift[1]; // particle position position is 0 in global coordinates.
48  }
49 
50  std::string str() const;
51 
52  private:
53 
54  Point m_position; // reference point to calculate a displacement, eg relative to a magnet
56  double m_momentum;
57  bool m_charged;
60  bool m_debug;
61  std::string m_msg;
62  };
63 }
64 #endif
ForwardTracker::Particle::z
double & z()
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:32
ForwardTracker::Particle::m_outOfAperture
bool m_outOfAperture
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:59
ForwardTracker::Particle::position
Point position() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:24
test_pyathena.px
px
Definition: test_pyathena.py:18
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ForwardTracker::Particle::transversePosition
TransversePoint transversePosition() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:30
ForwardTracker::Particle::direction
Point & direction()
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:28
ForwardTracker::Particle::Particle
Particle()
Definition: ForwardTracker/src/Particle.cxx:15
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Point.h
ForwardTracker::Particle::m_momentum
double m_momentum
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:56
ForwardTracker::Particle::addMsg
void addMsg(const std::string &msg)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:42
ForwardTracker::Particle::m_direction
Point m_direction
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:58
TransversePoint.h
ForwardTracker::Particle::setBeamCoordinateShift
void setBeamCoordinateShift(const TransversePoint &p)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:38
x
#define x
ForwardTracker::Point
Definition: ForwardTracker/ForwardTracker/Point.h:15
ForwardTracker::Particle::setDebug
void setDebug(bool flag)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:41
ForwardTracker::Particle::z
double z() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:31
IParticle.h
ForwardTracker::Particle::positionRelBeam
Point positionRelBeam() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:26
ForwardTracker::Particle::m_msg
std::string m_msg
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:61
ForwardTracker::Particle::debug
bool debug() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:36
ForwardTracker::Point::z
double z() const
Definition: ForwardTracker/ForwardTracker/Point.h:24
ForwardTracker::Particle::position
Point & position()
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:25
master.flag
bool flag
Definition: master.py:29
ForwardTracker::Particle::momentum
double momentum() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:33
ForwardTracker::TransversePoint
Definition: ForwardTracker/ForwardTracker/TransversePoint.h:13
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
ForwardTracker::IParticle
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/IParticle.h:16
Amg::py
@ py
Definition: GeoPrimitives.h:39
ForwardTracker::Point::transverse
TransversePoint transverse() const
Definition: ForwardTracker/ForwardTracker/Point.h:28
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
charge
double charge(const T &p)
Definition: AtlasPID.h:494
ForwardTracker::Particle::direction
Point direction() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:27
ForwardTracker::Particle::m_charged
bool m_charged
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:57
ForwardTracker::Particle::m_debug
bool m_debug
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:60
ForwardTracker::Particle
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:17
ForwardTracker::Particle::str
std::string str() const
Definition: ForwardTracker/src/Particle.cxx:33
ForwardTracker::Particle::setOutOfAperture
void setOutOfAperture(bool out)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:40
ForwardTracker::Particle::charged
bool charged() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:34
ForwardTracker::Particle::displacement
TransversePoint displacement() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:29
IBeamElement.h
y
#define y
ForwardTracker::Particle::m_beamCoordinateShift
TransversePoint m_beamCoordinateShift
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:55
ForwardTracker::Particle::isOutOfAperture
bool isOutOfAperture() const
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:35
ForwardTracker::IBeamElement
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:22
ForwardTracker::Particle::m_position
Point m_position
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:54
ForwardTracker::Particle::updatePositionFromDisplacement
void updatePositionFromDisplacement(const TransversePoint &disp)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:44
ForwardTracker
Definition: ForwardTracker/ForwardTracker/Beamline.h:12
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
ForwardTracker::Particle::setBeamCoordinateShift
void setBeamCoordinateShift(const IBeamElement *b)
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Particle.h:39