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

#include <ALFA_HalfReco.h>

Inheritance diagram for ALFA_HalfReco:
Collaboration diagram for ALFA_HalfReco:

Public Member Functions

 ALFA_HalfReco ()
 ~ALFA_HalfReco ()
StatusCode Initialize (Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iHalf, Int_t fMultiplicityCut, 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 &iNumU, Int_t &iNumV, Float_t &fOvU, Float_t &fOvV, 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 iNumU, Int_t iNumV, Float_t fOvU, Float_t fOvV)
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

Int_t m_iUVCut
Int_t m_iHalf
Int_t m_iRPot
Int_t m_iMultiplicityCut
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]
Int_t m_iNumU
Int_t m_iNumV
double m_fOvU
double m_fOvV
Int_t m_fhits [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_HalfReco.h.

Constructor & Destructor Documentation

◆ ALFA_HalfReco()

ALFA_HalfReco::ALFA_HalfReco ( )

Definition at line 7 of file ALFA_HalfReco.cxx.

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

◆ ~ALFA_HalfReco()

ALFA_HalfReco::~ALFA_HalfReco ( )

Definition at line 33 of file ALFA_HalfReco.cxx.

34{
35}

Member Function Documentation

◆ Execute()

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

Definition at line 63 of file ALFA_HalfReco.cxx.

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

◆ Finalize()

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

Definition at line 121 of file ALFA_HalfReco.cxx.

122{
123 ATH_MSG_DEBUG("begin ALFA_HalfReco::Finalize()");
124
125 fRecXPos = m_fRecXPos;
126 fRecYPos = m_fRecYPos;
127
128 ATH_MSG_DEBUG("end ALFA_HalfReco::Execute()");
129 return StatusCode::SUCCESS;
130}

◆ GetData()

void ALFA_HalfReco::GetData ( Int_t & iNumU,
Int_t & iNumV,
Float_t & fOvU,
Float_t & fOvV,
Int_t(&) iFibSel[ALFALAYERSCNT *ALFAPLATESCNT] )

Definition at line 448 of file ALFA_HalfReco.cxx.

449{
450 ATH_MSG_DEBUG("begin ALFA_HalfReco::GetData()");
451
452 iNumU = m_iNumU;
453 iNumV = m_iNumV;
454 fOvU = m_fOvU;
455 fOvV = m_fOvV;
456
457 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
458 {
459 iFibSel[iLayer] = m_fhits[iLayer];
460 }
461
462 ATH_MSG_DEBUG("end ALFA_HalfReco::GetData()");
463}
#define ALFALAYERSCNT

◆ HistFill()

void ALFA_HalfReco::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 132 of file ALFA_HalfReco.cxx.

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

◆ Initialize()

StatusCode ALFA_HalfReco::Initialize ( Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT],
Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT],
Int_t iHalf,
Int_t fMultiplicityCut,
Int_t iUVCut,
Float_t fOverlapCut )

Definition at line 37 of file ALFA_HalfReco.cxx.

38{
39 ATH_MSG_DEBUG("begin ALFA_HalfReco::Initialize()");
40
41 m_iMultiplicityCut = fMultiplicityCut;
42 m_iUVCut = iUVCut;
43 m_fOverlapCut = fOverlapCut;
44 m_iHalf = iHalf;
45
46 for (Int_t iRPot = 0; iRPot < RPOTSCNT; iRPot++)
47 {
48 for (Int_t iLayer = 0; iLayer < ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
49 {
50 for (Int_t iFiber = 0; iFiber < ALFAFIBERSCNT; iFiber++)
51 {
52 m_faMD[iRPot][iLayer][iFiber] = faMD[iRPot][iLayer][iFiber];
53 m_fbMD[iRPot][iLayer][iFiber] = fbMD[iRPot][iLayer][iFiber];
54 }
55 }
56 }
57
58 ATH_MSG_DEBUG("end ALFA_HalfReco::Initialize()");
59
60 return StatusCode::SUCCESS;
61}
#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_HalfReco::OverLap ( )
private

Definition at line 321 of file ALFA_HalfReco.cxx.

322{
323 ATH_MSG_DEBUG("ALFA_HalfReco::OverLap()");
324
325 Float_t b_mean_n=-9999.0;
326 Float_t b_mean_p=-9999.0;
327 Float_t overReg_p;
328 Float_t overReg_n;
329 Int_t NumU, NumV;
330
331 //First call, projection on middle fiber for U and V
332 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 0);
333
334 //If first projection worked, we do the ultimate one
335 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
336 {
337 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
338 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0) HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
339 }
340 else
341 {
342 //If first projection worked for p side but not for n, we try to refine n projection using the information from p side
343 if (b_mean_p!=-9999.0 && b_mean_n==-9999.0)
344 {
345 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 1);
346
347 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
348 {
349 //if it as worked for both we do the ultimate one
350 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
351 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0) HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
352 }
353 }
354
355 //If first projection worked for p side but not for n, we try to refine n projection using the information from p side
356 if (b_mean_p==-9999.0 && b_mean_n!=-9999.0)
357 {
358 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 2);
359
360 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
361 {
362 //if it as worked for both we do the ultimate one
363 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
364 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0) HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
365 }
366 }
367 }
368
369 Float_t x_tmp, y_tmp;
370 Float_t min_x,min_y;
371 Float_t dist_x,dist_y;
372// Float_t dist_min_x,dist_min_y;
373 Int_t gFib_x, gFib_y;
374 Int_t iHit;
375
376 Float_t OL_U, OL_V;
377
378 std::list<int>::iterator intIter;
379 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
380 {
381 m_fRecXPos = (b_mean_n-b_mean_p)/2.0;
382 m_fRecYPos = (b_mean_n+b_mean_p)/2.0;
383 OL_U = overReg_p;
384 OL_V = overReg_n;
385
386 //for (Int_t i=half_ch*10;i<half_ch*10+10;i++)
387 for (Int_t iLayer = ALFAPLATESCNT*m_iHalf; iLayer<m_iHalf*ALFAPLATESCNT+ALFAPLATESCNT; iLayer++)
388 {
389 min_x = 0.24/cos(TMath::Pi()/4.);
390 min_y = 0.24/cos(TMath::Pi()/4.);
391
392 gFib_x = 9999;
393 gFib_y = 9999;
394
395 for (intIter=m_MapLayers[iLayer].ListFibers.begin(); intIter!=m_MapLayers[iLayer].ListFibers.end(); ++intIter)
396 {
397 iHit = *intIter;
398 x_tmp = (m_fRecYPos-m_fbMD[m_iRPot][iLayer][iHit])/m_faMD[m_iRPot][iLayer][iHit];
399 y_tmp = m_faMD[m_iRPot][iLayer][iHit]*m_fRecXPos+m_fbMD[m_iRPot][iLayer][iHit];
400 dist_x = TMath::Abs(m_fRecXPos-x_tmp);
401 dist_y = TMath::Abs(m_fRecYPos-y_tmp);
402
403 if (dist_x <= min_x)
404 {
405// dist_min_x = m_fRecXPos-x_tmp;
406 min_x = dist_x;
407 gFib_x = iHit;
408 }
409
410 if (dist_y <= min_y)
411 {
412// dist_min_y = m_fRecYPos-y_tmp;
413 min_y = dist_y;
414 gFib_y = iHit;
415 }
416 }
417
418 if (gFib_x==gFib_y) m_fhits[iLayer]=gFib_x;
419 }
420 }
421 else
422 {
423 m_fRecXPos = -9999.0;
424 m_fRecYPos = -9999.0;
425 NumU = 0;
426 NumV = 0;
427 OL_U = -9999.0;
428 OL_V = -9999.0;
429 }
430
431 SetData(NumU, NumV, OL_U, OL_V);
432
433 ATH_MSG_DEBUG("end ALFA_HalfReco::OverLap()");
434}
void SetData(Int_t iNumU, Int_t iNumV, Float_t fOvU, Float_t fOvV)
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_HalfReco::SetData ( Int_t iNumU,
Int_t iNumV,
Float_t fOvU,
Float_t fOvV )
private

Definition at line 436 of file ALFA_HalfReco.cxx.

437{
438 ATH_MSG_DEBUG("begin ALFA_HalfReco::SetData()");
439
440 m_iNumU = iNumU;
441 m_iNumV = iNumV;
442 m_fOvU = fOvU;
443 m_fOvV = fOvV;
444
445 ATH_MSG_DEBUG("end ALFA_HalfReco::SetData()");
446}

◆ 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_HalfReco::m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 38 of file ALFA_HalfReco.h.

◆ m_fbMD

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

Definition at line 39 of file ALFA_HalfReco.h.

◆ m_fhits

Int_t ALFA_HalfReco::m_fhits[ALFALAYERSCNT *ALFAPLATESCNT]
private

Definition at line 43 of file ALFA_HalfReco.h.

◆ m_fOverlapCut

Float_t ALFA_HalfReco::m_fOverlapCut
private

Definition at line 35 of file ALFA_HalfReco.h.

◆ m_fOvU

double ALFA_HalfReco::m_fOvU
private

Definition at line 42 of file ALFA_HalfReco.h.

◆ m_fOvV

double ALFA_HalfReco::m_fOvV
private

Definition at line 42 of file ALFA_HalfReco.h.

◆ m_fRecXPos

Float_t ALFA_HalfReco::m_fRecXPos
private

Definition at line 36 of file ALFA_HalfReco.h.

◆ m_fRecYPos

Float_t ALFA_HalfReco::m_fRecYPos
private

Definition at line 37 of file ALFA_HalfReco.h.

◆ m_iHalf

Int_t ALFA_HalfReco::m_iHalf
private

Definition at line 31 of file ALFA_HalfReco.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_HalfReco::m_iMultiplicityCut
private

Definition at line 34 of file ALFA_HalfReco.h.

◆ m_iNumU

Int_t ALFA_HalfReco::m_iNumU
private

Definition at line 41 of file ALFA_HalfReco.h.

◆ m_iNumV

Int_t ALFA_HalfReco::m_iNumV
private

Definition at line 41 of file ALFA_HalfReco.h.

◆ m_iRPot

Int_t ALFA_HalfReco::m_iRPot
private

Definition at line 32 of file ALFA_HalfReco.h.

◆ m_iUVCut

Int_t ALFA_HalfReco::m_iUVCut
private

Definition at line 30 of file ALFA_HalfReco.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_HalfReco::m_MapLayers
private

Definition at line 47 of file ALFA_HalfReco.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: