ATLAS Offline Software
SolenoidElement.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
9 #ifndef FPTACKER_SOLENOIDELEMENT_H
10 #define FPTACKER_SOLENOIDELEMENT_H
11 
12 #include "IBeamElement.h"
13 #include "FPTrackerConstants.h"
14 #include "Point.h"
15 #include <ostream>
16 
17 /*
18  * simumation of the efect of the solenoid for FPTracker. PS 13/07/2011
19  * using inputfrom Daniel Pelikan
20  *
21  * Daniel gives the transfer matrix as:
22  *
23  * x | | C^2 S.C/k SC S^2/k 0 0 | |x_0 |
24  * x' | |-kSC C^2 -kS^2 SC 0 0 | |x'_0 |
25  * y | = | -SC -S^2/k C^2 SC/k 0 0 | |y_0 |
26  * y' | |kS^2 -SC -kSC C^2 0 0 | |y_0' |
27  * delta_l | | 0 0 0 0 1 l/g^2 | |delta_l0 |
28  * Delp/p | | 0 0 0 0 0 1 | |Delp_0/p_0 |
29  *
30  * FPTracker calculates x, x', y, y' from x_0, x_0', y_0, y_0'
31  * so needs the numbers C, S, k calculate the matrix elements
32  * which will be stored as t_ij.
33  */
34 
35 namespace FPTracker{
36  class IParticle;
37  class IBender;
38  class Point;
39  class TransversePoint;
41 
42  public:
43 
44  SolenoidElement(double front,
45  double back,
46  const TransversePoint& beamAxis,
47  Side side,
48  double C,
49  double S,
50  double k);
54  );
55 
57 
59  double frontFace() const;
60  double rearFace() const;
61  double zabspos() const;
62  double zsignedpos() const;
63  Point position() const;
64  Side side() const;
65 
66  bool isEndElement() const;
67  std::string str() const;
68 
69  std::string label() const;
70 
71  void track(IParticle&) const;
73 
74  typedef std::shared_ptr< const SolenoidElement > ConstPtr_t;
75 
76  private:
77 
78  double m_frontFace;
79  double m_rearFace;
81  double m_absLength;
83  std::string m_label;
85 
86  double t_00;
87  double t_01;
88  double t_02;
89  double t_03;
90 
91  double t_10;
92  double t_11;
93  double t_12;
94  double t_13;
95 
96  double t_20;
97  double t_21;
98  double t_22;
99  double t_23;
100 
101  double t_30;
102  double t_31;
103  double t_32;
104  double t_33;
105 
106  };
107 }
108 #endif
FPTracker::IBeamElement
Definition: FPTracker/FPTracker/IBeamElement.h:23
FPTracker::SolenoidElement::position
Point position() const
FPTracker::SolenoidElement::ConstPtr_t
std::shared_ptr< const SolenoidElement > ConstPtr_t
Definition: SolenoidElement.h:74
FPTracker::SolenoidElement::t_01
double t_01
Definition: SolenoidElement.h:87
FPTracker::SolenoidElement
Definition: SolenoidElement.h:40
FPTracker::SolenoidElement::t_22
double t_22
Definition: SolenoidElement.h:98
FPTracker::SolenoidElement::zsignedpos
double zsignedpos() const
FPTracker::SolenoidElement::SolenoidElement
SolenoidElement(const IBeamElement::ConstPtr_t &, const IBeamElement::ConstPtr_t &)
FPTracker::SolenoidElement::t_30
double t_30
Definition: SolenoidElement.h:101
FPTracker::SolenoidElement::frontFace
double frontFace() const
FPTracker::SolenoidElement::isEndElement
bool isEndElement() const
FPTracker::SolenoidElement::track
void track(IParticle &) const
FPTracker::SolenoidElement::label
std::string label() const
Point.h
FPTracker::SolenoidElement::t_21
double t_21
Definition: SolenoidElement.h:97
FPTracker::SolenoidElement::t_20
double t_20
Definition: SolenoidElement.h:96
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
FPTracker::SolenoidElement::m_absLength
double m_absLength
Definition: SolenoidElement.h:81
FPTracker::SolenoidElement::t_11
double t_11
Definition: SolenoidElement.h:92
FPTracker::SolenoidElement::clone
IBeamElement::ConstPtr_t clone() const
FPTracker::SolenoidElement::t_23
double t_23
Definition: SolenoidElement.h:99
FPTracker::SolenoidElement::calibrate
void calibrate(IParticle &)
FPTracker::SolenoidElement::m_frontFace
double m_frontFace
Definition: SolenoidElement.h:78
FPTrackerConstants.h
FPTracker::SolenoidElement::SolenoidElement
SolenoidElement(double front, double back, const TransversePoint &beamAxis, Side side, double C, double S, double k)
FPTracker::SolenoidElement::t_03
double t_03
Definition: SolenoidElement.h:89
FPTracker::IBeamElement::ConstPtr_t
std::shared_ptr< const IBeamElement > ConstPtr_t
Definition: FPTracker/FPTracker/IBeamElement.h:40
FPTracker::SolenoidElement::m_pos
Point m_pos
Definition: SolenoidElement.h:82
FPTracker::SolenoidElement::rearFace
double rearFace() const
Side
Definition: WaferTree.h:36
FPTracker::SolenoidElement::t_33
double t_33
Definition: SolenoidElement.h:104
FPTracker::SolenoidElement::m_label
std::string m_label
Definition: SolenoidElement.h:83
FPTracker::SolenoidElement::t_02
double t_02
Definition: SolenoidElement.h:88
offline_EventStorage_v5::UNFINISHED
@ UNFINISHED
Definition: v5_DataWriter.h:42
FPTracker::SolenoidElement::t_00
double t_00
Definition: SolenoidElement.h:86
FPTracker::SolenoidElement::t_12
double t_12
Definition: SolenoidElement.h:93
FPTracker::SolenoidElement::zabspos
double zabspos() const
ChargedTracksWeightFilter::Spline::Point
Linear spline representation of a function used to calculate weights.
Definition: ChargedTracksWeightFilter.h:28
FPTracker::SolenoidElement::side
Side side() const
FPTracker::SolenoidElement::m_rearFace
double m_rearFace
Definition: SolenoidElement.h:79
FPTracker::Point
Definition: FPTracker/FPTracker/Point.h:14
FPTracker::SolenoidElement::~SolenoidElement
~SolenoidElement()
FPTracker::SolenoidElement::m_signedLength
double m_signedLength
Definition: SolenoidElement.h:80
IBeamElement.h
FPTracker::SolenoidElement::m_side
Side m_side
Definition: SolenoidElement.h:84
FPTracker
Definition: FPTracker/FPTracker/Beamline.h:12
FPTracker::SolenoidElement::t_32
double t_32
Definition: SolenoidElement.h:103
FPTracker::SolenoidElement::t_31
double t_31
Definition: SolenoidElement.h:102
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::SolenoidElement::t_13
double t_13
Definition: SolenoidElement.h:94
FPTracker::SolenoidElement::t_10
double t_10
Definition: SolenoidElement.h:91
fitman.k
k
Definition: fitman.py:528
FPTracker::SolenoidElement::str
std::string str() const