ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
FPTracker::QuadrupoleBender Class Reference

#include <QuadrupoleBender.h>

Inheritance diagram for FPTracker::QuadrupoleBender:
Collaboration diagram for FPTracker::QuadrupoleBender:

Public Types

typedef std::shared_ptr< IBenderConstPtr_t
 

Public Member Functions

 QuadrupoleBender (IQuadFocuser::Ptr_t focuser, double magnetLength, double magnetStrength, int side)
 
void bend (IParticle &) const
 
std::string label () const
 

Private Member Functions

void swap (QuadrupoleBender &)
 

Private Attributes

IQuadFocuser::Ptr_t m_focuser
 
double m_length
 
double m_bendConstant
 
double m_dside
 

Static Private Attributes

static const std::string s_label = "QuadBender"
 

Detailed Description

Definition at line 16 of file QuadrupoleBender.h.

Member Typedef Documentation

◆ ConstPtr_t

typedef std::shared_ptr< IBender > FPTracker::IBender::ConstPtr_t
inherited

Definition at line 18 of file FPTracker/FPTracker/IBender.h.

Constructor & Destructor Documentation

◆ QuadrupoleBender()

FPTracker::QuadrupoleBender::QuadrupoleBender ( IQuadFocuser::Ptr_t  focuser,
double  magnetLength,
double  magnetStrength,
int  side 
)

Definition at line 15 of file QuadrupoleBender.cxx.

18  :
19  m_focuser(std::move(focuser)),
20  m_length(magnetLength),
23  }

Member Function Documentation

◆ bend()

void FPTracker::QuadrupoleBender::bend ( IParticle particle) const
virtual

Implements FPTracker::IBender.

Definition at line 34 of file QuadrupoleBender.cxx.

34  {
35  // calculates new x, y coordinates and direction after deflection
36 
37  //particle is at magnet front face. This method moves it to the rear face.
38 
39 
40  double qk = std::sqrt(m_bendConstant/particle.momentum()) ; // ---- basic formula is m Te GeV
41  //qk = 0.2997925* Magnet_strength[magnet][side]/p ;
42 
43 
44  Point& direction = particle.direction();
45  //
46  double qkl = qk * m_length*m_dside ;
47  double qkc = qk *direction[2] ;
48 
49  m_focuser->focus(qk, qkl, qkc, particle.displacement(), direction);
50 
51  particle.updatePositionFromDisplacement(TransversePoint(m_focuser->xe(), m_focuser->ye()));
52 
53  direction[0] = m_focuser->xae();
54  direction[1] = m_focuser->yae();
55 
56  direction[2] = std::sqrt(1. - (direction[0]*direction[0]) - (direction[1]*direction[1]))*m_dside;
57  direction[0] = direction[0]*direction[2] ;
58  direction[1] = direction[1]*direction[2] ;
59 
60  }

◆ label()

std::string FPTracker::QuadrupoleBender::label ( ) const
virtual

Implements FPTracker::IBender.

Definition at line 64 of file QuadrupoleBender.cxx.

64  {
65  return s_label+":"+m_focuser->label();
66  }

◆ swap()

void FPTracker::QuadrupoleBender::swap ( QuadrupoleBender other)
private

Definition at line 26 of file QuadrupoleBender.cxx.

26  {
27  std::swap(m_focuser, other.m_focuser);
28  std::swap(m_length, other.m_length);
29  std::swap(m_bendConstant, other.m_bendConstant);
30  std::swap(m_dside, other.m_dside);
31  }

Member Data Documentation

◆ m_bendConstant

double FPTracker::QuadrupoleBender::m_bendConstant
private

Definition at line 33 of file QuadrupoleBender.h.

◆ m_dside

double FPTracker::QuadrupoleBender::m_dside
private

Definition at line 34 of file QuadrupoleBender.h.

◆ m_focuser

IQuadFocuser::Ptr_t FPTracker::QuadrupoleBender::m_focuser
private

Definition at line 31 of file QuadrupoleBender.h.

◆ m_length

double FPTracker::QuadrupoleBender::m_length
private

Definition at line 32 of file QuadrupoleBender.h.

◆ s_label

const std::string FPTracker::QuadrupoleBender::s_label = "QuadBender"
staticprivate

Definition at line 29 of file QuadrupoleBender.h.


The documentation for this class was generated from the following files:
FPTracker::QuadrupoleBender::m_focuser
IQuadFocuser::Ptr_t m_focuser
Definition: QuadrupoleBender.h:31
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
FPTracker::QuadrupoleBender::m_bendConstant
double m_bendConstant
Definition: QuadrupoleBender.h:33
FPTracker::QuadrupoleBender::s_label
static const std::string s_label
Definition: QuadrupoleBender.h:29
FPTracker::FPTrackerConstants::aside
static const double aside[2]
Definition: FPTrackerConstants.h:16
TRT::Hit::side
@ side
Definition: HitInfo.h:83
FPTracker::QuadrupoleBender::m_dside
double m_dside
Definition: QuadrupoleBender.h:34
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
FPTracker::FPTrackerConstants::qkConst
static const double qkConst
Definition: FPTrackerConstants.h:17
ChargedTracksWeightFilter::Spline::Point
Linear spline representation of a function used to calculate weights.
Definition: ChargedTracksWeightFilter.h:28
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
FPTracker::QuadrupoleBender::m_length
double m_length
Definition: QuadrupoleBender.h:32
FPTracker::magnetStrength
double magnetStrength(int type, double length, double strength, double Brho)
Definition: magnetStrength.cxx:8