ATLAS Offline Software
ForwardTracker/ForwardTracker/Collimator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FORWARDTRACKER_COLLIMATOR_H
6 #define FORWARDTRACKER_COLLIMATOR_H
7 
8 #include "IBeamElement.h"
9 #include "Point.h"
10 
11 #include <limits>
12 #include <algorithm>
13 
14 namespace ForwardTracker {
15 
16  class IParticle;
17  class TransversePoint;
18 
19  class Collimator: public IBeamElement {
20 
21  public:
22 
23  Collimator(double, double, Side);
24 
25  std::string label() const { return m_label; }
26  Side side() const { return m_side; }
27  double frontFace() const { return m_frontFace; }
28  double rearFace() const { return m_rearFace; }
29  Point position() const { return m_position; }
30  bool isEndElement() const { return false; }
31 
32  IBeamElement::ConstPtr_t clone() const { IBeamElement::ConstPtr_t pbe(new Collimator(*this)); return pbe; }
33 
34  void track(IParticle&) const;
35 
36  typedef std::shared_ptr< const Collimator > ConstPtr_t;
37  typedef std::vector< ConstPtr_t > Container_t;
38 
39  std::string str() const;
40 
41  private:
42 
43  std::string m_label;
45  double m_frontFace;
46  double m_rearFace;
48  double m_xaperture;
49  double m_xouter;
50  double m_xinner;
51 
52  bool isOutOfAperture(const TransversePoint& p) const { return (p.x() > m_xouter or p.x() < m_xinner); }
53  };
54 
55  std::ostream& operator<<(std::ostream&, const Collimator&);
56 }
57 
58 #endif
ForwardTracker::Collimator::m_xaperture
double m_xaperture
Definition: ForwardTracker/ForwardTracker/Collimator.h:48
ForwardTracker::Collimator::Container_t
std::vector< ConstPtr_t > Container_t
Definition: ForwardTracker/ForwardTracker/Collimator.h:37
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ForwardTracker::Collimator::label
std::string label() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:25
ForwardTracker::Collimator
Definition: ForwardTracker/ForwardTracker/Collimator.h:19
ForwardTracker::Collimator::str
std::string str() const
Definition: ForwardTracker/src/Collimator.cxx:33
ForwardTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:39
Point.h
ForwardTracker::Collimator::m_xinner
double m_xinner
Definition: ForwardTracker/ForwardTracker/Collimator.h:50
ForwardTracker::Collimator::m_xouter
double m_xouter
Definition: ForwardTracker/ForwardTracker/Collimator.h:49
ForwardTracker::Point
Definition: ForwardTracker/ForwardTracker/Point.h:15
ForwardTracker::Collimator::m_side
Side m_side
Definition: ForwardTracker/ForwardTracker/Collimator.h:44
ForwardTracker::operator<<
std::ostream & operator<<(std::ostream &, const Beamline &)
Definition: ForwardTracker/src/Beamline.cxx:105
ForwardTracker::Collimator::Collimator
Collimator(double, double, Side)
Definition: ForwardTracker/src/Collimator.cxx:11
ForwardTracker::Collimator::m_label
std::string m_label
Definition: ForwardTracker/ForwardTracker/Collimator.h:43
ForwardTracker::Collimator::m_frontFace
double m_frontFace
Definition: ForwardTracker/ForwardTracker/Collimator.h:45
ForwardTracker::Collimator::rearFace
double rearFace() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:28
Side
Definition: WaferTree.h:36
ForwardTracker::TransversePoint
Definition: ForwardTracker/ForwardTracker/TransversePoint.h:13
ForwardTracker::IParticle
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/IParticle.h:16
ForwardTracker::Collimator::frontFace
double frontFace() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:27
ForwardTracker::Collimator::position
Point position() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:29
ForwardTracker::Collimator::track
void track(IParticle &) const
Definition: ForwardTracker/src/Collimator.cxx:24
ForwardTracker::Collimator::m_rearFace
double m_rearFace
Definition: ForwardTracker/ForwardTracker/Collimator.h:46
ForwardTracker::Collimator::isOutOfAperture
bool isOutOfAperture(const TransversePoint &p) const
Definition: ForwardTracker/ForwardTracker/Collimator.h:52
IBeamElement.h
ForwardTracker::Collimator::m_position
Point m_position
Definition: ForwardTracker/ForwardTracker/Collimator.h:47
ForwardTracker::Collimator::clone
IBeamElement::ConstPtr_t clone() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:32
ForwardTracker::Collimator::ConstPtr_t
std::shared_ptr< const Collimator > ConstPtr_t
Definition: ForwardTracker/ForwardTracker/Collimator.h:36
ForwardTracker::IBeamElement
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:22
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
ForwardTracker
Definition: ForwardTracker/ForwardTracker/Beamline.h:12
ForwardTracker::Collimator::isEndElement
bool isEndElement() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:30
ForwardTracker::Collimator::side
Side side() const
Definition: ForwardTracker/ForwardTracker/Collimator.h:26