1010// or submit itself to any jurisdiction.
1111
1212#include < vector>
13+ #include < string>
1314#include " TMath.h"
1415#include " TMatrixD.h"
1516#include " TRandom.h"
@@ -60,7 +61,7 @@ void FastTracker::AddLayer(TString name, float r, float z, float x0, float xrho,
6061 layers.push_back (newLayer);
6162}
6263
63- DetLayer FastTracker::GetLayer (int layer, bool ignoreBarrelLayers)
64+ DetLayer FastTracker::GetLayer (int layer, bool ignoreBarrelLayers) const
6465{
6566 int layerIdx = layer;
6667 if (ignoreBarrelLayers) {
@@ -74,6 +75,18 @@ DetLayer FastTracker::GetLayer(int layer, bool ignoreBarrelLayers)
7475 return layers[layerIdx];
7576}
7677
78+ int FastTracker::GetLayerIndex (std::string name) const
79+ {
80+ int i = 0 ;
81+ for (const auto & layer : layers) {
82+ if (layer.name == name) {
83+ return i;
84+ }
85+ i++;
86+ }
87+ return -1 ;
88+ }
89+
7790void FastTracker::Print ()
7891{
7992 // print out layer setup
@@ -100,18 +113,18 @@ void FastTracker::AddSiliconALICE3v4(std::vector<float> pixelResolution)
100113 float resRPhiOT = pixelResolution[2 ];
101114 float resZOT = pixelResolution[3 ];
102115
103- layers. push_back (DetLayer{ " bpipe0" , 0.48 , 250 , 0.00042 , 2.772e-02 , 0 .0f , 0 .0f , 0 .0f , 0 } ); // 150 mum Be
104- layers. push_back (DetLayer{ " ddd0" , 0.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
105- layers. push_back (DetLayer{ " ddd1" , 1.2 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
106- layers. push_back (DetLayer{ " ddd2" , 2.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
107- layers. push_back (DetLayer{ " bpipe1" , 5.7 , 250 , 0.0014 , 9.24e-02 , 0 .0f , 0 .0f , 0 .0f , 0 } ); // 500 mum Be
108- layers. push_back (DetLayer{ " ddd3" , 7 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
109- layers. push_back (DetLayer{ " ddd4" , 10 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
110- layers. push_back (DetLayer{ " ddd5" , 13 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
111- layers. push_back (DetLayer{ " ddd6" , 16 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
112- layers. push_back (DetLayer{ " ddd7" , 25 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
113- layers. push_back (DetLayer{ " ddd8" , 40 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
114- layers. push_back (DetLayer{ " ddd9" , 45 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
116+ AddLayer ( " bpipe0" , 0.48 , 250 , 0.00042 , 2.772e-02 , 0 .0f , 0 .0f , 0 .0f , 0 ); // 150 mum Be
117+ AddLayer ( " ddd0" , 0.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
118+ AddLayer ( " ddd1" , 1.2 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
119+ AddLayer ( " ddd2" , 2.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
120+ AddLayer ( " bpipe1" , 5.7 , 250 , 0.0014 , 9.24e-02 , 0 .0f , 0 .0f , 0 .0f , 0 ); // 500 mum Be
121+ AddLayer ( " ddd3" , 7 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
122+ AddLayer ( " ddd4" , 10 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
123+ AddLayer ( " ddd5" , 13 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
124+ AddLayer ( " ddd6" , 16 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
125+ AddLayer ( " ddd7" , 25 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
126+ AddLayer ( " ddd8" , 40 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
127+ AddLayer ( " ddd9" , 45 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
115128}
116129
117130void FastTracker::AddSiliconALICE3v2 (std::vector<float > pixelResolution)
@@ -128,19 +141,19 @@ void FastTracker::AddSiliconALICE3v2(std::vector<float> pixelResolution)
128141 float resRPhiOT = pixelResolution[2 ];
129142 float resZOT = pixelResolution[3 ];
130143
131- layers. push_back (DetLayer{ " bpipe0" , 0.48 , 250 , 0.00042 , 2.772e-02 , 0 .0f , 0 .0f , 0 .0f , 0 } ); // 150 mum Be
132- layers. push_back (DetLayer{ " B00" , 0.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
133- layers. push_back (DetLayer{ " B01" , 1.2 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
134- layers. push_back (DetLayer{ " B02" , 2.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 } );
135- layers. push_back (DetLayer{ " bpipe1" , 3.7 , 250 , 0.0014 , 9.24e-02 , 0 .0f , 0 .0f , 0 .0f , 0 } ); // 500 mum Be
136- layers. push_back (DetLayer{ " B03" , 3.75 , 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
137- layers. push_back (DetLayer{ " B04" , 7 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
138- layers. push_back (DetLayer{ " B05" , 12 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
139- layers. push_back (DetLayer{ " B06" , 20 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
140- layers. push_back (DetLayer{ " B07" , 30 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
141- layers. push_back (DetLayer{ " B08" , 45 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
142- layers. push_back (DetLayer{ " B09" , 60 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
143- layers. push_back (DetLayer{ " B10" , 80 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 } );
144+ AddLayer ( " bpipe0" , 0.48 , 250 , 0.00042 , 2.772e-02 , 0 .0f , 0 .0f , 0 .0f , 0 ); // 150 mum Be
145+ AddLayer ( " B00" , 0.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
146+ AddLayer ( " B01" , 1.2 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
147+ AddLayer ( " B02" , 2.5 , 250 , x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1 );
148+ AddLayer ( " bpipe1" , 3.7 , 250 , 0.0014 , 9.24e-02 , 0 .0f , 0 .0f , 0 .0f , 0 ); // 500 mum Be
149+ AddLayer ( " B03" , 3.75 , 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
150+ AddLayer ( " B04" , 7 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
151+ AddLayer ( " B05" , 12 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
152+ AddLayer ( " B06" , 20 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
153+ AddLayer ( " B07" , 30 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
154+ AddLayer ( " B08" , 45 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
155+ AddLayer ( " B09" , 60 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
156+ AddLayer ( " B10" , 80 ., 250 , x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1 );
144157}
145158
146159void FastTracker::AddTPC (float phiResMean, float zResMean)
@@ -202,7 +215,7 @@ float FastTracker::Dist(float z, float r)
202215 if (i == nSteps - 1 )
203216 index = 1 ;
204217 z0 = -4 * sigmaD + i * dz0;
205- dist += index * (dz0 / 3 .) * (1 / o2::math_utils::sqrt (o2::constants::math::TwoPI) / sigmaD) * exp (-z0 * z0 / 2 . / sigmaD / sigmaD) * (1 / o2::math_utils::sqrt ((z - z0) * (z - z0) + r * r));
218+ dist += index * (dz0 / 3 .) * (1 / o2::math_utils::sqrt (o2::constants::math::TwoPI) / sigmaD) * std:: exp (-z0 * z0 / 2 . / sigmaD / sigmaD) * (1 / o2::math_utils::sqrt ((z - z0) * (z - z0) + r * r));
206219 if (index != 4 )
207220 index = 4 ;
208221 else
@@ -283,7 +296,7 @@ float FastTracker::ProbGoodChiSqHit(float radius, float searchRadiusRPhi, float
283296
284297// function to provide a reconstructed track from a perfect input track
285298// returns number of intercepts (generic for now)
286- int FastTracker::FastTrack (o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, float nch)
299+ int FastTracker::FastTrack (o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, const float nch)
287300{
288301 hits.clear ();
289302 nIntercepts = 0 ;
@@ -333,7 +346,6 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
333346 // was there a problem on this layer?
334347 if (!ok && il > 0 ) { // may fail to reach target layer due to the eloss
335348 float rad2 = inputTrack.getX () * inputTrack.getX () + inputTrack.getY () * inputTrack.getY ();
336- float fMinRadTrack = 132 .;
337349 float maxR = layers[il - 1 ].r + kTrackingMargin * 2 ;
338350 float minRad = (fMinRadTrack > 0 && fMinRadTrack < maxR) ? fMinRadTrack : maxR;
339351 if (rad2 - minRad * minRad < kTrackingMargin * kTrackingMargin ) { // check previously reached layer
0 commit comments