ATLAS Offline Software
ALFA_MDOverlap.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 using namespace std;
7 
9  AthMessaging("ALFA_MDOverlap"),
10  m_iRPot (0),
11  m_iTBins (0),
12  m_iRBins (0),
13  m_fbMinU (0.0),
14  m_fbMinV (0.0),
15  m_fFiberD (0.0),
16  m_fzStep (0.0),
17  m_fTLow (0.0),
18  m_fTHigh (0.0),
19  m_fRLow (0.0),
20  m_fRHigh (0.0),
21  m_fHitBU (0.0),
22  m_fHitBV (0.0),
23  m_fRecXPos (0.0),
24  m_fRecYPos (0.0),
25  m_histU_PT (nullptr),
26  m_histV_PT (nullptr)
27 {
28  memset(&m_iFHits, 0, sizeof(m_iFHits));
29 }
30 
32 {
33 
34 }
35 
37 {
38  m_iRPot = eRPName - 1;
39  m_ListMDHits = ListMDHits;
40 
41  for (Int_t iLayer = 0; iLayer < ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
42  {
43  for (Int_t iFiber = 0; iFiber < ALFAFIBERSCNT; iFiber++)
44  {
45  m_faMD[iLayer][iFiber] = faMD[m_iRPot][iLayer][iFiber];
46  m_fbMD[iLayer][iFiber] = fbMD[m_iRPot][iLayer][iFiber];
47  m_fzMD[iLayer][iFiber] = fzMD[m_iRPot][iLayer][iFiber];
48  }
49  }
50 
51  Float_t fzBase = m_fzMD[0][0];
52  m_fbMinU = 1111.0;
53  m_fbMinV = 1111.0;
54 
55  for (Int_t iLayer = 0; iLayer < ALFAPLATESCNT*ALFALAYERSCNT; iLayer++)
56  {
57  for (Int_t iFiber = 0; iFiber < ALFAFIBERSCNT; iFiber++)
58  {
59  if ((m_fbMD[iLayer][iFiber] < m_fbMinU) && m_faMD[iLayer][iFiber] < 0)
60  {
61  m_fbMinU = m_fbMD[iLayer][iFiber];
62  }
63 
64  if ((m_fbMD[iLayer][iFiber] < m_fbMinV) && m_faMD[iLayer][iFiber] > 0)
65  {
66  m_fbMinV = m_fbMD[iLayer][iFiber];
67  }
68 
69  // rescale zPos
70  m_fzMD[iLayer][iFiber] -= fzBase;
71  }
72  }
73 
74  m_fFiberD = 0.7071;
75  m_fzStep = 2.0;
76 
77  m_fTLow = (1.0/4.0)*M_PI;
78  m_fTHigh = (3.0/4.0)*M_PI;
79  m_fRLow = 0.0;
80  m_fRHigh = 64.0;
81  m_iTBins = 100;
82  m_iRBins = 64;
83 
84 
86 
87  return StatusCode::SUCCESS;
88 }
89 
91 {
92  StatusCode sc;
93 
94  // SELECT CANDIDATE HITS
95  sc = SelectHitInLayer();
96  if(sc.isFailure())
97  {
98  ATH_MSG_ERROR("hit selection failure");
99  return sc;
100  }
101 
102  sc = Overlap();
103  if(sc.isFailure())
104  {
105  ATH_MSG_ERROR("Overlap failure");
106  return sc;
107  }
108 
109 
110  return StatusCode::SUCCESS;
111 }
112 
113 StatusCode ALFA_MDOverlap::Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
114 {
115  fRecXPos = m_fRecXPos;
116  fRecYPos = m_fRecYPos;
117 
118  HistFinalize();
119 
120  return StatusCode::SUCCESS;
121 }
122 
124 {
125  // Reset Histograms
126  m_histU_PT->Reset();
127  m_histV_PT->Reset();
128 
129  // U (V) vs Z and Hough Transformed 2D histograms
130  Float_t fU = 0;
131  Float_t fZ = 0;
132  Float_t fRadius = 0;
133  Float_t fTheta = 0;
134 
135  FIBERS structFibers;
136  std::map<int, FIBERS> mapLayers;
137 
138  std::list<int>::iterator iterFiber;
139  Int_t iHitFiber;
140 
141  mapLayers.clear();
142 
143  std::list<MDHIT>::const_iterator iter;
144  for (iter=m_ListMDHits.begin(); iter!=m_ListMDHits.end(); ++iter)
145  {
146  if (m_iRPot == (*iter).iRPot)
147  {
148  if(mapLayers.find((*iter).iPlate)==mapLayers.end())
149  {
150  structFibers.ListFibers.clear();
151 
152  mapLayers.insert(std::pair<int, FIBERS>((*iter).iPlate, structFibers));
153  mapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
154  }
155  else
156  {
157  mapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
158  }
159  }
160  }
161 
162  for (Int_t iLayer = 0; iLayer < ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
163  {
164  for (iterFiber=mapLayers[iLayer].ListFibers.begin(); iterFiber!=mapLayers[iLayer].ListFibers.end(); ++iterFiber)
165  {
166  iHitFiber = *iterFiber;
167 
168  if (fmod((double)iLayer,(double)2) == 0) // for U-fibers
169  {
170  fU = (m_fbMD[iLayer][iHitFiber]-m_fbMinU)/m_fFiberD;
171  fZ = m_fzMD[iLayer][iHitFiber]/m_fzStep + 0.5;
172 
173  for(Int_t k=0; k < m_iTBins; k++)
174  {
175  fTheta = m_fTLow + (k+0.5)*(m_fTHigh-m_fTLow)/m_iTBins;
176  fRadius = fZ*cos(fTheta)+fU*sin(fTheta);
177 
178  m_histU_PT->Fill(fTheta, fRadius, 1.0);
179  }
180  }
181  else // for V-fibers
182  {
183  fU = (m_fbMD[iLayer][iHitFiber]-m_fbMinV)/m_fFiberD;
184  fZ = (m_fzMD[iLayer][iHitFiber]+1.0)/m_fzStep + 0.5;
185 
186  for(Int_t k=0; k < m_iTBins; k++)
187  {
188  fTheta = m_fTLow + (k+0.5)*(m_fTHigh-m_fTLow)/m_iTBins;
189  fRadius = fZ*cos(fTheta)+fU*sin(fTheta);
190 
191  m_histV_PT->Fill(fTheta, fRadius, 1.0);
192  }
193  }
194  }
195  }
196 
197  // Get maximumbin from PT histograms and determine seed track
198  Int_t iULocMax, iULocMay, iULocMaz;
199  Int_t iVLocMax, iVLocMay, iVLocMaz;
200 
201  m_histU_PT->GetMaximumBin(iULocMax, iULocMay, iULocMaz);
202  m_histV_PT->GetMaximumBin(iVLocMax, iVLocMay, iVLocMaz);
203 
204  // Select Hits closest to seed track ( dr < 2.0 )
205  Float_t fRMinU, fRMinV, fRTmp, fRdr;
206 
207  Float_t fRLineU = m_fRLow + (iULocMay-0.5)*(m_fRHigh-m_fRLow)/m_iRBins; // -0.5 since bins start with 1 (first bin, second...)
208  Float_t fRLineV = m_fRLow + (iVLocMay-0.5)*(m_fRHigh-m_fRLow)/m_iRBins;
209 
210  Double_t fTLineU = m_fTLow + (iULocMax-0.5)*(m_fTHigh-m_fTLow)/m_iTBins;
211  Double_t fTLineV = m_fTLow + (iVLocMax-0.5)*(m_fTHigh-m_fTLow)/m_iTBins;
212 
213  Float_t fAlphaU = -cos(fTLineU)/sin(fTLineU);
214  Float_t fAlphaV = -cos(fTLineV)/sin(fTLineV);
215 
216  Float_t fBetaU = fRLineU/sin(fTLineU);
217  Float_t fBetaV = fRLineV/sin(fTLineV);
218 
219  Float_t fBUMin = fAlphaU*0.0 + fBetaU;
220  Float_t fBUMax = fAlphaU*19.0 + fBetaU;
221 
222  Float_t fBVMin = fAlphaV*1.0 + fBetaV;
223  Float_t fBVMax = fAlphaV*20.0 + fBetaV;
224 
225  m_fHitBU = (fBUMax-fBUMin)/2.0 + fBUMin;
226  m_fHitBV = (fBVMax-fBVMin)/2.0 + fBVMin;
227 
228  for (Int_t iLayer = 0; iLayer < ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
229  {
230  fRMinU = 2.0;
231  fRMinV = 2.0;
232  m_iFHits[iLayer] = -9999;
233 
234  for (iterFiber=mapLayers[iLayer].ListFibers.begin(); iterFiber!=mapLayers[iLayer].ListFibers.end(); ++iterFiber)
235  {
236  iHitFiber = *iterFiber;
237 
238  if (fmod((double)iLayer,(double)2) == 0) // for U-fibers
239  {
240  fU = (m_fbMD[iLayer][iHitFiber]-m_fbMinU)/m_fFiberD;
241  fZ = m_fzMD[iLayer][iHitFiber]/m_fzStep + 0.5;
242 
243  fRTmp = fZ*cos(fTLineU) + fU*sin(fTLineU);
244  fRdr = fabs(fRLineU - fRTmp);
245 
246  if (fRdr < fRMinU)
247  {
248  fRMinU = fRdr;
249  m_iFHits[iLayer] = iHitFiber;
250  }
251  }
252  else // for V-fibers
253  {
254  fU = (m_fbMD[iLayer][iHitFiber]-m_fbMinV)/m_fFiberD;
255  fZ = (m_fzMD[iLayer][iHitFiber]+1.0)/m_fzStep + 0.5;
256 
257  fRTmp = fZ*cos(fTLineV) + fU*sin(fTLineV);
258  fRdr = fabs(fRLineV - fRTmp);
259 
260  if (fRdr < fRMinV)
261  {
262  fRMinV = fRdr;
263  m_iFHits[iLayer] = iHitFiber;
264  }
265  }
266  }
267  }
268 
269  return StatusCode::SUCCESS;
270 }
271 
273 {
274  Int_t n_p = 0;
275  Int_t n_n = 0;
276  Float_t faMeanP = 0;
277  Float_t fbMeanP = 0;
278  Float_t faMeanN = 0;
279  Float_t fbMeanN = 0;
280 
281  Float_t fbMinP, fbMaxP, fbMinN, fbMaxN;
282  Float_t fActive = 0.48;
283  Float_t fHalfStep = 0;
284 
285  for(Int_t iLayer = 0; iLayer < ALFAPLATESCNT*ALFALAYERSCNT; iLayer++)
286  {
287  if(m_iFHits[iLayer]!= -9999)
288  {
289  if(m_faMD[iLayer][0] >= 0)
290  {
291  fbMeanP += m_fbMD[iLayer][m_iFHits[iLayer]];
292  ++n_p;
293  }
294  else
295  {
296  fbMeanN += m_fbMD[iLayer][m_iFHits[iLayer]];
297  ++n_n;
298  }
299  }
300  }
301 
302  if ((n_p >= 1) && (n_n >= 1))
303  {
304  fbMeanP = fbMeanP / n_p + 0.07071;
305  fbMeanN = fbMeanN / n_n - 0.07071;
306  }
307 
308  // these mean b values are just used to generate reasonable start values
309  // and to avoid that one starts from a bad (i.e. cross talk) fiber
310  fbMinP = fbMeanP + fActive;
311  fbMaxP = fbMeanP - fActive;
312  fbMinN = fbMeanN + fActive;
313  fbMaxN = fbMeanN - fActive;
314 
315  Int_t iLayMinU = -9999;
316  Int_t iLayMaxU = -9999;
317  Int_t iLayMinV = -9999;
318  Int_t iLayMaxV = -9999;
319 
320  // now find minimum overlap in b values, separately for positive and
321  // negative slopes
322 
323  n_p = 0;
324  n_n = 0;
325  for(Int_t iLayer = 0; iLayer < ALFAPLATESCNT*ALFALAYERSCNT; iLayer++)
326  {
327  if(iLayer>=0 && m_iFHits[iLayer]!= -9999)
328  {
329  if(m_faMD[iLayer][0] >= 0)
330  {
331  fHalfStep = fabs(0.5*fActive/sin(atan(m_faMD[iLayer][m_iFHits[iLayer]])));
332 
333  if (m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep > fbMaxP)
334  {
335  if (fbMinP > m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep)
336  {
337  fbMinP = m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep;
338  iLayMinU = iLayer;
339  }
340  }
341 
342  if (m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep < fbMinP)
343  {
344  if (fbMaxP > m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep)
345  {
346  }
347  else
348  {
349  fbMaxP = m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep;
350  iLayMaxU = iLayer;
351  }
352  }
353 
354  faMeanP = faMeanP + m_faMD[iLayer][m_iFHits[iLayer]];
355  ++n_p;
356  }
357  else
358  {
359  fHalfStep = fabs(0.5*fActive/sin(atan(m_faMD[iLayer][m_iFHits[iLayer]])));
360 
361  if (m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep > fbMaxN)
362  {
363  if (fbMinN > m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep)
364  {
365  fbMinN =m_fbMD[iLayer][m_iFHits[iLayer]] + fHalfStep;
366  iLayMinV = iLayer;
367  }
368  }
369 
370  if (m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep < fbMinN)
371  {
372  if (fbMaxN > m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep)
373  {
374  }
375  else
376  {
377  fbMaxN = m_fbMD[iLayer][m_iFHits[iLayer]] - fHalfStep;
378  iLayMaxV = iLayer;
379  }
380  }
381 
382  faMeanN = faMeanN + m_faMD[iLayer][m_iFHits[iLayer]];
383  ++n_n;
384  }
385  }
386  }
387 
388  Double_t fPolyX[4];
389  Double_t fPolyY[4];
390 
391 // Float_t OL_x;
392 // Float_t OL_y;
393 
394  if (iLayMinU>=0 && iLayMaxU>=0 && iLayMinV>=0 && iLayMaxV>=0)
395  {
396  fPolyX[0] = (m_fbMD[iLayMinU][m_iFHits[iLayMinU]] - m_fbMD[iLayMinV][m_iFHits[iLayMinV]])/(m_faMD[iLayMinV][m_iFHits[iLayMinV]] - m_faMD[iLayMinU][m_iFHits[iLayMinU]]);
397  fPolyY[0] = m_faMD[iLayMinU][m_iFHits[iLayMinU]]*fPolyX[0] + m_fbMD[iLayMinU][m_iFHits[iLayMinU]] + fActive*0.707/2.0;
398 
399  fPolyX[1] = (m_fbMD[iLayMinU][m_iFHits[iLayMinU]] - m_fbMD[iLayMaxV][m_iFHits[iLayMaxV]] + fActive*0.707)/(m_faMD[iLayMaxV][m_iFHits[iLayMaxV]] - m_faMD[iLayMinU][m_iFHits[iLayMinU]]);
400  fPolyY[1] = m_faMD[iLayMinU][m_iFHits[iLayMinU]]*fPolyX[1] + m_fbMD[iLayMinU][m_iFHits[iLayMinU]] + fActive*0.707/2.0;
401 
402  fPolyX[2] = (m_fbMD[iLayMaxU][m_iFHits[iLayMaxU]] - m_fbMD[iLayMinV][m_iFHits[iLayMinV]] - fActive*0.707)/(m_faMD[iLayMinV][m_iFHits[iLayMinV]] - m_faMD[iLayMaxU][m_iFHits[iLayMaxU]]);
403  fPolyY[2] = m_faMD[iLayMaxU][m_iFHits[iLayMaxU]]*fPolyX[2] + m_fbMD[iLayMaxU][m_iFHits[iLayMaxU]] - fActive*0.707/2.0;
404 
405  fPolyX[3] = (m_fbMD[iLayMaxU][m_iFHits[iLayMaxU]] - m_fbMD[iLayMaxV][m_iFHits[iLayMaxV]])/(m_faMD[iLayMaxV][m_iFHits[iLayMaxV]] - m_faMD[iLayMaxU][m_iFHits[iLayMaxU]]);
406  fPolyY[3] = m_faMD[iLayMaxU][m_iFHits[iLayMaxU]]*fPolyX[3] + m_fbMD[iLayMaxU][m_iFHits[iLayMaxU]] - fActive*0.707/2.0;
407 
408  m_fRecXPos = (fPolyX[0] + fPolyX[1] + fPolyX[2] + fPolyX[3])/4.0;
409  m_fRecYPos = (fPolyY[0] + fPolyY[1] + fPolyY[2] + fPolyY[3])/4.0;
410 
411 // OL_x = (fabs(fPolyX[0] - m_fRecXPos) + fabs(fPolyX[1] - m_fRecXPos) + fabs(fPolyX[2] - m_fRecXPos) + fabs(fPolyX[3] - m_fRecXPos))/4.0;
412 // OL_y = (fabs(fPolyY[0] - m_fRecYPos) + fabs(fPolyY[1] - m_fRecYPos) + fabs(fPolyY[2] - m_fRecYPos) + fabs(fPolyY[3] - m_fRecYPos))/4.0;
413  }
414  else
415  {
416  m_fRecXPos = -9999.0;
417  m_fRecYPos = -9999.0;
418 
419 // OL_x = -9999.0;
420 // OL_y = -9999.0;
421  }
422 
423  return StatusCode::SUCCESS;
424 }
425 
426 
428 {
429  m_histU_PT = new TH2D("histU_PT", "Hough Trans. of U", m_iTBins, m_fTLow, m_fTHigh, m_iRBins, m_fRLow, m_fRHigh);
430  m_histV_PT = new TH2D("histV_PT", "Hough Trans. of V", m_iTBins, m_fTLow, m_fTHigh, m_iRBins, m_fRLow, m_fRHigh);
431 }
432 
434 {
435  delete m_histU_PT;
436  delete m_histV_PT;
437 }
438 
440 {
441  for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
442  {
443  iFibSel[iLayer] = m_iFHits[iLayer];
444  }
445 }
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
ALFA_MDOverlap::m_ListMDHits
std::list< MDHIT > m_ListMDHits
Definition: ALFA_MDOverlap.h:68
ALFA_MDOverlap::m_fzMD
Float_t m_fzMD[ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_MDOverlap.h:61
ALFA_MDOverlap::~ALFA_MDOverlap
~ALFA_MDOverlap()
Definition: ALFA_MDOverlap.cxx:31
createLinkingScheme.iter
iter
Definition: createLinkingScheme.py:62
ALFA_MDOverlap::m_fRecXPos
Float_t m_fRecXPos
Definition: ALFA_MDOverlap.h:52
ALFA_MDOverlap::m_fRLow
Float_t m_fRLow
Definition: ALFA_MDOverlap.h:46
ALFA_MDOverlap::m_iTBins
Int_t m_iTBins
Definition: ALFA_MDOverlap.h:35
ALFAFIBERSCNT
#define ALFAFIBERSCNT
Definition: ALFA_constants.h:10
eRPotName
eRPotName
Definition: ALFA_GeometryReader.h:27
ALFA_MDOverlap::m_histU_PT
TH2D * m_histU_PT
Definition: ALFA_MDOverlap.h:64
ALFA_MDOverlap::m_iFHits
Int_t m_iFHits[ALFALAYERSCNT *ALFAPLATESCNT]
Definition: ALFA_MDOverlap.h:56
_FIBERS
Definition: ALFA_LocRec/ALFA_UserObjects.h:30
M_PI
#define M_PI
Definition: ActiveFraction.h:11
RPOTSCNT
#define RPOTSCNT
Definition: ALFA_CLinkAlg.h:26
ALFA_MDOverlap::Execute
StatusCode Execute()
Definition: ALFA_MDOverlap.cxx:90
ALFA_MDOverlap::Finalize
StatusCode Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
Definition: ALFA_MDOverlap.cxx:113
ALFA_MDOverlap::m_faMD
Float_t m_faMD[ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_MDOverlap.h:59
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ALFA_MDOverlap::m_fbMD
Float_t m_fbMD[ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_MDOverlap.h:60
ALFA_MDOverlap::m_fHitBV
Float_t m_fHitBV
Definition: ALFA_MDOverlap.h:50
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
ALFA_MDOverlap::m_fFiberD
Float_t m_fFiberD
Definition: ALFA_MDOverlap.h:41
ALFA_MDOverlap::Overlap
StatusCode Overlap()
Definition: ALFA_MDOverlap.cxx:272
ALFA_MDOverlap::m_fTLow
Float_t m_fTLow
Definition: ALFA_MDOverlap.h:44
ALFA_MDOverlap.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ALFA_MDOverlap::GetData
void GetData(Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
Definition: ALFA_MDOverlap.cxx:439
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
_FIBERS::ListFibers
std::list< int > ListFibers
Definition: ALFA_LocRec/ALFA_UserObjects.h:31
ALFA_MDOverlap::m_fbMinV
Float_t m_fbMinV
Definition: ALFA_MDOverlap.h:40
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
ALFALAYERSCNT
#define ALFALAYERSCNT
Definition: ALFA_constants.h:8
ALFA_MDOverlap::SelectHitInLayer
StatusCode SelectHitInLayer()
Definition: ALFA_MDOverlap.cxx:123
ALFA_MDOverlap::Initialize
StatusCode Initialize(const eRPotName &eRPName, const std::list< MDHIT > &ListMDHits, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT])
Definition: ALFA_MDOverlap.cxx:36
ALFA_MDOverlap::HistInitialize
void HistInitialize()
Definition: ALFA_MDOverlap.cxx:427
ALFA_MDOverlap::m_fRecYPos
Float_t m_fRecYPos
Definition: ALFA_MDOverlap.h:53
ALFA_MDOverlap::HistFinalize
void HistFinalize()
Definition: ALFA_MDOverlap.cxx:433
ALFA_MDOverlap::ALFA_MDOverlap
ALFA_MDOverlap()
Definition: ALFA_MDOverlap.cxx:8
ALFA_MDOverlap::m_fTHigh
Float_t m_fTHigh
Definition: ALFA_MDOverlap.h:45
ALFA_MDOverlap::m_fHitBU
Float_t m_fHitBU
Definition: ALFA_MDOverlap.h:49
ALFA_MDOverlap::m_fzStep
Float_t m_fzStep
Definition: ALFA_MDOverlap.h:42
ALFA_MDOverlap::m_iRPot
Int_t m_iRPot
Definition: ALFA_MDOverlap.h:33
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
ALFA_MDOverlap::m_fbMinU
Float_t m_fbMinU
Definition: ALFA_MDOverlap.h:39
ALFA_MDOverlap::m_iRBins
Int_t m_iRBins
Definition: ALFA_MDOverlap.h:36
ALFA_MDOverlap::m_fRHigh
Float_t m_fRHigh
Definition: ALFA_MDOverlap.h:47
ALFAPLATESCNT
#define ALFAPLATESCNT
Definition: ALFA_constants.h:9
fitman.k
k
Definition: fitman.py:528
ALFA_MDOverlap::m_histV_PT
TH2D * m_histV_PT
Definition: ALFA_MDOverlap.h:65