ATLAS Offline Software
FPTracker/FPTracker/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 FPTRACKER_COLLIMATOR_H
6 #define FPTRACKER_COLLIMATOR_H
7 
8 #include "IBeamElement.h"
9 #include "FPTrackerConstants.h"
10 #include "Point.h"
11 #include <memory>
12 #include <vector>
13 #include <string>
14 #include <iosfwd>
15 
16 namespace FPTracker{
17 
18  class IParticle;
19  class TransversePoint;
20  class Collimator:public IBeamElement{
21  public:
22  Collimator(double, double, Side);
24  double frontFace() const;
25  double rearFace() const;
26  double zabspos() const;
27  double zsignedpos() const;
28  Side side() const;
29  Point position() const;
30  std::string label() const;
31  std::string str() const;
32 
33  bool isEndElement() const;
34 
35  void track(IParticle&) const;
36  //center collimator jaws on calibration particle trajectory
37  void calibrate(IParticle&);
38 
39 
40  typedef std::shared_ptr< Collimator > Ptr_t;
41  typedef std::vector< Ptr_t > Container_t;
42 
43  private:
44 
45  static const std::string s_label;
47  double m_xaperture;
48  double m_xouter;
49  double m_xinner;
51 
52  bool isOutOfAperture(const TransversePoint&) const;
53  };
54 
55 
56 
57  class ostream;
58  std::ostream& operator<<(std::ostream&, const Collimator&);
59 }
60 #endif
FPTracker::IBeamElement
Definition: FPTracker/FPTracker/IBeamElement.h:23
FPTracker::operator<<
std::ostream & operator<<(std::ostream &os, const Beamline &bl)
Definition: FPTracker/src/Beamline.cxx:163
FPTracker::Collimator::position
Point position() const
Definition: FPTracker/src/Collimator.cxx:42
Point.h
FPTracker::Collimator::label
std::string label() const
Definition: FPTracker/src/Collimator.cxx:44
FPTracker::Collimator::m_xaperture
double m_xaperture
Definition: FPTracker/FPTracker/Collimator.h:47
FPTracker::Collimator::Collimator
Collimator(double, double, Side)
Definition: FPTracker/src/Collimator.cxx:20
FPTracker::Collimator::m_side
Side m_side
Definition: FPTracker/FPTracker/Collimator.h:50
FPTracker::Collimator::isOutOfAperture
bool isOutOfAperture(const TransversePoint &) const
Definition: FPTracker/src/Collimator.cxx:59
FPTracker::Collimator::isEndElement
bool isEndElement() const
Definition: FPTracker/src/Collimator.cxx:57
FPTracker::Collimator::Container_t
std::vector< Ptr_t > Container_t
Definition: FPTracker/FPTracker/Collimator.h:41
FPTracker::Collimator::track
void track(IParticle &) const
Definition: FPTracker/src/Collimator.cxx:64
FPTrackerConstants.h
FPTracker::Collimator::m_xouter
double m_xouter
Definition: FPTracker/FPTracker/Collimator.h:48
FPTracker::Collimator::m_position
Point m_position
Definition: FPTracker/FPTracker/Collimator.h:46
FPTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: FPTracker/FPTracker/IBeamElement.h:40
FPTracker::Collimator::m_xinner
double m_xinner
Definition: FPTracker/FPTracker/Collimator.h:49
Side
Definition: WaferTree.h:36
FPTracker::Collimator::rearFace
double rearFace() const
Definition: FPTracker/src/Collimator.cxx:39
FPTracker::Collimator::str
std::string str() const
Definition: FPTracker/src/Collimator.cxx:46
FPTracker::Collimator::s_label
static const std::string s_label
Definition: FPTracker/FPTracker/Collimator.h:45
FPTracker::Collimator
Definition: FPTracker/FPTracker/Collimator.h:20
FPTracker::Collimator::zsignedpos
double zsignedpos() const
Definition: FPTracker/src/Collimator.cxx:41
FPTracker::Collimator::frontFace
double frontFace() const
Definition: FPTracker/src/Collimator.cxx:38
FPTracker::Point
Definition: FPTracker/FPTracker/Point.h:14
FPTracker::Collimator::clone
IBeamElement::ConstPtr_t clone() const
Definition: FPTracker/src/Collimator.cxx:33
FPTracker::Collimator::side
Side side() const
Definition: FPTracker/src/Collimator.cxx:43
IBeamElement.h
FPTracker::Collimator::zabspos
double zabspos() const
Definition: FPTracker/src/Collimator.cxx:40
FPTracker::Collimator::Ptr_t
std::shared_ptr< Collimator > Ptr_t
Definition: FPTracker/FPTracker/Collimator.h:40
FPTracker
Definition: FPTracker/FPTracker/Beamline.h:12
FPTracker::IParticle
Definition: ForwardDetectors/FPTracker/FPTracker/IParticle.h:17
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
FPTracker::TransversePoint
Definition: FPTracker/FPTracker/TransversePoint.h:12
FPTracker::Collimator::calibrate
void calibrate(IParticle &)
Definition: FPTracker/src/Collimator.cxx:78