ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
ALFA
ALFA_BeamTransport
src
ALFA_BeamTrack.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
ALFA_BeamTrack.h
"
6
7
//Athena Stuff
8
#include "GaudiKernel/MsgStream.h"
9
#include "
AthenaBaseComps/AthAlgorithm.h
"
10
11
//FPTracker stuff
12
#include "
FPTracker/setupBeamline.h
"
13
#include "
FPTracker/Beamline.h
"
14
#include "
FPTracker/Particle.h
"
15
#include "
FPTracker/getConfigFile.h
"
16
#include "
FPTracker/getMagnetConfigFiles.h
"
17
#include "
FPTracker/getAlfaMagnetConfigFiles.h
"
18
#include "
FPTracker/ConfigData.h
"
19
#include "
FPTracker/FPTrackerConstants.h
"
20
#include "
FPTracker/Point.h
"
21
22
23
#include <memory>
24
#include <iostream>
25
#include <utility>
26
27
28
int
ALFA_BeamTrack::initialize
(
const
FPConfig
&ConfigValues){
29
30
m_ConfDir
= ConfigValues.
ConfDir
;
31
m_AlfaTwiss
= ConfigValues.
UseALFA
;
32
33
34
//initialisation of beampipes
35
if
(
m_AlfaTwiss
) {std::cout<<
"Will use alfa twiss files"
<<std::endl;}
36
37
38
/*
39
40
boost::shared_ptr< std::ifstream > p_confFile;
41
p_confFile = FPTracker::getConfigFile(m_ConfDir, "FPData.txt") ;
42
m_ConfigData = FPTracker::readConfigData(p_confFile);
43
44
//SetPosition of RP in meter
45
46
//m_ConfigData.setPlane(ConfigValues.RPDistance);
47
48
49
ConfigData configData;
50
if( !readConfigData(p_confFile, configData) )
51
{
52
std::cout<<"fatal error reading config data\n";
53
return 1;
54
}
55
56
57
*/
58
59
//Set Configuration parameters of FPTracker library
60
FPTracker::ConfigData
ConfigData;
61
62
63
ConfigData.
IP
=ConfigValues.
IP
;
64
ConfigData.
useaper
=ConfigValues.
useaper
;
65
ConfigData.
apermb
=ConfigValues.
apermb
;
66
ConfigData.
xcol1
=ConfigValues.
xcol1
;
67
ConfigData.
xcol2
=ConfigValues.
xcol2
;
68
ConfigData.
absZMagMax
=ConfigValues.
absZMagMax
;
69
ConfigData.
endMarker
=ConfigValues.
RPDistance
;
70
ConfigData.
setpbeam
(ConfigValues.
pbeam0
);
71
72
/*
73
std::cout<<ConfigData.IP<<std::endl;
74
std::cout<<ConfigData.useaper<<std::endl;
75
std::cout<<ConfigData.apermb<<std::endl;
76
std::cout<<ConfigData.xcol1<<std::endl;
77
std::cout<<ConfigData.xcol2<<std::endl;
78
std::cout<<ConfigData.absZMagMax<<std::endl;
79
std::cout<<ConfigData.endMarker<<std::endl;
80
std::cout<<ConfigData.pbeam0<<std::endl;
81
std::cout<<ConfigData.brho<<std::endl;*/
82
83
84
85
86
87
88
89
90
91
m_ip
= ConfigData.
IP
;
92
m_Magver
= 3;
93
94
m_Side
=
FPTracker::beam1
;
95
m_Magfile
=
m_AlfaTwiss
?
96
FPTracker::getAlfaMagnetConfigFiles
(
m_ConfDir
,
m_Side
):
97
FPTracker::getMagnetConfigFiles
(
m_ConfDir
,
m_ip
,
m_Magver
,
m_Side
);
98
m_Beamline_1
=
FPTracker::setupBeamline
(ConfigData,
m_Side
,
m_Magver
,
m_Magfile
);
99
std::cout<<
" beamline_1 start "
<<
'\n'
;
100
std::cout<<
m_Beamline_1
;
101
std::cout<<
" beamline_1 end "
<<
"\n\n"
;
102
103
m_Side
=
FPTracker::beam2
;
104
m_Magfile
=
m_AlfaTwiss
?
105
FPTracker::getAlfaMagnetConfigFiles
(
m_ConfDir
,
m_Side
):
106
FPTracker::getMagnetConfigFiles
(
m_ConfDir
,
m_ip
,
m_Magver
,
m_Side
);
107
m_Beamline_2
= setupBeamline(ConfigData,
m_Side
,
m_Magver
,
m_Magfile
);
108
109
std::cout<<
" beamline_2 start "
<<
'\n'
;
110
std::cout<<
m_Beamline_2
;
111
std::cout<<
" beamline_2 end "
<<
"\n\n"
;
112
113
return
true
;
114
}
115
116
//calculates Position and Momentum at RP
117
int
ALFA_BeamTrack::CalculatePosRP
(
FPTracker::Particle
particle){
118
119
FPTracker::Particle
Particle=std::move(particle);
120
FPTracker::Point
lost_markerMom(-99,-99,-99);
121
122
123
std::cout<<
"fpTracker: "
<<Particle<<std::endl;
124
Particle.direction().z()>0. ?
m_Beamline_1
.track(Particle):
m_Beamline_2
.track(Particle);
125
std::cout<<
"fpTracker: "
<<Particle<<std::endl;
126
127
//m_PosParticleRP=Particle.position(); //old version vith 97mm shift
128
m_PosParticleRP
=Particle.positionRelBeam();
//version without shift
129
130
FPTracker::Point
momentum( Particle.direction().x()*Particle.momentum(),
131
Particle.direction().y()*Particle.momentum(),
132
Particle.direction().z()*Particle.momentum());
133
134
m_MomParticleRP
=momentum;
135
136
137
if
(Particle.isOutOfAperture())
138
{
139
//FPTracker::Point lost_markerPos(-99,-99,Particle.position().z());// old version with shift
140
FPTracker::Point
lost_markerPos(-99,-99,Particle.positionRelBeam().z());
141
std::cout<<
"Particle got lost"
<<std::endl;
142
//m_PosParticleRP=lost_marker;
143
//write lost particle with -99 as maker in x and yposition z position ist the place where particle got lost
144
m_PosParticleRP
=lost_markerPos;
145
146
m_MomParticleRP
=lost_markerMom;
147
}
148
149
150
return
true
;
151
}
152
153
//returns particle position
154
const
FPTracker::Point
&
ALFA_BeamTrack::PosRP
(){
155
return
m_PosParticleRP
;
156
}
157
158
// returns momentum of particle
159
const
FPTracker::Point
&
ALFA_BeamTrack::MomRP
(){
160
return
m_MomParticleRP
;
161
}
162
163
ALFA_BeamTrack.h
AthAlgorithm.h
FPTrackerConstants.h
Beamline.h
ConfigData.h
Point.h
Particle.h
ALFA_BeamTrack::PosRP
const FPTracker::Point & PosRP()
Gives Back Position.
Definition
ALFA_BeamTrack.cxx:154
ALFA_BeamTrack::m_Side
FPTracker::Side m_Side
Definition
ALFA_BeamTrack.h:53
ALFA_BeamTrack::m_Magfile
std::shared_ptr< std::ifstream > m_Magfile
Definition
ALFA_BeamTrack.h:54
ALFA_BeamTrack::m_Beamline_2
FPTracker::Beamline m_Beamline_2
Definition
ALFA_BeamTrack.h:61
ALFA_BeamTrack::MomRP
const FPTracker::Point & MomRP()
gives back Momentum
Definition
ALFA_BeamTrack.cxx:159
ALFA_BeamTrack::m_Magver
int m_Magver
Definition
ALFA_BeamTrack.h:51
ALFA_BeamTrack::m_PosParticleRP
FPTracker::Point m_PosParticleRP
Definition
ALFA_BeamTrack.h:57
ALFA_BeamTrack::m_Beamline_1
FPTracker::Beamline m_Beamline_1
Definition
ALFA_BeamTrack.h:60
ALFA_BeamTrack::initialize
int initialize(const FPConfig &ConfigValues)
Definition
ALFA_BeamTrack.cxx:28
ALFA_BeamTrack::m_ip
int m_ip
Definition
ALFA_BeamTrack.h:50
ALFA_BeamTrack::CalculatePosRP
int CalculatePosRP(FPTracker::Particle particle)
calculates the particle position and momentum at RP run first CalculatePosRP() then posRP() and momRP...
Definition
ALFA_BeamTrack.cxx:117
ALFA_BeamTrack::m_ConfDir
std::string m_ConfDir
Definition
ALFA_BeamTrack.h:47
ALFA_BeamTrack::m_AlfaTwiss
bool m_AlfaTwiss
Definition
ALFA_BeamTrack.h:49
ALFA_BeamTrack::m_MomParticleRP
FPTracker::Point m_MomParticleRP
Definition
ALFA_BeamTrack.h:58
FPTracker::ConfigData
Definition
FPTracker/FPTracker/ConfigData.h:9
FPTracker::ConfigData::endMarker
float endMarker
Definition
FPTracker/FPTracker/ConfigData.h:21
FPTracker::ConfigData::IP
int IP
Definition
FPTracker/FPTracker/ConfigData.h:12
FPTracker::ConfigData::xcol1
double xcol1
Definition
FPTracker/FPTracker/ConfigData.h:16
FPTracker::ConfigData::xcol2
double xcol2
Definition
FPTracker/FPTracker/ConfigData.h:17
FPTracker::ConfigData::setpbeam
void setpbeam(double)
Definition
FPTracker/src/ConfigData.cxx:37
FPTracker::ConfigData::apermb
double apermb
Definition
FPTracker/FPTracker/ConfigData.h:15
FPTracker::ConfigData::useaper
bool useaper
Definition
FPTracker/FPTracker/ConfigData.h:14
FPTracker::ConfigData::absZMagMax
float absZMagMax
Definition
FPTracker/FPTracker/ConfigData.h:23
FPTracker::Particle
Definition
ForwardDetectors/FPTracker/FPTracker/Particle.h:19
FPTracker::Point
Definition
FPTracker/FPTracker/Point.h:14
getAlfaMagnetConfigFiles.h
getConfigFile.h
getMagnetConfigFiles.h
FPTracker::getAlfaMagnetConfigFiles
std::shared_ptr< std::ifstream > getAlfaMagnetConfigFiles(const std::string &dir, const Side &side)
Definition
getAlfaMagnetConfigFiles.cxx:14
FPTracker::getMagnetConfigFiles
std::shared_ptr< std::ifstream > getMagnetConfigFiles(const std::string &dir, int IP, int magVer, const Side &side)
Definition
getMagnetConfigFiles.cxx:51
FPTracker::setupBeamline
Beamline setupBeamline(const ConfigData &, const Side &, int magver, std::shared_ptr< std::ifstream >)
Definition
setupBeamline.cxx:25
FPTracker::beam2
@ beam2
Definition
FPTrackerConstants.h:12
FPTracker::beam1
@ beam1
Definition
FPTrackerConstants.h:12
setupBeamline.h
FPConfig
Definition
ALFA_FPConfig.h:10
FPConfig::useaper
bool useaper
Definition
ALFA_FPConfig.h:19
FPConfig::apermb
double apermb
Definition
ALFA_FPConfig.h:20
FPConfig::IP
int IP
Definition
ALFA_FPConfig.h:17
FPConfig::xcol2
double xcol2
Definition
ALFA_FPConfig.h:22
FPConfig::RPDistance
float RPDistance
Definition
ALFA_FPConfig.h:25
FPConfig::ConfDir
std::string ConfDir
Definition
ALFA_FPConfig.h:13
FPConfig::absZMagMax
float absZMagMax
Definition
ALFA_FPConfig.h:28
FPConfig::UseALFA
bool UseALFA
Definition
ALFA_FPConfig.h:12
FPConfig::pbeam0
double pbeam0
Definition
ALFA_FPConfig.h:23
FPConfig::xcol1
double xcol1
Definition
ALFA_FPConfig.h:21
Generated on
for ATLAS Offline Software by
1.17.0