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 450 of file ALFA_MDTracking.cxx.

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

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

164{
165 MsgStream* ms = m_msg_tls.get();
166 if (!ms) {
167 if (!m_initialized.test_and_set()) initMessaging();
168 ms = new MsgStream(m_imsg,m_nm);
169 m_msg_tls.reset( ms );
170 }
171
172 ms->setLevel (m_lvl);
173 return *ms;
174}
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 178 of file AthMessaging.h.

179{ 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 (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ OverLap()

void ALFA_MDTracking::OverLap ( )
private

Definition at line 324 of file ALFA_MDTracking.cxx.

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

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

◆ 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: