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 15 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 19 of file QuadrupoleBender.cxx.

22  :
23  m_focuser(focuser),
24  m_length(magnetLength),
27  }

Member Function Documentation

◆ bend()

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

Implements FPTracker::IBender.

Definition at line 38 of file QuadrupoleBender.cxx.

38  {
39  // calcualtes new x, y coordinates and direction after deflection
40 
41  //particle is at magnet front face. This method moves it to the rear face.
42 
43 
44  double qk = std::sqrt(m_bendConstant/particle.momentum()) ; // ---- basic formula is m Te GeV
45  //qk = 0.2997925* Magnet_strength[magnet][side]/p ;
46 
47 
48  Point& direction = particle.direction();
49  //
50  double qkl = qk * m_length*m_dside ;
51  double qkc = qk *direction[2] ;
52 
53  m_focuser->focus(qk, qkl, qkc, particle.displacement(), direction);
54 
55 
56  /*
57  std::cout <<std::setprecision(8)
58  <<" quad xe " << m_focuser->xe()
59  <<" quad xae " << m_focuser->xae()
60  <<" quad ye " << m_focuser->ye()
61  <<" quad yae " << m_focuser->yae()<<'\n';
62  */
63 
64  particle.updatePositionFromDisplacement(TransversePoint(m_focuser->xe(), m_focuser->ye()));
65 
66  direction[0] = m_focuser->xae();
67  direction[1] = m_focuser->yae();
68 
69  direction[2] = std::sqrt(1. - (direction[0]*direction[0]) - (direction[1]*direction[1]))*m_dside;
70  direction[0] = direction[0]*direction[2] ;
71  direction[1] = direction[1]*direction[2] ;
72 
73  }

◆ label()

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

Implements FPTracker::IBender.

Definition at line 77 of file QuadrupoleBender.cxx.

77  {
78  return s_label+":"+m_focuser->label();
79  }

◆ swap()

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

Definition at line 30 of file QuadrupoleBender.cxx.

30  {
31  std::swap(m_focuser, other.m_focuser);
32  std::swap(m_length, other.m_length);
33  std::swap(m_bendConstant, other.m_bendConstant);
34  std::swap(m_dside, other.m_dside);
35  }

Member Data Documentation

◆ m_bendConstant

double FPTracker::QuadrupoleBender::m_bendConstant
private

Definition at line 32 of file QuadrupoleBender.h.

◆ m_dside

double FPTracker::QuadrupoleBender::m_dside
private

Definition at line 33 of file QuadrupoleBender.h.

◆ m_focuser

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

Definition at line 30 of file QuadrupoleBender.h.

◆ m_length

double FPTracker::QuadrupoleBender::m_length
private

Definition at line 31 of file QuadrupoleBender.h.

◆ s_label

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

Definition at line 28 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:30
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
FPTracker::QuadrupoleBender::m_bendConstant
double m_bendConstant
Definition: QuadrupoleBender.h:32
FPTracker::QuadrupoleBender::s_label
static const std::string s_label
Definition: QuadrupoleBender.h:28
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:33
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:31
FPTracker::magnetStrength
double magnetStrength(int type, double length, double strength, double Brho)
Definition: magnetStrength.cxx:8