ATLAS Offline Software
Loading...
Searching...
No Matches
Solenoid.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5// UNFINISHED
6// UNFINISHED
7// UNFINISHED
8//
9//
10// #include "FPTracker/SolenoidElement.h"
11// #include "FPTracker/Particle.h"
12// #include <sstream>
13// #include <cmath>
14// #include <iostream>
15//
16// namespace FPTracker{
17//
18// SolenoidElement::SolenoidElement(double front,
19// double back,
20// const TransversePoint& beamAxis,
21// Side side,
22// double C,
23// double S,
24// double k
25// ):
26//
27// m_frontFace(front), m_rearFace(back),
28// m_signedLength(m_rearFace-m_frontFace),
29// m_absLength(std::fabs(m_signedLength)),
30// m_pos( beamAxis.x(), beamAxis.y(), front+0.5*m_signedLength),
31// m_label("Solenoid"), m_side(side),
32// m_t00(C*C),
33// m_t01(S.C/k),
34// m_t02(SC),
35// m_t03(S*S/k),
36// m_t10(-k*S*C),
37// m_t11(C*C),
38// m_t12(-k*S*S),
39// m_t13(S*C),
40// m_t20(-S*C),
41// m_t21(-S*S/k),
42// m_t22(C*2),
43// m_t23(S*C/k),
44// m_t30(k*S*S),
45// m_t31(-S*C),
46// m_t32(-k*S*C),
47// m_t33(C*C)
48// {
49// }
50//
51// SolenoidElement::SolenoidElement(const IBeamElement::ConstPtr_t& p, const IBeamElement::ConstPtr_t& c):
52// m_frontFace(p->rearFace()), m_rearFace(c->frontFace()), m_signedLength(m_rearFace-m_frontFace),
53// m_absLength(std::fabs(m_signedLength)),
54// m_pos( p->position() ),
55// m_label("Solenoid"), m_side(c->side()){
56// }
57//
58// IBeamElement::ConstPtr_t SolenoidElement::clone() const{
59// IBeamElement::ConstPtr_t pbe(new SolenoidElement(*this));
60// return pbe;
61// }
62//
63// double SolenoidElement::frontFace() const {return m_frontFace;}
64// double SolenoidElement::rearFace() const {return m_rearFace;}
65// std::string SolenoidElement::label() const {return m_label;}
66// double SolenoidElement::zsignedpos() const {return m_frontFace + /*0.5* */m_signedLength;}//Added dpelikan @ 110308
67// double SolenoidElement::zabspos() const {return std::fabs(this->zsignedpos());}
68// Point SolenoidElement::position() const {return m_pos;}
69// Side SolenoidElement::side() const {return m_side;}
70// bool SolenoidElement::isEndElement() const {return false;}
71//
72// void SolenoidElement::track(IParticle& particle) const
73// {
74// //Added dpelikan @ 110308
75// double TransLength=m_absLength-(std::abs(particle.position().z())-std::abs(m_frontFace));
76// //std::cout<<m_absLength<<"\t"<<TransLength<<std::endl;
77//
78// particle.setBeamCoordinateShift(this);
79//
80//
81//
82// //particle.position() += m_absLength*particle.direction();
83// particle.position() += TransLength*particle.direction();
84// particle.position()[2] = m_rearFace;
85//
86// }
87//
88// void SolenoidElement::calibrate(IParticle& particle) const
89// {
90// return this->track(particle);
91// }
92//
93// std::string SolenoidElement::str() const {
94//
95// std::ostringstream ost;
96// ost <<" \n\n-- SolenoidElement --\n"
97// << "frontFace " << m_frontFace <<'\n'
98// << "rearFace " << m_rearFace <<'\n';
99// return ost.str();
100// }
101//
102// SolenoidElement::~SolenoidElement(){}
103// /*
104// double SolenoidElement::rearFace() const {return 0.;}
105// double SolenoidElement::frontFace() const {return 0.;}
106// std::string SolenoidElement::label() const {return "";}
107// double SolenoidElement::zsignedpos() const {return 0.;}
108// double SolenoidElement::zabspos() const {return 0.;}
109// Point SolenoidElement::position() const {return Point(0., 0., 0.);}
110// int SolenoidElement::side() const {return 0;}
111// bool SolenoidElement::isEndElement() const {return false;}
112// void SolenoidElement::track(Particle& particle) const {}
113//
114// std::string SolenoidElement::str() const {return " ";}
115// */
116//
117// }
118//