ATLAS Offline Software
Loading...
Searching...
No Matches
ALFA_MDTracking Class Reference

#include <ALFA_MDTracking.h>

Inheritance diagram for ALFA_MDTracking:
Collaboration diagram for ALFA_MDTracking:

Public Member Functions

 ALFA_MDTracking ()
 ~ALFA_MDTracking ()
StatusCode Initialize (Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iMultiplicityCut, Int_t iUVCut, Float_t fOverlapCut)
StatusCode Execute (Int_t iRPot, const std::list< MDHIT > &ListMDHits)
StatusCode Finalize (Float_t &fRecXPos, Float_t &fRecYPos)
void GetData (Int_t &NumU, Int_t &NumV, Float_t &OL_U, Float_t &OL_V, Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.

Private Member Functions

void HistFill (Float_t &b_p, Float_t &b_n, Float_t &Ov_p, Float_t &Ov_n, Int_t &NumU, Int_t &NumV, Int_t iFlag)
void OverLap ()
void SetData (Int_t NumU, Int_t NumV, Float_t OL_U, Float_t OL_V)
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

Int_t m_iMultiplicityCut
Int_t m_iUVCut
Int_t m_iRPot
Int_t m_iNumU
Int_t m_iNumV
Float_t m_fOverlapCut
Float_t m_fRecXPos
Float_t m_fRecYPos
Float_t m_faMD [RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Float_t m_fbMD [RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
double m_fOverlapU
double m_fOverlapV
Int_t m_iFibSel [ALFALAYERSCNT *ALFAPLATESCNT]
std::map< int, FIBERSm_MapLayers
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Detailed Description

Definition at line 23 of file ALFA_MDTracking.h.

Constructor & Destructor Documentation

◆ ALFA_MDTracking()

ALFA_MDTracking::ALFA_MDTracking ( )

Definition at line 7 of file ALFA_MDTracking.cxx.

7 :
8 AthMessaging("ALFA_MDTracking")
9{
10 ATH_MSG_DEBUG("begin ALFA_MDTracking::ALFA_MDTracking");
11
12 m_iNumU = 0;
13 m_iNumV = 0;
14 m_fOverlapU = -9999.0;
15 m_fOverlapV = -9999.0;
16
17
19 m_iUVCut = 0;
20 m_fOverlapCut = 0.0;
21 m_fRecXPos = 0.0;
22 m_fRecYPos = 0.0;
23 m_iRPot = 0;
24
25 memset(&m_iFibSel, 0, sizeof(m_iFibSel));
26 std::fill_n(m_iFibSel, sizeof(m_iFibSel)/sizeof(Int_t), -9999);
27
28 ATH_MSG_DEBUG("end ALFA_MDTracking::ALFA_MDTracking");
29}
#define ATH_MSG_DEBUG(x)
Int_t m_iFibSel[ALFALAYERSCNT *ALFAPLATESCNT]
AthMessaging()
Default constructor:

◆ ~ALFA_MDTracking()

ALFA_MDTracking::~ALFA_MDTracking ( )

Definition at line 31 of file ALFA_MDTracking.cxx.

32{
33 ATH_MSG_DEBUG("begin ALFA_MDTracking::~ALFA_MDTracking");
34 ATH_MSG_DEBUG("end ALFA_MDTracking::~ALFA_MDTracking");
35}

Member Function Documentation

◆ Execute()

StatusCode ALFA_MDTracking::Execute ( Int_t iRPot,
const std::list< MDHIT > & ListMDHits )

Definition at line 62 of file ALFA_MDTracking.cxx.

63{
64 ATH_MSG_DEBUG("ALFA_MDTracking::Execute()");
65
66 FIBERS structFibers;
67 Int_t iNumUFiberHits = 0;
68 Int_t iNumVFiberHits = 0;
69
70 m_iRPot = iRPot;
71 m_MapLayers.clear();
72
73 std::list<MDHIT>::const_iterator iter;
74 for (iter=ListMDHits.begin(); iter!=ListMDHits.end(); ++iter)
75 {
76 if (iRPot == (*iter).iRPot)
77 {
78 if(m_MapLayers.find((*iter).iPlate)==m_MapLayers.end())
79 {
80 structFibers.ListFibers.clear();
81 m_MapLayers.insert(std::pair<int, FIBERS>((*iter).iPlate, structFibers));
82 m_MapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
83 }
84 else
85 {
86 m_MapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
87 }
88 }
89 }
90
91 //Checking that the multiplicity cut conditions are satisfied
92 //At least more than UV_cut layers have a multiplicity lower than multi_cut
93 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
94 {
95 if ((Int_t)m_MapLayers[iLayer].ListFibers.size()<=m_iMultiplicityCut && (Int_t)m_MapLayers[iLayer].ListFibers.size()>0)
96 {
97 if (fmod(double(iLayer),double(2)) == 1) iNumUFiberHits++;
98 else iNumVFiberHits++;
99 }
100 }
101
102 m_fRecXPos = -9999.0;
103 m_fRecYPos = -9999.0;
104 m_fOverlapU = -9999.0;
105 m_fOverlapV = -9999.0;
106
107 memset(&m_iFibSel, 0, sizeof(m_iFibSel));
108 std::fill_n(m_iFibSel, sizeof(m_iFibSel)/sizeof(Int_t), -9999);
109
110 if (iNumUFiberHits>=m_iUVCut && iNumVFiberHits>=m_iUVCut) OverLap();
111
112 ATH_MSG_DEBUG("end ALFA_MDTracking::Execute()");
113 return StatusCode::SUCCESS;
114}
struct _FIBERS FIBERS
#define ALFALAYERSCNT
#define ALFAPLATESCNT
std::map< int, FIBERS > m_MapLayers
std::list< int > ListFibers

◆ Finalize()

StatusCode ALFA_MDTracking::Finalize ( Float_t & fRecXPos,
Float_t & fRecYPos )

Definition at line 116 of file ALFA_MDTracking.cxx.

117{
118 ATH_MSG_DEBUG("begin ALFA_MDTracking::Finalize()");
119
120 fRecXPos = m_fRecXPos;
121 fRecYPos = m_fRecYPos;
122
123 ATH_MSG_DEBUG("end ALFA_MDTracking::Execute()");
124
125 return StatusCode::SUCCESS;
126}

◆ GetData()

void ALFA_MDTracking::GetData ( Int_t & NumU,
Int_t & NumV,
Float_t & OL_U,
Float_t & OL_V,
Int_t(&) iFibSel[ALFALAYERSCNT *ALFAPLATESCNT] )

Definition at line 451 of file ALFA_MDTracking.cxx.

452{
453 ATH_MSG_DEBUG("begin ALFA_MDTracking::GetData()");
454
455 iNumU = m_iNumU;
456 iNumV = m_iNumV;
457 fOverlapU = m_fOverlapU;
458 fOverlapV = m_fOverlapV;
459
460 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
461 {
462 iFibSel[iLayer] = m_iFibSel[iLayer];
463 }
464
465 ATH_MSG_DEBUG("end ALFA_MDTracking::GetData()");
466}

◆ HistFill()

void ALFA_MDTracking::HistFill ( Float_t & b_p,
Float_t & b_n,
Float_t & Ov_p,
Float_t & Ov_n,
Int_t & NumU,
Int_t & NumV,
Int_t iFlag )
private

Definition at line 128 of file ALFA_MDTracking.cxx.

129{
130 ATH_MSG_DEBUG("begin ALFA_MDTracking::HistFill()");
131
132 Int_t iHit;
133 Float_t fFibCen;
134 Float_t fbRef[2] = {-127.0, -127.0};
135 Float_t fXInter, fYInter;
136 Float_t fMinP, fMaxP;
137 Float_t fMinN, fMaxN;
138 Int_t iMinP_tmp, iMaxP_tmp;
139 Int_t iMinN_tmp, iMaxN_tmp;
140 Int_t iFullWidth;
141 const Int_t NBINTOT = 72000;
142 std::vector<Int_t> Over_p(NBINTOT);
143 std::vector<Int_t> Over_n(NBINTOT);
144
145 if (iFlag==0) //First call, Event not reconstructed for U and V
146 {
147 fbRef[0]=-127.0;
148 fbRef[1]=-127.0;
149 }
150
151 if (iFlag==1) //Event reconstructed for U but not for V so let's try to refine
152 {
153 fbRef[0]=b_p;
154 fbRef[1]=-127.0;
155 }
156
157 if (iFlag==2) //Event reconstructed for V but not for U so let's try to refine
158 {
159 fbRef[0]=-127.0;
160 fbRef[1]=b_n;
161 }
162
163 if (iFlag==3) //Event reconstructed for U and V, ultime refinement
164 {
165 fbRef[0]=b_p;
166 fbRef[1]=b_n;
167 }
168
169 for (Int_t iBin=0;iBin<72000;iBin++)
170 {
171 Over_p[iBin]=0;
172 Over_n[iBin]=0;
173 }
174
175 std::list<int>::iterator iter;
176 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
177 {
178 for (iter=m_MapLayers[iLayer].ListFibers.begin(); iter!=m_MapLayers[iLayer].ListFibers.end(); ++iter)
179 {
180 iHit = *iter;
181
182 if (m_faMD[m_iRPot][iLayer][iHit]>=0)
183 {
184 fXInter = (fbRef[1]-m_fbMD[m_iRPot][iLayer][iHit])/(1+m_faMD[m_iRPot][iLayer][iHit]);
185 fYInter = (m_faMD[m_iRPot][iLayer][iHit]*fbRef[1]+m_fbMD[m_iRPot][iLayer][iHit])/(1+m_faMD[m_iRPot][iLayer][iHit])-fbRef[1];
186 fFibCen = (fYInter-fXInter)/sqrt(2.0);
187
188 for (Int_t bin=0;bin<480;bin++)
189 {
190 Over_p[(int)((fFibCen-0.24)*1000)+bin+36000]++;
191 }
192 }
193 else
194 {
195 fXInter = (m_fbMD[m_iRPot][iLayer][iHit]-fbRef[0])/(1-m_faMD[m_iRPot][iLayer][iHit]);
196 fYInter = (m_fbMD[m_iRPot][iLayer][iHit]-m_faMD[m_iRPot][iLayer][iHit]*fbRef[0])/(1-m_faMD[m_iRPot][iLayer][iHit])-fbRef[0];
197 fFibCen = (fYInter+fXInter)/sqrt(2.0);
198
199 for (Int_t bin=0;bin<480;bin++)
200 {
201 Over_n[(int)((fFibCen-0.24)*1000)+bin+36000]++;
202 }
203 }
204 }
205 }
206
207 //Determine maximum
208 iNumU=0;
209 iNumV=0;
210
211 std::vector<int> *vecMaxP = new std::vector<int>;
212 std::vector<int> *vecMaxN = new std::vector<int>;
213
214 for (Int_t i=0;i<72000;i++)
215 {
216 if (Over_p[i]>iNumU) iNumU = Over_p[i];
217 if (Over_n[i]>iNumV) iNumV = Over_n[i];
218 }
219
220 if (iNumU>=m_iUVCut) // If more than m_iUVCut fibers in the maximum we do the reconstruction
221 {
222 for (Int_t i=0; i<NBINTOT; i++)
223 {
224 if (Over_p[i]==iNumU)
225 {
226 vecMaxP->push_back(i);
227 }
228 }
229
230 fMinP = -36.0 + double(vecMaxP->front())*1e-3;
231 fMaxP = -36.0 + double(vecMaxP->back())*1e-3;
232 iMinP_tmp = vecMaxP->front();
233 iMaxP_tmp = vecMaxP->back();
234
235// Making sure that the plateau belongs to the same track
236 iFullWidth = vecMaxP->size();
237
238 for (Int_t i=0; i<iFullWidth; i++)
239 {
240 if (vecMaxP->at(iFullWidth-i-1)-iMinP_tmp < 500)
241 {
242 iMaxP_tmp = vecMaxP->at(iFullWidth-i-1);
243 fMaxP = -36.0 + double(iMaxP_tmp)*1e-3;
244 break;
245 }
246 }
247
248 if ((fMaxP-fMinP)<m_fOverlapCut) //Check for multiple tracks
249 {
250 b_p = fbRef[1]+(fMinP+fMaxP)/sqrt(2.);
251 fOverP = fMaxP-fMinP;
252 }
253 else
254 {
255 b_p = -9999.0;
256 fOverP = -9999.0;
257 }
258 }
259 else
260 {
261 b_p = -9999.0;
262 fOverP = -9999.0;
263 }
264
265 if (iNumV>=m_iUVCut) // If more than m_iUVCut fibers in the maximum we do the reconstruction
266 {
267 for (Int_t i=0; i<NBINTOT; i++)
268 {
269 if (Over_n[i]==iNumV)
270 {
271 vecMaxN->push_back(i);
272 }
273 }
274
275 fMinN = -36.0 + double(vecMaxN->front())*1e-3;
276 fMaxN = -36.0 + double(vecMaxN->back())*1e-3;
277 iMinN_tmp = vecMaxN->front();
278 iMaxN_tmp = vecMaxN->back();
279
280// Making sure that the plateau belongs to the same track
281 iFullWidth = vecMaxN->size();
282
283 for (Int_t i=0; i<iFullWidth; i++)
284 {
285 if (vecMaxN->at(iFullWidth-i-1)-iMinN_tmp < 500)
286 {
287 iMaxN_tmp = vecMaxN->at(iFullWidth-i-1);
288 fMaxN = -36.0 + double(iMaxN_tmp)*1e-3;
289 break;
290 }
291 }
292
293 if ((fMaxN-fMinN)<m_fOverlapCut) //Check for multiple tracks
294 {
295 b_n = fbRef[0]+(fMinN+fMaxN)/sqrt(2.);
296 fOverN = fMaxN-fMinN;
297 }
298 else
299 {
300 b_n = -9999.0;
301 fOverN = -9999.0;
302 }
303 }
304 else
305 {
306 b_n = -9999.0;
307 fOverN = -9999.0;
308 }
309
310// if (b_p!=-9999.0 && b_n!=-9999.0)
311// {
312// if ((b_n+b_p)/2.0<=-135.5 && (iNumU>=m_iUVCut && iNumV>=m_iUVCut))
313// {
314// b_n = -9999.0;
315// b_p = -9999.0;
316// }
317// }
318
319 delete vecMaxP;
320 delete vecMaxN;
321
322 ATH_MSG_DEBUG("endl ALFA_MDTracking::HistFill()");
323}
Float_t m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Float_t m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]

◆ Initialize()

StatusCode ALFA_MDTracking::Initialize ( Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT],
Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT],
Int_t iMultiplicityCut,
Int_t iUVCut,
Float_t fOverlapCut )

Definition at line 37 of file ALFA_MDTracking.cxx.

38{
39 ATH_MSG_DEBUG("begin ALFA_MDTracking::Initialize()");
40
41 m_iMultiplicityCut = iMultiplicityCut;
42 m_iUVCut = iUVCut;
43 m_fOverlapCut = fOverlapCut;
44
45 for (Int_t iRPot = 0; iRPot < RPOTSCNT; iRPot++)
46 {
47 for (Int_t iLayer = 0; iLayer < ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
48 {
49 for (Int_t iFiber = 0; iFiber < ALFAFIBERSCNT; iFiber++)
50 {
51 m_faMD[iRPot][iLayer][iFiber] = faMD[iRPot][iLayer][iFiber];
52 m_fbMD[iRPot][iLayer][iFiber] = fbMD[iRPot][iLayer][iFiber];
53 }
54 }
55 }
56
57 ATH_MSG_DEBUG("end ALFA_MDTracking::Initialize()");
58
59 return StatusCode::SUCCESS;
60}
#define RPOTSCNT
#define ALFAFIBERSCNT

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 167 of file AthMessaging.h.

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 182 of file AthMessaging.h.

183{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 // If user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ OverLap()

void ALFA_MDTracking::OverLap ( )
private

Definition at line 325 of file ALFA_MDTracking.cxx.

326{
327 ATH_MSG_DEBUG("ALFA_MDTracking::OverLap()");
328
329 Float_t fBMeanN = -9999.0;
330 Float_t fBMeanP = -9999.0;
331 Float_t fOverRegP;
332 Float_t fOverRegN;
333 Int_t iNumU, iNumV;
334
335 //First call, projection on middle fiber for U and V
336 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 0);
337
338 //If first projection worked, we do the ultimate one
339 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0)
340 {
341 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
342 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0)
343 {
344 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
345 }
346 }
347 else
348 {
349 //If first projection worked for p side but not for n, we try to refine n projection using the information from p side
350 if (fBMeanP!=-9999.0 && fBMeanN==-9999.0)
351 {
352 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 1);
353
354 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0)
355 {
356 //if it as worked for both we do the ultimate one
357 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
358 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0) HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
359 }
360 }
361
362 //If first projection worked for p side but not for n, we try to refine n projection using the information from p side
363 if (fBMeanP==-9999.0 && fBMeanN!=-9999.0)
364 {
365 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 2);
366
367 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0)
368 {
369 //if it as worked for both we do the ultimate one
370 HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
371 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0) HistFill(fBMeanP, fBMeanN, fOverRegP, fOverRegN, iNumU, iNumV, 3);
372 }
373 }
374 }
375
376 Float_t fxTmp, fyTmp;
377 Float_t fMinX,fMinY;
378 Float_t fDistX,fDistY;
379// Float_t fDistMinX,fDistMinY;
380 Int_t iHit;
381 Float_t fOverlapU, fOverlapV;
382 Int_t iFibSelX, iFibSelY;
383
384 std::list<int>::iterator iter;
385 if (fBMeanP!=-9999.0 && fBMeanN!=-9999.0)
386 {
387 m_fRecXPos = (fBMeanN-fBMeanP)/2.0;
388 m_fRecYPos = (fBMeanN+fBMeanP)/2.0;
389 fOverlapU = fOverRegP;
390 fOverlapV = fOverRegN;
391
392 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
393 {
394 fMinX = 0.24/cos(TMath::Pi()/4.0);
395 fMinY = 0.24/cos(TMath::Pi()/4.0);
396
397 iFibSelX = -9999, iFibSelY = -9999;
398 for (iter=m_MapLayers[iLayer].ListFibers.begin(); iter!=m_MapLayers[iLayer].ListFibers.end(); ++iter)
399 {
400 iHit = *iter;
401 fxTmp = (m_fRecYPos-m_fbMD[m_iRPot][iLayer][iHit])/m_faMD[m_iRPot][iLayer][iHit];
402 fyTmp = m_faMD[m_iRPot][iLayer][iHit]*m_fRecXPos+m_fbMD[m_iRPot][iLayer][iHit];
403 fDistX = TMath::Abs(m_fRecXPos-fxTmp);
404 fDistY = TMath::Abs(m_fRecYPos-fyTmp);
405
406 if (fDistX<=fMinX)
407 {
408// fDistMinX = m_fRecXPos-fxTmp;
409 fMinX = fDistX;
410 iFibSelX = iHit;
411 }
412
413 if (fDistY<=fMinY)
414 {
415// fDistMinY = m_fRecYPos-fyTmp;
416 fMinY = fDistY;
417 iFibSelY = iHit;
418 }
419 }
420
421 if (iFibSelX==iFibSelY) m_iFibSel[iLayer] = iFibSelX;
422 }
423 }
424 else
425 {
426 m_fRecXPos = -9999.0;
427 m_fRecYPos = -9999.0;
428 iNumU = 0;
429 iNumV = 0;
430 fOverlapU = -9999.0;
431 fOverlapV = -9999.0;
432 }
433
434 SetData(iNumU, iNumV, fOverlapU, fOverlapV);
435
436 ATH_MSG_DEBUG("end ALFA_MDTracking::OverLap()");
437}
void SetData(Int_t NumU, Int_t NumV, Float_t OL_U, Float_t OL_V)
void HistFill(Float_t &b_p, Float_t &b_n, Float_t &Ov_p, Float_t &Ov_n, Int_t &NumU, Int_t &NumV, Int_t iFlag)

◆ SetData()

void ALFA_MDTracking::SetData ( Int_t NumU,
Int_t NumV,
Float_t OL_U,
Float_t OL_V )
private

Definition at line 439 of file ALFA_MDTracking.cxx.

440{
441 ATH_MSG_DEBUG("begin ALFA_MDTracking::SetData()");
442
443 m_iNumU = iNumU;
444 m_iNumV = iNumV;
445 m_fOverlapU = fOverlapU;
446 m_fOverlapV = fOverlapV;
447
448 ATH_MSG_DEBUG("end ALFA_MDTracking::SetData()");
449}

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_faMD

Float_t ALFA_MDTracking::m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 37 of file ALFA_MDTracking.h.

◆ m_fbMD

Float_t ALFA_MDTracking::m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 38 of file ALFA_MDTracking.h.

◆ m_fOverlapCut

Float_t ALFA_MDTracking::m_fOverlapCut
private

Definition at line 34 of file ALFA_MDTracking.h.

◆ m_fOverlapU

double ALFA_MDTracking::m_fOverlapU
private

Definition at line 39 of file ALFA_MDTracking.h.

◆ m_fOverlapV

double ALFA_MDTracking::m_fOverlapV
private

Definition at line 39 of file ALFA_MDTracking.h.

◆ m_fRecXPos

Float_t ALFA_MDTracking::m_fRecXPos
private

Definition at line 35 of file ALFA_MDTracking.h.

◆ m_fRecYPos

Float_t ALFA_MDTracking::m_fRecYPos
private

Definition at line 36 of file ALFA_MDTracking.h.

◆ m_iFibSel

Int_t ALFA_MDTracking::m_iFibSel[ALFALAYERSCNT *ALFAPLATESCNT]
private

Definition at line 40 of file ALFA_MDTracking.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_iMultiplicityCut

Int_t ALFA_MDTracking::m_iMultiplicityCut
private

Definition at line 30 of file ALFA_MDTracking.h.

◆ m_iNumU

Int_t ALFA_MDTracking::m_iNumU
private

Definition at line 33 of file ALFA_MDTracking.h.

◆ m_iNumV

Int_t ALFA_MDTracking::m_iNumV
private

Definition at line 33 of file ALFA_MDTracking.h.

◆ m_iRPot

Int_t ALFA_MDTracking::m_iRPot
private

Definition at line 32 of file ALFA_MDTracking.h.

◆ m_iUVCut

Int_t ALFA_MDTracking::m_iUVCut
private

Definition at line 31 of file ALFA_MDTracking.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_MapLayers

std::map<int, FIBERS> ALFA_MDTracking::m_MapLayers
private

Definition at line 43 of file ALFA_MDTracking.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.


The documentation for this class was generated from the following files: