]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDparameter.cxx
Update of digitizer and new step manager
[u/mrichter/AliRoot.git] / TRD / AliTRDparameter.cxx
CommitLineData
17b26de4 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
88cb7938 16/* $Id$ */
17b26de4 17
18///////////////////////////////////////////////////////////////////////////////
19// //
20// TRD parameter class //
21// //
22///////////////////////////////////////////////////////////////////////////////
23
bdbb05bb 24#include <TRandom.h>
25
17b26de4 26#include "AliRun.h"
27#include "AliMagF.h"
28
17b26de4 29#include "AliTRDparameter.h"
30#include "AliTRDgeometryFull.h"
31
32ClassImp(AliTRDparameter)
33
34//_____________________________________________________________________________
35AliTRDparameter::AliTRDparameter():TNamed()
36{
37 //
38 // AliTRDparameter default constructor
39 //
40
41 fGeo = 0;
42 fPRFsmp = 0;
43 fTRFsmp = 0;
44 fCTsmp = 0;
45 fGasGain = 0.0;
46 fNoise = 0.0;
47 fChipGain = 0.0;
48 fADCoutRange = 0.0;
49 fADCinRange = 0.0;
50 fADCthreshold = 0;
7e582e9f 51 fADCbaseline = 0;
17b26de4 52 fDiffusionOn = 0;
53 fDiffusionT = 0.0;
54 fDiffusionL = 0.0;
55 fElAttachOn = 0;
56 fElAttachProp = 0.0;
57 fExBOn = 0;
58 fOmegaTau = 0.0;
59 fPRFOn = 0;
60 fTRFOn = 0;
61 fCTOn = 0;
62 fTCOn = 0;
63 fDriftVelocity = 0.0;
64 fPadCoupling = 0.0;
65 fTimeCoupling = 0.0;
66 fTimeBinWidth = 0.0;
67 fField = 0.0;
68 fTiltingAngle = 0.0;
69 fPRFbin = 0;
70 fPRFlo = 0.0;
71 fPRFhi = 0.0;
72 fPRFwid = 0.0;
73 fPRFpad = 0;
74 fTRFbin = 0;
75 fTRFlo = 0.0;
76 fTRFhi = 0.0;
77 fTRFwid = 0.0;
78 fTCnexp = 0;
79
80 fLUTOn = 0;
81 fLUT = 0;
82 fClusMaxThresh = 0;
83 fClusSigThresh = 0;
84
a328fff9 85 fTimeStructOn = 0;
86 fTimeStruct = 0;
87 fStaggeringOn = 0;
88 fAnodeWireOffset = 0.0;
89
17b26de4 90}
91
92//_____________________________________________________________________________
93AliTRDparameter::AliTRDparameter(const Text_t *name, const Text_t *title)
94 :TNamed(name,title)
95{
96 //
97 // AliTRDparameter constructor
98 //
99
100 fGeo = new AliTRDgeometryFull();
67689223 101 fPRFsmp = 0;
102 fTRFsmp = 0;
103 fCTsmp = 0;
104 fGasGain = 0.0;
105 fNoise = 0.0;
106 fChipGain = 0.0;
107 fADCoutRange = 0.0;
108 fADCinRange = 0.0;
109 fADCthreshold = 0;
7e582e9f 110 fADCbaseline = 0;
67689223 111 fDiffusionOn = 0;
112 fDiffusionT = 0.0;
113 fDiffusionL = 0.0;
114 fElAttachOn = 0;
115 fElAttachProp = 0.0;
116 fExBOn = 0;
117 fOmegaTau = 0.0;
118 fPRFOn = 0;
119 fTRFOn = 0;
120 fCTOn = 0;
121 fTCOn = 0;
122 fDriftVelocity = 0.0;
123 fPadCoupling = 0.0;
124 fTimeCoupling = 0.0;
125 fTimeBinWidth = 0.0;
126 fField = 0.0;
127 fTiltingAngle = 0.0;
128 fPRFbin = 0;
129 fPRFlo = 0.0;
130 fPRFhi = 0.0;
131 fPRFwid = 0.0;
132 fPRFpad = 0;
133 fTRFbin = 0;
134 fTRFlo = 0.0;
135 fTRFhi = 0.0;
136 fTRFwid = 0.0;
137 fTCnexp = 0;
138
139 fLUTOn = 0;
140 fLUT = 0;
141 fClusMaxThresh = 0;
142 fClusSigThresh = 0;
17b26de4 143
a328fff9 144 fTimeStructOn = 0;
145 fTimeStruct = 0;
146 fStaggeringOn = 0;
147 fAnodeWireOffset = 0.0;
148
17b26de4 149 Init();
150
151}
152
153
154//_____________________________________________________________________________
73ae7b59 155AliTRDparameter::AliTRDparameter(const AliTRDparameter &p):TNamed(p)
17b26de4 156{
157 //
158 // AliTRDparameter copy constructor
159 //
160
161 ((AliTRDparameter &) p).Copy(*this);
162
163}
164
165///_____________________________________________________________________________
166AliTRDparameter::~AliTRDparameter()
167{
168 //
169 // AliTRDparameter destructor
170 //
171
172 if (fTRFsmp) {
173 delete [] fTRFsmp;
174 fTRFsmp = 0;
175 }
176
177 if (fPRFsmp) {
178 delete [] fPRFsmp;
179 fPRFsmp = 0;
180 }
181
182 if (fCTsmp) {
183 delete [] fCTsmp;
184 fCTsmp = 0;
185 }
186
187 if (fLUT) {
188 delete [] fLUT;
189 fLUT = 0;
190 }
191
192 if (fGeo) {
193 delete fGeo;
194 fGeo = 0;
195 }
196
a328fff9 197 if (fTimeStruct) {
198 delete [] fTimeStruct;
199 fTimeStruct = 0;
200 }
201
17b26de4 202}
203
204//_____________________________________________________________________________
205AliTRDparameter &AliTRDparameter::operator=(const AliTRDparameter &p)
206{
207 //
208 // Assignment operator
209 //
210
211 if (this != &p) ((AliTRDparameter &) p).Copy(*this);
212 return *this;
213
214}
215
216//_____________________________________________________________________________
217void AliTRDparameter::Copy(TObject &p)
218{
219 //
220 // Copy function
221 //
222
223 Int_t iBin;
224
225 ((AliTRDparameter &) p).fGasGain = fGasGain;
226 ((AliTRDparameter &) p).fNoise = fNoise;
227 ((AliTRDparameter &) p).fChipGain = fChipGain;
228 ((AliTRDparameter &) p).fADCoutRange = fADCoutRange;
229 ((AliTRDparameter &) p).fADCinRange = fADCinRange;
230 ((AliTRDparameter &) p).fADCthreshold = fADCthreshold;
7e582e9f 231 ((AliTRDparameter &) p).fADCbaseline = fADCbaseline;
17b26de4 232 ((AliTRDparameter &) p).fDiffusionOn = fDiffusionOn;
233 ((AliTRDparameter &) p).fDiffusionT = fDiffusionT;
234 ((AliTRDparameter &) p).fDiffusionL = fDiffusionL;
235 ((AliTRDparameter &) p).fElAttachOn = fElAttachOn;
236 ((AliTRDparameter &) p).fElAttachProp = fElAttachProp;
237 ((AliTRDparameter &) p).fExBOn = fExBOn;
238 ((AliTRDparameter &) p).fOmegaTau = fOmegaTau;
239 ((AliTRDparameter &) p).fLorentzFactor = fLorentzFactor;
240 ((AliTRDparameter &) p).fDriftVelocity = fDriftVelocity;
241 ((AliTRDparameter &) p).fPadCoupling = fPadCoupling;
242 ((AliTRDparameter &) p).fTimeCoupling = fTimeCoupling;
243 ((AliTRDparameter &) p).fTimeBinWidth = fTimeBinWidth;
244 ((AliTRDparameter &) p).fField = fField;
245 ((AliTRDparameter &) p).fPRFOn = fPRFOn;
246 ((AliTRDparameter &) p).fTRFOn = fTRFOn;
247 ((AliTRDparameter &) p).fCTOn = fCTOn;
248 ((AliTRDparameter &) p).fTCOn = fTCOn;
249 ((AliTRDparameter &) p).fTiltingAngle = fTiltingAngle;
250 ((AliTRDparameter &) p).fPRFbin = fPRFbin;
251 ((AliTRDparameter &) p).fPRFlo = fPRFlo;
252 ((AliTRDparameter &) p).fPRFhi = fPRFhi;
253 ((AliTRDparameter &) p).fPRFwid = fPRFwid;
254 ((AliTRDparameter &) p).fPRFpad = fPRFpad;
255 if (((AliTRDparameter &) p).fPRFsmp) delete [] ((AliTRDparameter &) p).fPRFsmp;
256 ((AliTRDparameter &) p).fPRFsmp = new Float_t[fPRFbin];
257 for (iBin = 0; iBin < fPRFbin; iBin++) {
258 ((AliTRDparameter &) p).fPRFsmp[iBin] = fPRFsmp[iBin];
259 }
260 ((AliTRDparameter &) p).fTRFbin = fTRFbin;
261 ((AliTRDparameter &) p).fTRFlo = fTRFlo;
262 ((AliTRDparameter &) p).fTRFhi = fTRFhi;
263 ((AliTRDparameter &) p).fTRFwid = fTRFwid;
264 if (((AliTRDparameter &) p).fTRFsmp) delete [] ((AliTRDparameter &) p).fTRFsmp;
265 ((AliTRDparameter &) p).fTRFsmp = new Float_t[fTRFbin];
266 for (iBin = 0; iBin < fTRFbin; iBin++) {
267 ((AliTRDparameter &) p).fTRFsmp[iBin] = fTRFsmp[iBin];
268 }
269 if (((AliTRDparameter &) p).fCTsmp) delete [] ((AliTRDparameter &) p).fCTsmp;
270 ((AliTRDparameter &) p).fCTsmp = new Float_t[fTRFbin];
271 for (iBin = 0; iBin < fTRFbin; iBin++) {
272 ((AliTRDparameter &) p).fCTsmp[iBin] = fCTsmp[iBin];
273 }
274 ((AliTRDparameter &) p).fTCnexp = fTCnexp;
275
276 ((AliTRDparameter &) p).fLUTOn = fLUTOn;
277 ((AliTRDparameter &) p).fLUTbin = fLUTbin;
278 if (((AliTRDparameter &) p).fLUT) delete [] ((AliTRDparameter &) p).fLUT;
279 ((AliTRDparameter &) p).fLUT = new Float_t[fLUTbin];
280 for (iBin = 0; iBin < fLUTbin; iBin++) {
281 ((AliTRDparameter &) p).fLUT[iBin] = fLUT[iBin];
282 }
283 ((AliTRDparameter &) p).fClusMaxThresh = fClusMaxThresh;
284 ((AliTRDparameter &) p).fClusSigThresh = fClusSigThresh;
285
a328fff9 286 ((AliTRDparameter &) p).fAnodeWireOffset = fAnodeWireOffset;
287 ((AliTRDparameter &) p).fStaggeringOn = fStaggeringOn;
288 ((AliTRDparameter &) p).fTimeStructOn = fTimeStructOn;
289 if (((AliTRDparameter &) p).fTimeStruct)
290 delete [] ((AliTRDparameter &) p).fTimeStruct;
291 ((AliTRDparameter &) p).fTimeStruct = new Float_t[38*26];
292 for (Int_t i = 0; i < 38*26; i++) {
293 ((AliTRDparameter &) p).fTimeStruct[i] = fTimeStruct[i];
294 }
295
17b26de4 296}
297
298//_____________________________________________________________________________
299void AliTRDparameter::Init()
300{
301 //
302 // Initializes the parameter
303 //
304 // The maximum number of pads
305 // and the position of pad 0,0,0
306 //
307 // chambers seen from the top:
308 // +----------------------------+
309 // | |
310 // | | ^
311 // | | rphi|
312 // | | |
313 // |0 | |
314 // +----------------------------+ +------>
315 // z
316 // chambers seen from the side: ^
317 // +----------------------------+ drift|
318 // |0 | |
319 // | | |
320 // +----------------------------+ +------>
321 // z
322 //
323 // IMPORTANT: time bin 0 is now the first one in the drift region
324 // closest to the readout !!!
325 //
326
327 //
328 // ----------------------------------------------------------------------------
329 // The pad definition
330 // ----------------------------------------------------------------------------
331 //
332
333 // The pad size in column direction (rphi-direction)
a328fff9 334 //SetColPadSize(0,0.65);
335 //SetColPadSize(1,0.68);
336 //SetColPadSize(2,0.71);
337 //SetColPadSize(3,0.74);
338 //SetColPadSize(4,0.77);
339 //SetColPadSize(5,0.80);
340
341 SetColPadSize(0,0.664);
342 SetColPadSize(1,0.695);
343 SetColPadSize(2,0.726);
344 SetColPadSize(3,0.756);
345 SetColPadSize(4,0.788);
346 SetColPadSize(5,0.818);
73ae7b59 347
17b26de4 348 // The pad row (z-direction)
349 SetNRowPad();
350
351 // The number of time bins. Default is 100 ns timbin size
a328fff9 352 SetNTimeBin(20);
17b26de4 353
354 // Additional time bins before and after the drift region.
355 // Default is to only sample the drift region
356 SetExpandTimeBin(0,0);
357
358 //
359 // ----------------------------------------------------------------------------
360 // The digitization parameter
361 // ----------------------------------------------------------------------------
362 //
363
364 // The default parameter for the digitization
a328fff9 365 fGasGain = 4000.;
17b26de4 366 fChipGain = 12.4;
367 fNoise = 1000.;
368 fADCoutRange = 1023.; // 10-bit ADC
7e582e9f 369 fADCinRange = 2000.; // 2V input range
17b26de4 370 fADCthreshold = 1;
7e582e9f 371 fADCbaseline = 0;
17b26de4 372
373 // The drift velocity (cm / mus)
374 fDriftVelocity = 1.5;
375
376 // Diffusion on
377 fDiffusionOn = 1;
378
379 // E x B effects
7e582e9f 380 fExBOn = 1;
17b26de4 381
382 // Propability for electron attachment
383 fElAttachOn = 0;
384 fElAttachProp = 0.0;
385
386 // The pad response function
387 fPRFOn = 1;
388
389 // The time response function
390 fTRFOn = 1;
391
392 // The cross talk
7e582e9f 393 fCTOn = 1;
17b26de4 394
395 // The tail cancelation
396 fTCOn = 1;
397
398 // The number of exponentials
399 fTCnexp = 2;
400
401 // The pad coupling factor (same number as for the TPC)
a328fff9 402 fPadCoupling = 0.3;
17b26de4 403
404 // The time coupling factor (same number as for the TPC)
405 fTimeCoupling = 0.4;
406
a328fff9 407 // Drift time non-isochronity on
408 fTimeStructOn = 1;
409
410 // Wire planes staggered
411 fStaggeringOn = 1;
412
413 // Distance of first Anode wire from first pad edge
414 fAnodeWireOffset = 0.25;
415
17b26de4 416 // The tilting angle for the readout pads
73ae7b59 417 SetTiltingAngle(2.0);
17b26de4 418
419 // The magnetic field strength in Tesla
c57e2264 420 fField = 0.4;
17b26de4 421
422 //
423 // ----------------------------------------------------------------------------
424 // The clusterization parameter
425 // ----------------------------------------------------------------------------
426 //
427
428 // The default parameter for the clustering
429 fClusMaxThresh = 3;
430 fClusSigThresh = 1;
431
432 // Use the LUT
433 fLUTOn = 1;
434
435 ReInit();
436
437}
438
439//_____________________________________________________________________________
440void AliTRDparameter::ReInit()
441{
442 //
443 // Reinitializes the parameter class after a change
444 //
445
a328fff9 446 // Create the sampled timing structure
447 SampleTimeStruct();
448
17b26de4 449 // Calculate the time bin width in ns
450 fTimeBinWidth = fTimeBinSize / fDriftVelocity * 1000.0;
451
452 // The range and the binwidth for the sampled TRF
453 fTRFbin = 100;
454 // Start 0.2 mus before the signal
455 fTRFlo = -0.2 * fDriftVelocity;
456 // End the maximum driftlength after the signal
457 fTRFhi = AliTRDgeometry::DrThick()
458 + fTimeAfter * fTimeBinSize;
459 fTRFwid = (fTRFhi - fTRFlo) / ((Float_t) fTRFbin);
460
461 // Transverse and longitudinal diffusion coefficients (Xe/CO2)
462 fDiffusionT = GetDiffusionT(fDriftVelocity,fField);
463 fDiffusionL = GetDiffusionL(fDriftVelocity,fField);
464
465 // omega * tau.= tan(Lorentz-angle)
466 fOmegaTau = GetOmegaTau(fDriftVelocity,fField);
467
468 // The Lorentz factor
469 if (fExBOn) {
470 fLorentzFactor = 1.0 / (1.0 + fOmegaTau*fOmegaTau);
471 }
472 else {
473 fLorentzFactor = 1.0;
474 }
475
476 // Create the sampled PRF
477 SamplePRF();
478
479 // Create the sampled TRF
480 SampleTRF();
481
482 // Create the LUT
483 FillLUT();
484
485}
486
487//_____________________________________________________________________________
afc51ac2 488void AliTRDparameter::SetNRowPad(Int_t p, Int_t c, Int_t npad)
17b26de4 489{
490 //
491 // Redefines the number of pads in raw direction for
492 // a given plane and chamber number
493 //
494
495 for (Int_t isect = 0; isect < AliTRDgeometry::Nsect(); isect++) {
496
497 fRowMax[p][c][isect] = npad;
498
499 fRowPadSize[p][c][isect] = (fGeo->GetChamberLength(p,c)
500 - 2.* AliTRDgeometry::RpadW())
501 / ((Float_t) npad);
502
503 }
504
505}
506
507//_____________________________________________________________________________
508void AliTRDparameter::SetNRowPad()
509{
510 //
511 // Defines the number of pads in row direction
512 //
513
514 Int_t isect;
515 Int_t icham;
516 Int_t iplan;
517
518 Int_t rowMax[kNplan][kNcham] = { { 16, 16, 12, 16, 16 }
519 , { 16, 16, 12, 16, 16 }
520 , { 16, 16, 12, 16, 16 }
521 , { 16, 16, 12, 16, 16 }
ad973dd4 522 , { 16, 16, 12, 16, 16 }
523 , { 16, 16, 12, 16, 16 } };
17b26de4 524
525 Float_t rpadW = AliTRDgeometry::RpadW();
526
527 for (isect = 0; isect < kNsect; isect++) {
528 for (icham = 0; icham < kNcham; icham++) {
529 for (iplan = 0; iplan < kNplan; iplan++) {
530
531 fRowMax[iplan][icham][isect] = rowMax[iplan][icham];
532
533 fRowPadSize[iplan][icham][isect] = (fGeo->GetChamberLength(iplan,icham)
534 - 2.*rpadW)
535 / ((Float_t) rowMax[iplan][icham]);
536
537 Float_t row0 = rpadW - fGeo->GetChamberLength(iplan,0)
538 - fGeo->GetChamberLength(iplan,1)
539 - fGeo->GetChamberLength(iplan,2) / 2.;
540 for (Int_t ic = 0; ic < icham; ic++) {
4bd34b78 541 row0 += fGeo->GetChamberLength(iplan,ic);
17b26de4 542 }
543 fRow0[iplan][icham][isect] = row0;
544
545 }
546 }
547 }
548
549}
550
551//_____________________________________________________________________________
afc51ac2 552void AliTRDparameter::SetColPadSize(Int_t p, Float_t s)
17b26de4 553{
554 //
555 // Redefines the pad size in column direction
556 //
557
558 Float_t cpadW = AliTRDgeometry::CpadW();
559
560 fColPadSize[p] = s;
561 fCol0[p] = - fGeo->GetChamberWidth(p)/2. + cpadW;
562 fColMax[p] = ((Int_t) ((fGeo->GetChamberWidth(p) - 2.*cpadW) / s));
563
564}
565
566//_____________________________________________________________________________
afc51ac2 567void AliTRDparameter::SetNTimeBin(Int_t nbin)
17b26de4 568{
569 //
570 // Redefines the number of time bins in the drift region.
571 // The time bin width is defined by the length of the
572 // drift region divided by <nbin>.
573 //
574
575 fTimeMax = nbin;
576 fTimeBinSize = AliTRDgeometry::DrThick() / ((Float_t) fTimeMax);
577 for (Int_t iplan = 0; iplan < AliTRDgeometry::Nplan(); iplan++) {
578 fTime0[iplan] = AliTRDgeometry::Rmin()
579 + AliTRDgeometry::CraHght()
580 + AliTRDgeometry::CdrHght()
581 + iplan * (AliTRDgeometry::Cheight()
582 + AliTRDgeometry::Cspace());
583 }
584
585}
586
587//_____________________________________________________________________________
0a29d0f1 588Float_t AliTRDparameter::CrossTalk(Float_t time) const
17b26de4 589{
590 //
591 // Applies the pad-pad capacitive cross talk
592 //
593
594 Int_t iBin = ((Int_t) ((time - fTRFlo) / fTRFwid));
595 if ((iBin >= 0) && (iBin < fTRFbin)) {
596 return fCTsmp[iBin];
597 }
598 else {
599 return 0.0;
600 }
601
602}
603
a328fff9 604//_____________________________________________________________________________
605Int_t AliTRDparameter::TimeStruct(Float_t time, Float_t z, Float_t *xyz) const
606{
607 //
608 // Applies the time structure of the drift cells (by C.Lippmann).
609 // The drift time of electrons to the anode wires depends on the
610 // distance to the wire (z) and on the position in the drift region.
611 //
612 // input : time (radial distance from pad cathode) in [cm] and z (distance
613 // from anode wire parallel to cathode planes) in [cm]
614 //
615
616 if ( z > 0.24 ) z = 0.24;
617 if ( !fStaggeringOn && z < 0.01 ) z = 0.01;
618
619 Int_t r1 = (Int_t)(10*time);
620 Int_t r2 = r1+1;
621 Int_t z1 = (Int_t)(100*z);
622 Int_t z2 = z1+1;
623
624 if (r1<0 || r1>37 || z1<0 || z1>25) {
625 printf("<AliTRDparameter::TimeStruct> Warning. Indices out of range: ");
626 printf("time=%.2f, z=%.2f, r1=%d, z1=%d\n",time,z,r1,z1);
627 return kFALSE;
628 if (r1<0) r1 = 0;
629 if (r1>37) r1 = 37;
630 if (z1<0) z1 = 0;
631 if (z1>25) z1 = 25;
632 }
633
634 // 2D Interpolation:
635 Float_t y11, y12, y21, y22, y1, y2;
636 y11 = fTimeStruct[r1+38*z1];
637 y22 = (r2 <= 37 && z2 <= 25) ? fTimeStruct[r2+38*z2] : fTimeStruct[37+38*25];
638 y12 = (z2 <= 25) ? fTimeStruct[r1+38*z2] : fTimeStruct[r1+38*25];
639 y21 = (r2 <= 37) ? fTimeStruct[r2+38*z1] : fTimeStruct[37+38*z1];
640
641 y1 = (y21-y11)*10*time + y11 - (y21-y11)*r1;
642 y2 = (y22-y12)*10*time + y12 - (y22-y12)*r1;
643
644 Float_t AmTh = AliTRDgeometry::AmThick() / 2.;
645 Float_t tdrift = 0.0; // drift time (GARFIELD)
646 if (TMath::Abs(time-AmTh)>0.005 || z>0.005)
647 tdrift = (y2-y1)*100*z + y1 - (y2-y1)*z1;
648 if (time < AmTh) tdrift *= -1.;
649 Float_t xdrift = tdrift*(AmTh + AliTRDgeometry::DrThick())/fTimeStruct[37] + AmTh;
650 Float_t offset = time - xdrift;
651
652 xyz[0] = xyz[0] + offset;
653 xyz[1] = xyz[1];
654 xyz[2] = xyz[2];
655
656 return 1;
657
658}
659
17b26de4 660//_____________________________________________________________________________
661Int_t AliTRDparameter::Diffusion(Float_t driftlength, Float_t *xyz)
662{
663 //
664 // Applies the diffusion smearing to the position of a single electron
665 //
666
667 Float_t driftSqrt = TMath::Sqrt(driftlength);
668 Float_t sigmaT = driftSqrt * fDiffusionT;
669 Float_t sigmaL = driftSqrt * fDiffusionL;
670 xyz[0] = gRandom->Gaus(xyz[0], sigmaL * fLorentzFactor);
671 xyz[1] = gRandom->Gaus(xyz[1], sigmaT * fLorentzFactor);
672 xyz[2] = gRandom->Gaus(xyz[2], sigmaT);
673
674 return 1;
675
676}
677
678//_____________________________________________________________________________
0a29d0f1 679Int_t AliTRDparameter::ExB(Float_t driftlength, Float_t *xyz) const
17b26de4 680{
681 //
682 // Applies E x B effects to the position of a single electron
683 //
684
685 xyz[0] = xyz[0];
686 xyz[1] = xyz[1] + fOmegaTau * driftlength;
687 xyz[2] = xyz[2];
688
689 return 1;
690
691}
692
693//_____________________________________________________________________________
694Int_t AliTRDparameter::PadResponse(Float_t signal, Float_t dist
0a29d0f1 695 , Int_t plane, Float_t *pad) const
17b26de4 696{
697 //
698 // Applies the pad response
699 //
700
701 const Int_t kNplan = AliTRDgeometry::kNplan;
702
703 Int_t iBin = ((Int_t) (( - dist - fPRFlo) / fPRFwid));
704 Int_t iOff = plane * fPRFbin;
705
706 Int_t iBin0 = iBin - fPRFpad + iOff;
707 Int_t iBin1 = iBin + iOff;
708 Int_t iBin2 = iBin + fPRFpad + iOff;
709
710 pad[0] = 0.0;
711 pad[1] = 0.0;
712 pad[2] = 0.0;
713 if ((iBin1 >= 0) && (iBin1 < (fPRFbin*kNplan))) {
714
715 if (iBin0 >= 0) {
716 pad[0] = signal * fPRFsmp[iBin0];
717 }
718 pad[1] = signal * fPRFsmp[iBin1];
719 if (iBin2 < (fPRFbin*kNplan)) {
720 pad[2] = signal * fPRFsmp[iBin2];
721 }
722
723 return 1;
724
725 }
726 else {
727
728 return 0;
729
730 }
731
732}
733
734//_____________________________________________________________________________
0a29d0f1 735Float_t AliTRDparameter::TimeResponse(Float_t time) const
17b26de4 736{
737 //
738 // Applies the preamp shaper time response
739 //
740
741 Int_t iBin = ((Int_t) ((time - fTRFlo) / fTRFwid));
742 if ((iBin >= 0) && (iBin < fTRFbin)) {
743 return fTRFsmp[iBin];
744 }
745 else {
746 return 0.0;
747 }
748
749}
750
751//_____________________________________________________________________________
752Float_t AliTRDparameter::Col0Tilted(Float_t col0, Float_t rowOffset
753 , Int_t plane)
754{
755 //
756 // Calculates col0 for tilted pads
757 //
758
759 Float_t diff = fTiltingAngle * rowOffset;
a328fff9 760 return (col0 + TMath::Power(-1.0,(plane+1)) * diff);
17b26de4 761
762}
763
764//_____________________________________________________________________________
765void AliTRDparameter::SampleTRF()
766{
767 //
768 // Samples the time response function
769 //
770 // New TRF from Venelin Angelov, simulated with CADENCE
771 // Pad-ground capacitance = 25 pF
772 // Pad-pad cross talk capacitance = 6 pF
773 //
774
775 Int_t ipos1;
776 Int_t ipos2;
777 Float_t diff;
778
779 const Int_t kNpasa = 252;
780
781 Float_t time[kNpasa] = { -0.220000, -0.210000, -0.200000, -0.190000
782 , -0.180000, -0.170000, -0.160000, -0.150000
783 , -0.140000, -0.130000, -0.120000, -0.110000
784 , -0.100000, -0.090000, -0.080000, -0.070000
785 , -0.060000, -0.050000, -0.040000, -0.030000
786 , -0.020000, -0.010000, -0.000000, 0.010000
787 , 0.020000, 0.030000, 0.040000, 0.050000
788 , 0.060000, 0.070000, 0.080000, 0.090000
789 , 0.100000, 0.110000, 0.120000, 0.130000
790 , 0.140000, 0.150000, 0.160000, 0.170000
791 , 0.180000, 0.190000, 0.200000, 0.210000
792 , 0.220000, 0.230000, 0.240000, 0.250000
793 , 0.260000, 0.270000, 0.280000, 0.290000
794 , 0.300000, 0.310000, 0.320000, 0.330000
795 , 0.340000, 0.350000, 0.360000, 0.370000
796 , 0.380000, 0.390000, 0.400000, 0.410000
797 , 0.420000, 0.430000, 0.440000, 0.450000
798 , 0.460000, 0.470000, 0.480000, 0.490000
799 , 0.500000, 0.510000, 0.520000, 0.530000
800 , 0.540000, 0.550000, 0.560000, 0.570000
801 , 0.580000, 0.590000, 0.600000, 0.610000
802 , 0.620000, 0.630000, 0.640000, 0.650000
803 , 0.660000, 0.670000, 0.680000, 0.690000
804 , 0.700000, 0.710000, 0.720000, 0.730000
805 , 0.740000, 0.750000, 0.760000, 0.770000
806 , 0.780000, 0.790000, 0.800000, 0.810000
807 , 0.820000, 0.830000, 0.840000, 0.850000
808 , 0.860000, 0.870000, 0.880000, 0.890000
809 , 0.900000, 0.910000, 0.920000, 0.930000
810 , 0.940000, 0.950000, 0.960000, 0.970000
811 , 0.980000, 0.990000, 1.000000, 1.010000
812 , 1.020000, 1.030000, 1.040000, 1.050000
813 , 1.060000, 1.070000, 1.080000, 1.090000
814 , 1.100000, 1.110000, 1.120000, 1.130000
815 , 1.140000, 1.150000, 1.160000, 1.170000
816 , 1.180000, 1.190000, 1.200000, 1.210000
817 , 1.220000, 1.230000, 1.240000, 1.250000
818 , 1.260000, 1.270000, 1.280000, 1.290000
819 , 1.300000, 1.310000, 1.320000, 1.330000
820 , 1.340000, 1.350000, 1.360000, 1.370000
821 , 1.380000, 1.390000, 1.400000, 1.410000
822 , 1.420000, 1.430000, 1.440000, 1.450000
823 , 1.460000, 1.470000, 1.480000, 1.490000
824 , 1.500000, 1.510000, 1.520000, 1.530000
825 , 1.540000, 1.550000, 1.560000, 1.570000
826 , 1.580000, 1.590000, 1.600000, 1.610000
827 , 1.620000, 1.630000, 1.640000, 1.650000
828 , 1.660000, 1.670000, 1.680000, 1.690000
829 , 1.700000, 1.710000, 1.720000, 1.730000
830 , 1.740000, 1.750000, 1.760000, 1.770000
831 , 1.780000, 1.790000, 1.800000, 1.810000
832 , 1.820000, 1.830000, 1.840000, 1.850000
833 , 1.860000, 1.870000, 1.880000, 1.890000
834 , 1.900000, 1.910000, 1.920000, 1.930000
835 , 1.940000, 1.950000, 1.960000, 1.970000
836 , 1.980000, 1.990000, 2.000000, 2.010000
837 , 2.020000, 2.030000, 2.040000, 2.050000
838 , 2.060000, 2.070000, 2.080000, 2.090000
839 , 2.100000, 2.110000, 2.120000, 2.130000
840 , 2.140000, 2.150000, 2.160000, 2.170000
841 , 2.180000, 2.190000, 2.200000, 2.210000
842 , 2.220000, 2.230000, 2.240000, 2.250000
843 , 2.260000, 2.270000, 2.280000, 2.290000 };
844
845 Float_t signal[kNpasa] = { 0.000000, 0.000000, 0.000000, 0.000000
846 , 0.000000, 0.000000, 0.000000, 0.000396
847 , 0.005096, 0.022877, 0.061891, 0.126614
848 , 0.215798, 0.324406, 0.444507, 0.566817
849 , 0.683465, 0.787089, 0.873159, 0.937146
850 , 0.979049, 0.999434, 1.000000, 0.983579
851 , 0.954134, 0.913364, 0.866365, 0.813703
852 , 0.759910, 0.706116, 0.653454, 0.603624
853 , 0.556625, 0.514156, 0.475085, 0.439977
854 , 0.408834, 0.380578, 0.355549, 0.333352
855 , 0.313647, 0.296093, 0.280351, 0.266195
856 , 0.253397, 0.241789, 0.231257, 0.221574
857 , 0.212627, 0.204417, 0.196772, 0.189581
858 , 0.182956, 0.176784, 0.171008, 0.165515
859 , 0.160419, 0.155606, 0.151076, 0.146716
860 , 0.142639, 0.138845, 0.135221, 0.131767
861 , 0.128482, 0.125368, 0.122424, 0.119592
862 , 0.116931, 0.114326, 0.111891, 0.109513
863 , 0.107248, 0.105096, 0.103058, 0.101019
864 , 0.099151, 0.097282, 0.095527, 0.093715
865 , 0.092129, 0.090544, 0.088958, 0.087429
866 , 0.086014, 0.084598, 0.083239, 0.081880
867 , 0.080634, 0.079388, 0.078143, 0.077010
868 , 0.075878, 0.074745, 0.073669, 0.072593
869 , 0.071574, 0.070612, 0.069649, 0.068686
870 , 0.067780, 0.066874, 0.066025, 0.065176
871 , 0.064326, 0.063533, 0.062684, 0.061948
872 , 0.061212, 0.060419, 0.059740, 0.059003
873 , 0.058324, 0.057644, 0.057022, 0.056342
874 , 0.055663, 0.055096, 0.054473, 0.053851
875 , 0.053284, 0.052718, 0.052152, 0.051585
876 , 0.051019, 0.050566, 0.050000, 0.049490
877 , 0.048981, 0.048528, 0.048018, 0.047508
878 , 0.047055, 0.046602, 0.046149, 0.045696
879 , 0.045300, 0.044904, 0.044451, 0.044054
880 , 0.043658, 0.043205, 0.042865, 0.042469
881 , 0.042072, 0.041733, 0.041336, 0.040997
882 , 0.040657, 0.040260, 0.039921, 0.039581
883 , 0.039241, 0.038958, 0.038618, 0.038335
884 , 0.037995, 0.037656, 0.037373, 0.037089
885 , 0.036806, 0.036467, 0.036183, 0.035900
886 , 0.035617, 0.035334, 0.035108, 0.034824
887 , 0.034541, 0.034315, 0.034032, 0.033805
888 , 0.033522, 0.033296, 0.033069, 0.032786
889 , 0.032559, 0.032333, 0.032106, 0.031880
890 , 0.031653, 0.031427, 0.031200, 0.030974
891 , 0.030804, 0.030578, 0.030351, 0.030125
892 , 0.029955, 0.029785, 0.029558, 0.029332
893 , 0.029162, 0.028992, 0.028766, 0.028596
894 , 0.028426, 0.028199, 0.028086, 0.027860
895 , 0.027746, 0.027633, 0.027463, 0.027293
896 , 0.027180, 0.027067, 0.026954, 0.026954
897 , 0.026840, 0.026727, 0.026727, 0.026614
898 , 0.026614, 0.026614, 0.026557, 0.026501
899 , 0.026501, 0.026501, 0.026501, 0.026501
900 , 0.026501, 0.026501, 0.026501, 0.026387
901 , 0.026387, 0.026387, 0.026387, 0.026387
902 , 0.026387, 0.026387, 0.026387, 0.026387
903 , 0.026387, 0.026387, 0.026387, 0.026387
904 , 0.026387, 0.026274, 0.026274, 0.026274
905 , 0.026274, 0.026274, 0.026274, 0.026274
906 , 0.026274, 0.026274, 0.026274, 0.026274
907 , 0.026274, 0.026274, 0.026274, 0.026161 };
908
909 Float_t xtalk[kNpasa] = { 0.000000, 0.000000, 0.000000, 0.000000
910 , 0.000000, 0.000000, 0.000000, 0.000113
911 , 0.000793, 0.003058, 0.007305, 0.013194
912 , 0.019706, 0.025821, 0.030634, 0.033465
913 , 0.034145, 0.032729, 0.029615, 0.025198
914 , 0.019989, 0.014496, 0.009003, 0.003964
915 , -0.000510, -0.004190, -0.007191, -0.009400
916 , -0.010872, -0.011835, -0.012288, -0.012288
917 , -0.012005, -0.011495, -0.010872, -0.010136
918 , -0.009343, -0.008607, -0.007871, -0.007191
919 , -0.006512, -0.005946, -0.005379, -0.004926
920 , -0.004473, -0.004077, -0.003737, -0.003398
921 , -0.003114, -0.002831, -0.002605, -0.002378
922 , -0.002208, -0.002039, -0.001869, -0.001699
923 , -0.001585, -0.001472, -0.001359, -0.001246
924 , -0.001132, -0.001019, -0.001019, -0.000906
925 , -0.000906, -0.000793, -0.000793, -0.000680
926 , -0.000680, -0.000680, -0.000566, -0.000566
927 , -0.000566, -0.000566, -0.000453, -0.000453
928 , -0.000453, -0.000453, -0.000453, -0.000453
929 , -0.000340, -0.000340, -0.000340, -0.000340
930 , -0.000340, -0.000340, -0.000340, -0.000340
931 , -0.000340, -0.000340, -0.000340, -0.000340
932 , -0.000340, -0.000227, -0.000227, -0.000227
933 , -0.000227, -0.000227, -0.000227, -0.000227
934 , -0.000227, -0.000227, -0.000227, -0.000227
935 , -0.000227, -0.000227, -0.000227, -0.000227
936 , -0.000227, -0.000227, -0.000227, -0.000227
937 , -0.000227, -0.000227, -0.000227, -0.000227
938 , -0.000227, -0.000227, -0.000227, -0.000227
939 , -0.000227, -0.000227, -0.000227, -0.000227
940 , -0.000227, -0.000227, -0.000227, -0.000227
941 , -0.000227, -0.000227, -0.000227, -0.000113
942 , -0.000113, -0.000113, -0.000113, -0.000113
943 , -0.000113, -0.000113, -0.000113, -0.000113
944 , -0.000113, -0.000113, -0.000113, -0.000113
945 , -0.000113, -0.000113, -0.000113, -0.000113
946 , -0.000113, -0.000113, -0.000113, -0.000113
947 , -0.000113, -0.000113, -0.000113, -0.000113
948 , -0.000113, -0.000113, -0.000113, -0.000113
949 , -0.000113, -0.000113, -0.000113, -0.000113
950 , -0.000113, -0.000113, -0.000113, -0.000113
951 , -0.000113, -0.000113, -0.000113, -0.000113
952 , -0.000113, -0.000113, -0.000113, -0.000113
953 , -0.000113, -0.000113, -0.000113, -0.000113
954 , -0.000113, -0.000113, -0.000113, -0.000113
955 , -0.000113, -0.000113, -0.000113, -0.000113
956 , -0.000113, -0.000113, -0.000113, -0.000113
957 , -0.000113, -0.000113, -0.000113, -0.000113
958 , -0.000113, -0.000113, -0.000113, -0.000113
959 , -0.000113, -0.000113, -0.000113, -0.000113
960 , -0.000113, -0.000113, -0.000113, -0.000113
961 , -0.000113, -0.000113, -0.000113, 0.000000
962 , 0.000000, 0.000000, 0.000000, 0.000000
963 , 0.000000, 0.000000, 0.000000, 0.000000
964 , 0.000000, 0.000000, 0.000000, 0.000000
965 , 0.000000, 0.000000, 0.000000, 0.000000
966 , 0.000000, 0.000000, 0.000000, 0.000000
967 , 0.000000, 0.000000, 0.000000, 0.000000
968 , 0.000000, 0.000000, 0.000000, 0.000000
969 , 0.000000, 0.000000, 0.000000, 0.000000
970 , 0.000000, 0.000000, 0.000000, 0.000000
971 , 0.000000, 0.000000, 0.000000, 0.000000 };
972
973 // increase CrossTalk to measurements
974 for (Int_t ipasa = 0; ipasa < kNpasa; ipasa++) {
975 xtalk[ipasa] *= 1.75;
976 }
977
978 if (fTRFsmp) delete [] fTRFsmp;
979 fTRFsmp = new Float_t[fTRFbin];
980 if (fCTsmp) delete [] fCTsmp;
981 fCTsmp = new Float_t[fTRFbin];
982
983 Float_t loTRF = TMath::Max(fTRFlo / fDriftVelocity,time[0]);
984 Float_t hiTRF = TMath::Min(fTRFhi / fDriftVelocity,time[kNpasa-1]);
985 Float_t binWidth = (hiTRF - loTRF) / ((Float_t) fTRFbin);
986
987 // Take the linear interpolation
988 for (Int_t iBin = 0; iBin < fTRFbin; iBin++) {
989
990 Float_t bin = (((Float_t) iBin) + 0.5) * binWidth + loTRF;
991 ipos1 = ipos2 = 0;
992 diff = 0;
993 do {
994 diff = bin - time[ipos2++];
995 } while (diff > 0);
996 ipos2--;
997 if (ipos2 >= kNpasa) ipos2 = kNpasa - 1;
998 ipos1 = ipos2 - 1;
999
1000 fTRFsmp[iBin] = signal[ipos2]
1001 + diff * (signal[ipos2] - signal[ipos1])
1002 / ( time[ipos2] - time[ipos1]);
1003
1004 fCTsmp[iBin] = xtalk[ipos2]
1005 + diff * (xtalk[ipos2] - xtalk[ipos1])
1006 / ( time[ipos2] - time[ipos1]);
1007
1008 }
1009
1010}
1011
a328fff9 1012//_____________________________________________________________________________
1013void AliTRDparameter::SampleTimeStruct()
1014{
1015 //
1016 // Samples the timing structure of a drift cell
1017 // Drift Time data calculated with Garfield (by C.Lippmann)
1018 //
1019
1020 const Int_t ktimebin = 38;
1021 const Int_t kZbin = 26;
1022
1023 Float_t stagg[ktimebin][kZbin] =
1024 {{9.1221e-02, 9.1269e-02, 9.1426e-02, 9.1678e-02, 9.2041e-02, 9.2500e-02,
1025 9.3081e-02, 9.3760e-02, 9.4540e-02, 9.5434e-02, 9.6436e-02, 9.7554e-02,
1026 9.8796e-02, 1.0016e-01, 1.0167e-01, 1.0336e-01, 1.0528e-01, 1.0748e-01,
1027 1.1012e-01, 1.1348e-01, 1.1790e-01, 1.2395e-01, 1.3317e-01, 1.5036e-01,
1028 1.9348e-01, 5.7191e-01},
1029 {6.5708e-02, 6.5787e-02, 6.5954e-02, 6.6237e-02, 6.6646e-02, 6.7170e-02,
1030 6.7804e-02, 6.8554e-02, 6.9424e-02, 7.0392e-02, 7.1492e-02, 7.2693e-02,
1031 7.4006e-02, 7.5459e-02, 7.7042e-02, 7.8795e-02, 8.0786e-02, 8.3081e-02,
1032 8.5798e-02, 8.9290e-02, 9.3841e-02, 1.0007e-01, 1.0959e-01, 1.2741e-01,
1033 1.7152e-01, 5.4720e-01},
1034 {3.9602e-02, 3.9699e-02, 3.9969e-02, 4.0417e-02, 4.1015e-02, 4.1802e-02,
1035 4.2726e-02, 4.3804e-02, 4.4992e-02, 4.6309e-02, 4.7720e-02, 4.9244e-02,
1036 5.0874e-02, 5.2592e-02, 5.4437e-02, 5.6461e-02, 5.8704e-02, 6.1340e-02,
1037 6.4533e-02, 6.8509e-02, 7.3620e-02, 8.0737e-02, 9.1920e-02, 1.1276e-01,
1038 1.6078e-01, 5.2455e-01},
1039 {1.1236e-02, 1.1514e-02, 1.2355e-02, 1.3666e-02, 1.5354e-02, 1.7292e-02,
1040 1.9469e-02, 2.1756e-02, 2.4118e-02, 2.6505e-02, 2.8902e-02, 3.1273e-02,
1041 3.3618e-02, 3.5960e-02, 3.8367e-02, 4.0957e-02, 4.3859e-02, 4.7286e-02,
1042 5.1516e-02, 5.7160e-02, 6.5086e-02, 7.6740e-02, 9.4905e-02, 1.2426e-01,
1043 1.8267e-01, 4.8444e-01},
1044 {1.1285e-02, 1.1581e-02, 1.2430e-02, 1.3739e-02, 1.5383e-02, 1.7329e-02,
1045 1.9477e-02, 2.1732e-02, 2.4063e-02, 2.6412e-02, 2.8746e-02, 3.1073e-02,
1046 3.3329e-02, 3.5733e-02, 3.8146e-02, 4.0847e-02, 4.3908e-02, 4.7650e-02,
1047 5.2475e-02, 5.9069e-02, 6.8420e-02, 8.2181e-02, 1.0199e-01, 1.3525e-01,
1048 1.9150e-01, 4.6381e-01},
1049 {3.9345e-02, 3.9430e-02, 3.9698e-02, 4.0124e-02, 4.0714e-02, 4.1462e-02,
1050 4.2325e-02, 4.3327e-02, 4.4476e-02, 4.5727e-02, 4.7075e-02, 4.8532e-02,
1051 5.0118e-02, 5.1838e-02, 5.3758e-02, 5.5958e-02, 5.8528e-02, 6.1589e-02,
1052 6.5285e-02, 6.9903e-02, 7.6022e-02, 8.4799e-02, 9.8707e-02, 1.2316e-01,
1053 1.7495e-01, 5.2371e-01},
1054 {6.4837e-02, 6.4889e-02, 6.5062e-02, 6.5329e-02, 6.5688e-02, 6.6204e-02,
1055 6.6770e-02, 6.7494e-02, 6.8306e-02, 6.9234e-02, 7.0297e-02, 7.1484e-02,
1056 7.2842e-02, 7.4318e-02, 7.6041e-02, 7.8040e-02, 8.0428e-02, 8.3315e-02,
1057 8.6827e-02, 9.1171e-02, 9.6759e-02, 1.0445e-01, 1.1651e-01, 1.3841e-01,
1058 1.8746e-01, 5.4644e-01},
1059 {9.0789e-02, 9.0824e-02, 9.0908e-02, 9.1065e-02, 9.1268e-02, 9.1522e-02,
1060 9.1838e-02, 9.2207e-02, 9.2643e-02, 9.3230e-02, 9.4073e-02, 9.5341e-02,
1061 9.7229e-02, 1.0633e-01, 1.0703e-01, 1.0868e-01, 1.1124e-01, 1.1451e-01,
1062 1.1853e-01, 1.2342e-01, 1.2981e-01, 1.3868e-01, 1.5245e-01, 1.7661e-01,
1063 2.2796e-01, 5.6931e-01},
1064 {1.2735e-01, 1.2744e-01, 1.2775e-01, 1.2828e-01, 1.2909e-01, 1.3021e-01,
1065 1.3172e-01, 1.3377e-01, 1.3658e-01, 1.4055e-01, 1.4624e-01, 1.5549e-01,
1066 1.7490e-01, 2.1347e-01, 1.8445e-01, 1.7581e-01, 1.7263e-01, 1.7216e-01,
1067 1.7377e-01, 1.7731e-01, 1.8337e-01, 1.9306e-01, 2.0875e-01, 2.3610e-01,
1068 2.9100e-01, 6.0131e-01},
1069 {1.7654e-01, 1.7663e-01, 1.7711e-01, 1.7789e-01, 1.7901e-01, 1.8055e-01,
1070 1.8252e-01, 1.8511e-01, 1.8844e-01, 1.9288e-01, 1.9889e-01, 2.0816e-01,
1071 2.2673e-01, 2.7253e-01, 2.3949e-01, 2.3043e-01, 2.2695e-01, 2.2620e-01,
1072 2.2751e-01, 2.3091e-01, 2.3691e-01, 2.4671e-01, 2.6258e-01, 2.9036e-01,
1073 3.4575e-01, 6.4208e-01},
1074 {2.2845e-01, 2.2860e-01, 2.2907e-01, 2.2987e-01, 2.3103e-01, 2.3262e-01,
1075 2.3466e-01, 2.3727e-01, 2.4063e-01, 2.4510e-01, 2.5116e-01, 2.6032e-01,
1076 2.7853e-01, 3.2713e-01, 2.9240e-01, 2.8314e-01, 2.7962e-01, 2.7878e-01,
1077 2.8008e-01, 2.8341e-01, 2.8944e-01, 2.9918e-01, 3.1503e-01, 3.4275e-01,
1078 3.9786e-01, 6.8482e-01},
1079 {2.8077e-01, 2.8094e-01, 2.8142e-01, 2.8222e-01, 2.8341e-01, 2.8496e-01,
1080 2.8702e-01, 2.8962e-01, 2.9301e-01, 2.9745e-01, 3.0350e-01, 3.1263e-01,
1081 3.3069e-01, 3.8049e-01, 3.4500e-01, 3.3562e-01, 3.3206e-01, 3.3126e-01,
1082 3.3253e-01, 3.3588e-01, 3.4183e-01, 3.5155e-01, 3.6729e-01, 3.9494e-01,
1083 4.4955e-01, 7.2458e-01},
1084 {3.3321e-01, 3.3336e-01, 3.3385e-01, 3.3466e-01, 3.3584e-01, 3.3744e-01,
1085 3.3946e-01, 3.4213e-01, 3.4544e-01, 3.4987e-01, 3.5592e-01, 3.6502e-01,
1086 3.8298e-01, 4.3361e-01, 3.9758e-01, 3.8814e-01, 3.8456e-01, 3.8373e-01,
1087 3.8498e-01, 3.8831e-01, 3.9424e-01, 4.0392e-01, 4.1961e-01, 4.4703e-01,
1088 5.0121e-01, 7.6594e-01},
1089 {3.8572e-01, 3.8588e-01, 3.8634e-01, 3.8716e-01, 3.8834e-01, 3.8993e-01,
1090 3.9196e-01, 3.9456e-01, 3.9792e-01, 4.0236e-01, 4.0848e-01, 4.1745e-01,
1091 4.3532e-01, 4.8671e-01, 4.5019e-01, 4.4067e-01, 4.3708e-01, 4.3625e-01,
1092 4.3746e-01, 4.4078e-01, 4.4663e-01, 4.5626e-01, 4.7192e-01, 4.9913e-01,
1093 5.5270e-01, 8.0632e-01},
1094 {4.3847e-01, 4.3855e-01, 4.3892e-01, 4.3976e-01, 4.4089e-01, 4.4247e-01,
1095 4.4451e-01, 4.4711e-01, 4.5048e-01, 4.5489e-01, 4.6092e-01, 4.6997e-01,
1096 4.8773e-01, 5.3996e-01, 5.0285e-01, 4.9328e-01, 4.8966e-01, 4.8878e-01,
1097 4.9006e-01, 4.9327e-01, 4.9912e-01, 5.0870e-01, 5.2424e-01, 5.5126e-01,
1098 6.0420e-01, 8.4589e-01},
1099 {4.9089e-01, 4.9105e-01, 4.9153e-01, 4.9234e-01, 4.9351e-01, 4.9509e-01,
1100 4.9712e-01, 4.9970e-01, 5.0306e-01, 5.0749e-01, 5.1348e-01, 5.2250e-01,
1101 5.4016e-01, 5.9329e-01, 5.5559e-01, 5.4594e-01, 5.4229e-01, 5.4138e-01,
1102 5.4257e-01, 5.4584e-01, 5.5162e-01, 5.6114e-01, 5.7660e-01, 6.0338e-01,
1103 6.5560e-01, 8.8395e-01},
1104 {5.4358e-01, 5.4372e-01, 5.4422e-01, 5.4500e-01, 5.4618e-01, 5.4776e-01,
1105 5.4978e-01, 5.5238e-01, 5.5572e-01, 5.6014e-01, 5.6613e-01, 5.7508e-01,
1106 5.9263e-01, 6.4680e-01, 6.0840e-01, 5.9867e-01, 5.9497e-01, 5.9416e-01,
1107 5.9522e-01, 5.9846e-01, 6.0424e-01, 6.1369e-01, 6.2902e-01, 6.5556e-01,
1108 7.0707e-01, 9.1967e-01},
1109 {5.9631e-01, 5.9648e-01, 5.9694e-01, 5.9776e-01, 5.9892e-01, 6.0049e-01,
1110 6.0252e-01, 6.0511e-01, 6.0845e-01, 6.1287e-01, 6.1881e-01, 6.2775e-01,
1111 6.4519e-01, 7.0051e-01, 6.6128e-01, 6.5147e-01, 6.4773e-01, 6.4680e-01,
1112 6.4793e-01, 6.5114e-01, 6.5690e-01, 6.6624e-01, 6.8147e-01, 7.0775e-01,
1113 7.5854e-01, 9.5826e-01},
1114 {6.4916e-01, 6.4928e-01, 6.4976e-01, 6.5057e-01, 6.5173e-01, 6.5329e-01,
1115 6.5533e-01, 6.5792e-01, 6.6124e-01, 6.6563e-01, 6.7159e-01, 6.8051e-01,
1116 6.9779e-01, 7.5441e-01, 7.1424e-01, 7.0434e-01, 7.0057e-01, 6.9962e-01,
1117 7.0071e-01, 7.0392e-01, 7.0959e-01, 7.1891e-01, 7.3396e-01, 7.6003e-01,
1118 8.1008e-01, 9.9861e-01},
1119 {7.0207e-01, 7.0221e-01, 7.0264e-01, 7.0345e-01, 7.0461e-01, 7.0621e-01,
1120 7.0820e-01, 7.1079e-01, 7.1410e-01, 7.1849e-01, 7.2442e-01, 7.3329e-01,
1121 7.5047e-01, 8.0863e-01, 7.6728e-01, 7.5729e-01, 7.5348e-01, 7.5250e-01,
1122 7.5358e-01, 7.5674e-01, 7.6239e-01, 7.7162e-01, 7.8659e-01, 8.1236e-01,
1123 8.6164e-01, 1.0402},
1124 {7.5498e-01, 7.5573e-01, 7.5560e-01, 7.5642e-01, 7.5759e-01, 7.5913e-01,
1125 7.6116e-01, 7.6373e-01, 7.6704e-01, 7.7142e-01, 7.7734e-01, 7.8617e-01,
1126 8.0322e-01, 8.6277e-01, 8.2039e-01, 8.1030e-01, 8.0646e-01, 8.0546e-01,
1127 8.0650e-01, 8.0964e-01, 8.1524e-01, 8.2443e-01, 8.3926e-01, 8.6476e-01,
1128 9.1328e-01, 1.0826},
1129 {8.0804e-01, 8.0817e-01, 8.0865e-01, 8.0945e-01, 8.1060e-01, 8.1219e-01,
1130 8.1420e-01, 8.1674e-01, 8.2006e-01, 8.2444e-01, 8.3032e-01, 8.3912e-01,
1131 8.5604e-01, 9.1704e-01, 8.7360e-01, 8.6340e-01, 8.5952e-01, 8.5850e-01,
1132 8.5951e-01, 8.6262e-01, 8.6815e-01, 8.7727e-01, 8.9200e-01, 9.1725e-01,
1133 9.6506e-01, 1.1263},
1134 {8.6112e-01, 8.6129e-01, 8.6175e-01, 8.6255e-01, 8.6370e-01, 8.6526e-01,
1135 8.6729e-01, 8.6986e-01, 8.7316e-01, 8.7749e-01, 8.8338e-01, 8.9214e-01,
1136 9.0895e-01, 9.7166e-01, 9.2687e-01, 9.1657e-01, 9.1266e-01, 9.1157e-01,
1137 9.1260e-01, 9.1569e-01, 9.2125e-01, 9.3021e-01, 9.4481e-01, 9.6985e-01,
1138 1.0169, 1.1709},
1139 {9.1435e-01, 9.1448e-01, 9.1492e-01, 9.1575e-01, 9.1689e-01, 9.1846e-01,
1140 9.2046e-01, 9.2304e-01, 9.2633e-01, 9.3068e-01, 9.3652e-01, 9.4523e-01,
1141 9.6191e-01, 1.0265, 9.8022e-01, 9.6983e-01, 9.6588e-01, 9.6480e-01,
1142 9.6576e-01, 9.6877e-01, 9.7426e-01, 9.8323e-01, 9.9774e-01, 1.0225,
1143 1.0689, 1.2167},
1144 {9.6759e-01, 9.6773e-01, 9.6823e-01, 9.6900e-01, 9.7017e-01, 9.7170e-01,
1145 9.7372e-01, 9.7628e-01, 9.7957e-01, 9.8389e-01, 9.8975e-01, 9.9845e-01,
1146 1.0150, 1.0814, 1.0336, 1.0232, 1.0192, 1.0181, 1.0190, 1.0220, 1.0274,
1147 1.0363, 1.0507, 1.0752, 1.1210, 1.2635},
1148 {1.0219, 1.0211, 1.0215, 1.0223, 1.0235, 1.0250, 1.0270, 1.0296, 1.0329,
1149 1.0372, 1.0432, 1.0517, 1.0681, 1.1366, 1.0872, 1.0766, 1.0725, 1.0714,
1150 1.0723, 1.0753, 1.0807, 1.0895, 1.1038, 1.1281, 1.1732, 1.3110},
1151 {1.0743, 1.0748, 1.0749, 1.0757, 1.0770, 1.0784, 1.0804, 1.0830, 1.0863,
1152 1.0906, 1.0964, 1.1050, 1.1214, 1.1919, 1.1407, 1.1300, 1.1260, 1.1248,
1153 1.1257, 1.1287, 1.1340, 1.1428, 1.1570, 1.1810, 1.2256, 1.3591},
1154 {1.1278, 1.1279, 1.1284, 1.1292, 1.1304, 1.1319, 1.1339, 1.1364, 1.1397,
1155 1.1440, 1.1498, 1.1584, 1.1747, 1.2472, 1.1943, 1.1836, 1.1795, 1.1783,
1156 1.1792, 1.1821, 1.1874, 1.1961, 1.2102, 1.2340, 1.2781, 1.4079},
1157 {1.1912, 1.1815, 1.1820, 1.1827, 1.1839, 1.1854, 1.1875, 1.1900, 1.1933,
1158 1.1975, 1.2033, 1.2119, 1.2281, 1.3027, 1.2480, 1.2371, 1.2330, 1.2318,
1159 1.2327, 1.2356, 1.2409, 1.2495, 1.2635, 1.2872, 1.3308, 1.4571},
1160 {1.2349, 1.2351, 1.2356, 1.2363, 1.2375, 1.2390, 1.2410, 1.2436, 1.2468,
1161 1.2511, 1.2569, 1.2654, 1.2815, 1.3583, 1.3017, 1.2908, 1.2866, 1.2854,
1162 1.2863, 1.2892, 1.2944, 1.3030, 1.3170, 1.3404, 1.3836, 1.5071},
1163 {1.3170, 1.2887, 1.2892, 1.2900, 1.2911, 1.2927, 1.2947, 1.2972, 1.3005,
1164 1.3047, 1.3105, 1.3190, 1.3350, 1.4139, 1.3555, 1.3445, 1.3403, 1.3391,
1165 1.3399, 1.3428, 1.3480, 1.3566, 1.3704, 1.3937, 1.4366, 1.5575},
1166 {1.3423, 1.3424, 1.3429, 1.3437, 1.3449, 1.3464, 1.3484, 1.3509, 1.3541,
1167 1.3584, 1.3642, 1.3727, 1.3886, 1.4695, 1.4093, 1.3982, 1.3940, 1.3928,
1168 1.3936, 1.3966, 1.4017, 1.4103, 1.4240, 1.4472, 1.4896, 1.6085},
1169 {1.3960, 1.3962, 1.3966, 1.3974, 1.3985, 1.4001, 1.4021, 1.4046, 1.4079,
1170 1.4122, 1.4179, 1.4264, 1.4423, 1.5251, 1.4632, 1.4520, 1.4477, 1.4465,
1171 1.4474, 1.4502, 1.4554, 1.4639, 1.4776, 1.5007, 1.5429, 1.6600},
1172 {1.4498, 1.4499, 1.4504, 1.4512, 1.4524, 1.4539, 1.4559, 1.4584, 1.4616,
1173 1.4659, 1.4717, 1.4801, 1.4959, 1.5806, 1.5170, 1.5058, 1.5016, 1.5003,
1174 1.5011, 1.5040, 1.5091, 1.5177, 1.5313, 1.5542, 1.5962, 1.7119},
1175 {1.5036, 1.5037, 1.5042, 1.5050, 1.5061, 1.5077, 1.5097, 1.5122, 1.5154,
1176 1.5197, 1.5254, 1.5339, 1.5497, 1.6359, 1.5708, 1.5596, 1.5554, 1.5541,
1177 1.5549, 1.5577, 1.5629, 1.5714, 1.5850, 1.6079, 1.6497, 1.7643},
1178 {1.5574, 1.5575, 1.5580, 1.5588, 1.5600, 1.5615, 1.5635, 1.5660, 1.5693,
1179 1.5735, 1.5792, 1.5877, 1.6035, 1.6909, 1.6247, 1.6135, 1.6092, 1.6080,
1180 1.6088, 1.6117, 1.6167, 1.6252, 1.6388, 1.6616, 1.7033, 1.8171},
1181 {1.6173, 1.6114, 1.6119, 1.6127, 1.6138, 1.6153, 1.6173, 1.6198, 1.6231,
1182 1.6274, 1.6331, 1.6415, 1.6573, 1.7454, 1.6786, 1.6674, 1.6631, 1.6618,
1183 1.6626, 1.6654, 1.6706, 1.6791, 1.6926, 1.7154, 1.7570, 1.8704},
1184 {1.6651, 1.6652, 1.6657, 1.6665, 1.6676, 1.6692, 1.6712, 1.6737, 1.6769,
1185 1.6812, 1.6869, 1.6953, 1.7111, 1.7995, 1.7324, 1.7212, 1.7169, 1.7157,
1186 1.7164, 1.7193, 1.7244, 1.7328, 1.7465, 1.7693, 1.8108, 1.9241}};
1187
1188 Float_t nonstagg[ktimebin][kZbin] =
1189 {{0.0912, 0.0913, 0.0914, 0.0917, 0.0920, 0.0925, 0.0931, 0.0938, 0.0946,
1190 0.0954, 0.0964, 0.0975, 0.0988, 0.1001, 0.1017, 0.1034, 0.1053, 0.1075,
1191 0.1101, 0.1135, 0.1179, 0.1239, 0.1332, 0.1504, 0.1935, 0.5719},
1192 {0.0657, 0.0658, 0.0660, 0.0662, 0.0666, 0.0672, 0.0678, 0.0685, 0.0694,
1193 0.0704, 0.0715, 0.0727, 0.0740, 0.0755, 0.0770, 0.0788, 0.0808, 0.0831,
1194 0.0858, 0.0893, 0.0938, 0.1001, 0.1096, 0.1274, 0.1715, 0.5475},
1195 {0.0396, 0.0397, 0.0400, 0.0404, 0.0410, 0.0418, 0.0427, 0.0438, 0.0450,
1196 0.0463, 0.0477, 0.0492, 0.0509, 0.0526, 0.0544, 0.0565, 0.0587, 0.0613,
1197 0.0645, 0.0685, 0.0736, 0.0807, 0.0919, 0.1128, 0.1608, 0.5233},
1198 {0.0112, 0.0115, 0.0124, 0.0137, 0.0154, 0.0173, 0.0195, 0.0218, 0.0241,
1199 0.0265, 0.0289, 0.0313, 0.0336, 0.0360, 0.0384, 0.0410, 0.0439, 0.0473,
1200 0.0515, 0.0571, 0.0651, 0.0767, 0.0949, 0.1243, 0.1826, 0.4858},
1201 {0.0113, 0.0116, 0.0124, 0.0137, 0.0154, 0.0173, 0.0195, 0.0217, 0.0241,
1202 0.0264, 0.0287, 0.0311, 0.0334, 0.0357, 0.0381, 0.0408, 0.0439, 0.0476,
1203 0.0525, 0.0591, 0.0684, 0.0821, 0.1019, 0.1352, 0.1914, 0.4601},
1204 {0.0394, 0.0394, 0.0397, 0.0401, 0.0407, 0.0415, 0.0423, 0.0434, 0.0445,
1205 0.0457, 0.0471, 0.0485, 0.0501, 0.0518, 0.0538, 0.0560, 0.0585, 0.0616,
1206 0.0652, 0.0698, 0.0759, 0.0846, 0.0983, 0.1226, 0.1742, 0.5225},
1207 {0.0650, 0.0650, 0.0652, 0.0655, 0.0658, 0.0663, 0.0669, 0.0676, 0.0685,
1208 0.0694, 0.0704, 0.0716, 0.0729, 0.0744, 0.0761, 0.0780, 0.0802, 0.0828,
1209 0.0860, 0.0899, 0.0950, 0.1020, 0.1130, 0.1334, 0.1809, 0.5444},
1210 {0.0929, 0.0929, 0.0922, 0.0921, 0.0923, 0.0928, 0.0934, 0.0941, 0.0950,
1211 0.0958, 0.0968, 0.0979, 0.0990, 0.1002, 0.1015, 0.1029, 0.1044, 0.1062,
1212 0.1080, 0.1101, 0.1126, 0.1155, 0.1192, 0.1241, 0.1312, 0.0000},
1213 {0.1688, 0.1657, 0.1518, 0.1450, 0.1409, 0.1382, 0.1366, 0.1357, 0.1352,
1214 0.1352, 0.1354, 0.1359, 0.1367, 0.1377, 0.1389, 0.1403, 0.1420, 0.1441,
1215 0.1465, 0.1495, 0.1532, 0.1580, 0.1643, 0.1736, 0.1902, 0.2919},
1216 {0.3413, 0.2191, 0.2052, 0.1981, 0.1936, 0.1905, 0.1883, 0.1869, 0.1860,
1217 0.1856, 0.1856, 0.1859, 0.1865, 0.1875, 0.1888, 0.1904, 0.1924, 0.1948,
1218 0.1977, 0.2011, 0.2054, 0.2107, 0.2175, 0.2272, 0.2440, 0.3413},
1219 {0.4016, 0.2716, 0.2576, 0.2505, 0.2459, 0.2428, 0.2406, 0.2392, 0.2383,
1220 0.2378, 0.2378, 0.2381, 0.2387, 0.2396, 0.2409, 0.2426, 0.2446, 0.2470,
1221 0.2500, 0.2535, 0.2578, 0.2631, 0.2700, 0.2796, 0.2964, 0.3877},
1222 {0.4388, 0.3240, 0.3100, 0.3029, 0.2983, 0.2952, 0.2931, 0.2916, 0.2907,
1223 0.2902, 0.2901, 0.2904, 0.2911, 0.2920, 0.2933, 0.2950, 0.2970, 0.2994,
1224 0.3024, 0.3059, 0.3102, 0.3155, 0.3224, 0.3319, 0.3486, 0.4320},
1225 {0.3580, 0.3764, 0.3625, 0.3554, 0.3509, 0.3477, 0.3455, 0.3440, 0.3431,
1226 0.3427, 0.3426, 0.3429, 0.3435, 0.3445, 0.3458, 0.3474, 0.3494, 0.3519,
1227 0.3548, 0.3583, 0.3626, 0.3679, 0.3747, 0.3843, 0.4008, 0.4768},
1228 {0.4023, 0.4289, 0.4150, 0.4079, 0.4033, 0.4002, 0.3980, 0.3965, 0.3956,
1229 0.3952, 0.3951, 0.3954, 0.3960, 0.3970, 0.3983, 0.3999, 0.4019, 0.4043,
1230 0.4072, 0.4107, 0.4150, 0.4203, 0.4271, 0.4367, 0.4530, 0.5228},
1231 {0.4334, 0.4815, 0.4676, 0.4604, 0.4559, 0.4527, 0.4506, 0.4491, 0.4482,
1232 0.4477, 0.4476, 0.4479, 0.4486, 0.4495, 0.4508, 0.4524, 0.4544, 0.4568,
1233 0.4597, 0.4632, 0.4675, 0.4728, 0.4796, 0.4890, 0.5052, 0.5699},
1234 {0.4695, 0.5341, 0.5202, 0.5130, 0.5085, 0.5053, 0.5032, 0.5017, 0.5008,
1235 0.5003, 0.5002, 0.5005, 0.5012, 0.5021, 0.5034, 0.5050, 0.5070, 0.5095,
1236 0.5123, 0.5158, 0.5200, 0.5253, 0.5321, 0.5415, 0.5576, 0.6179},
1237 {0.5905, 0.5868, 0.5729, 0.5657, 0.5612, 0.5580, 0.5559, 0.5544, 0.5535,
1238 0.5530, 0.5529, 0.5532, 0.5538, 0.5548, 0.5560, 0.5577, 0.5597, 0.5621,
1239 0.5649, 0.5684, 0.5726, 0.5779, 0.5846, 0.5940, 0.6099, 0.6666},
1240 {0.5940, 0.6307, 0.6254, 0.6185, 0.6141, 0.6108, 0.6086, 0.6071, 0.6062,
1241 0.6057, 0.6057, 0.6059, 0.6066, 0.6075, 0.6088, 0.6104, 0.6124, 0.6148,
1242 0.6176, 0.6211, 0.6253, 0.6306, 0.6373, 0.6465, 0.6623, 0.7156},
1243 {0.6986, 0.6924, 0.6784, 0.6713, 0.6667, 0.6636, 0.6614, 0.6599, 0.6590,
1244 0.6585, 0.6585, 0.6587, 0.6594, 0.6603, 0.6616, 0.6632, 0.6651, 0.6675,
1245 0.6704, 0.6739, 0.6781, 0.6833, 0.6900, 0.6992, 0.7147, 0.7651},
1246 {0.7449, 0.7453, 0.7312, 0.7242, 0.7196, 0.7165, 0.7143, 0.7128, 0.7119,
1247 0.7117, 0.7113, 0.7116, 0.7122, 0.7132, 0.7144, 0.7160, 0.7180, 0.7204,
1248 0.7233, 0.7267, 0.7309, 0.7361, 0.7427, 0.7519, 0.7672, 0.8151},
1249 {0.8011, 0.7982, 0.7843, 0.7772, 0.7726, 0.7694, 0.7673, 0.7658, 0.7649,
1250 0.7644, 0.7643, 0.7646, 0.7652, 0.7661, 0.7674, 0.7690, 0.7709, 0.7733,
1251 0.7763, 0.7796, 0.7838, 0.7890, 0.7956, 0.8046, 0.8198, 0.8656},
1252 {0.8261, 0.8513, 0.8374, 0.8302, 0.8256, 0.8225, 0.8203, 0.8188, 0.8179,
1253 0.8174, 0.8173, 0.8176, 0.8182, 0.8191, 0.8204, 0.8220, 0.8240, 0.8263,
1254 0.8292, 0.8326, 0.8367, 0.8419, 0.8485, 0.8575, 0.8725, 0.9163},
1255 {0.9145, 0.9043, 0.8905, 0.8834, 0.8788, 0.8756, 0.8734, 0.8720, 0.8710,
1256 0.8706, 0.8705, 0.8707, 0.8713, 0.8722, 0.8735, 0.8751, 0.8770, 0.8794,
1257 0.8822, 0.8856, 0.8898, 0.8949, 0.9015, 0.9104, 0.9252, 0.9674},
1258 {0.8915, 0.9576, 0.9437, 0.9365, 0.9320, 0.9288, 0.9267, 0.9251, 0.9242,
1259 0.9237, 0.9236, 0.9239, 0.9245, 0.9254, 0.9267, 0.9282, 0.9302, 0.9326,
1260 0.9354, 0.9388, 0.9429, 0.9480, 0.9545, 0.9635, 0.9781, 1.0188},
1261 {1.0290, 1.0109, 0.9970, 0.9898, 0.9852, 0.9821, 0.9799, 0.9784, 0.9775,
1262 0.9770, 0.9769, 0.9772, 0.9778, 0.9787, 0.9800, 0.9815, 0.9835, 0.9858,
1263 0.9886, 0.9920, 0.9961, 1.0012, 1.0077, 1.0165, 1.0310, 1.0705},
1264 {1.0470, 1.1170, 1.0503, 1.0431, 1.0386, 1.0354, 1.0333, 1.0318, 1.0308,
1265 1.0303, 1.0303, 1.0305, 1.0311, 1.0320, 1.0333, 1.0348, 1.0368, 1.0391,
1266 1.0419, 1.0453, 1.0494, 1.0545, 1.0609, 1.0697, 1.0840, 1.1223},
1267 {1.2284, 1.1176, 1.1037, 1.0966, 1.0922, 1.0889, 1.0867, 1.0852, 1.0842,
1268 1.0838, 1.0837, 1.0839, 1.0845, 1.0854, 1.0867, 1.0882, 1.0902, 1.0925,
1269 1.0953, 1.0987, 1.1028, 1.1078, 1.1143, 1.1230, 1.1371, 1.1744},
1270 {1.1548, 1.1712, 1.1572, 1.1501, 1.1455, 1.1424, 1.1402, 1.1387, 1.1377,
1271 1.1373, 1.1371, 1.1374, 1.1380, 1.1389, 1.1401, 1.1417, 1.1436, 1.1460,
1272 1.1488, 1.1521, 1.1562, 1.1613, 1.1676, 1.1763, 1.1903, 1.2267},
1273 {1.2050, 1.2248, 1.2108, 1.2037, 1.1991, 1.1959, 1.1937, 1.1922, 1.1913,
1274 1.1908, 1.1907, 1.1909, 1.1915, 1.1925, 1.1937, 1.1952, 1.1972, 1.1995,
1275 1.2023, 1.2056, 1.2097, 1.2147, 1.2211, 1.2297, 1.2436, 1.2791},
1276 {1.2799, 1.2784, 1.2644, 1.2573, 1.2527, 1.2495, 1.2473, 1.2458, 1.2449,
1277 1.2444, 1.2443, 1.2446, 1.2451, 1.2460, 1.2473, 1.2488, 1.2508, 1.2531,
1278 1.2559, 1.2592, 1.2633, 1.2683, 1.2746, 1.2833, 1.2970, 1.3317},
1279 {1.2857, 1.3320, 1.3181, 1.3109, 1.3063, 1.3032, 1.3010, 1.2995, 1.2986,
1280 1.2981, 1.2980, 1.2982, 1.2988, 1.2997, 1.3009, 1.3025, 1.3044, 1.3067,
1281 1.3095, 1.3129, 1.3169, 1.3219, 1.3283, 1.3368, 1.3505, 1.3845},
1282 {1.3924, 1.3856, 1.3718, 1.3646, 1.3601, 1.3569, 1.3547, 1.3532, 1.3523,
1283 1.3518, 1.3517, 1.3519, 1.3525, 1.3534, 1.3546, 1.3562, 1.3581, 1.3604,
1284 1.3632, 1.3665, 1.3706, 1.3756, 1.3819, 1.3904, 1.4041, 1.4375},
1285 {1.5732, 1.4395, 1.4255, 1.4184, 1.4138, 1.4107, 1.4085, 1.4070, 1.4060,
1286 1.4055, 1.4054, 1.4057, 1.4063, 1.4071, 1.4086, 1.4099, 1.4119, 1.4142,
1287 1.4170, 1.4203, 1.4243, 1.4293, 1.4356, 1.4441, 1.4576, 1.4906},
1288 {1.4352, 1.4933, 1.4793, 1.4722, 1.4676, 1.4644, 1.4623, 1.4607, 1.4598,
1289 1.4593, 1.4592, 1.4595, 1.4600, 1.4609, 1.4622, 1.4637, 1.4656, 1.4680,
1290 1.4707, 1.4741, 1.4781, 1.4831, 1.4894, 1.4979, 1.5113, 1.5439},
1291 {1.4933, 1.5471, 1.5332, 1.5260, 1.5214, 1.5183, 1.5161, 1.5146, 1.5136,
1292 1.5131, 1.5131, 1.5133, 1.5139, 1.5148, 1.5160, 1.5175, 1.5195, 1.5218,
1293 1.5247, 1.5279, 1.5319, 1.5369, 1.5432, 1.5516, 1.5650, 1.5973},
1294 {1.5709, 1.6010, 1.5870, 1.5798, 1.5753, 1.5721, 1.5699, 1.5684, 1.5675,
1295 1.5670, 1.5669, 1.5671, 1.5677, 1.5686, 1.5698, 1.5714, 1.5733, 1.5756,
1296 1.5784, 1.5817, 1.5857, 1.5907, 1.5970, 1.6054, 1.6188, 1.6509},
1297 {1.6675, 1.6548, 1.6408, 1.6337, 1.6291, 1.6259, 1.6238, 1.6223, 1.6213,
1298 1.6208, 1.6207, 1.6210, 1.6216, 1.6225, 1.6237, 1.6252, 1.6272, 1.6295,
1299 1.6322, 1.6356, 1.6396, 1.6445, 1.6508, 1.6593, 1.6727, 1.7046},
1300 {1.7042, 1.7087, 1.6947, 1.6876, 1.6830, 1.6798, 1.6776, 1.6761, 1.6752,
1301 1.6747, 1.6746, 1.6749, 1.6754, 1.6763, 1.6775, 1.6791, 1.6810, 1.6833,
1302 1.6861, 1.6894, 1.6935, 1.6984, 1.7047, 1.7132, 1.7265, 1.7584}};
1303
1304 if (fTimeStruct) delete [] fTimeStruct;
1305 fTimeStruct = new Float_t[ktimebin*kZbin];
1306
1307 for (Int_t ctrt = 0; ctrt<ktimebin; ctrt++)
1308 for (Int_t ctrz = 0; ctrz<kZbin; ctrz++) {
1309 if (fStaggeringOn) fTimeStruct[ctrt+ctrz*ktimebin] = stagg[ctrt][ctrz];
1310 else fTimeStruct[ctrt+ctrz*ktimebin] = nonstagg[ctrt][ctrz];
1311 }
1312
1313}
1314
17b26de4 1315//_____________________________________________________________________________
1316void AliTRDparameter::SamplePRF()
1317{
1318 //
1319 // Samples the pad response function
1320 //
1321
1322 const Int_t kNplan = AliTRDgeometry::kNplan;
1323 const Int_t kPRFbin = 61;
1324
a328fff9 1325 Float_t prf[kNplan][kPRFbin] = { {0.0267681, 0.031056, 0.036111, 0.0419945, 0.0489578,
1326 0.0571508, 0.0666984, 0.078064, 0.0912508, 0.106579,
1327 0.124429, 0.144803, 0.168187, 0.194645, 0.224143,
1328 0.25717, 0.293146, 0.331943, 0.373128, 0.415798,
1329 0.459149, 0.502028, 0.54349, 0.582109, 0.617335,
1330 0.648306, 0.674189, 0.695082, 0.710222, 0.719711,
1331 0.723751, 0.719711, 0.710222, 0.695082, 0.674189,
1332 0.648306, 0.617335, 0.582109, 0.54349, 0.502028,
1333 0.459149, 0.415798, 0.373128, 0.331943, 0.293146,
1334 0.25717, 0.224143, 0.194645, 0.168187, 0.144803,
1335 0.124429, 0.106579, 0.0912508, 0.078064, 0.0666984,
1336 0.0571508, 0.0489578, 0.0419945, 0.036111, 0.031056,
1337 0.0267681},
1338 {0.0240831, 0.0281427, 0.0328987, 0.0384801, 0.0451249,
1339 0.0530119, 0.0623139, 0.0733268, 0.0864095, 0.101704,
1340 0.119473, 0.140308, 0.164191, 0.191333, 0.222141,
1341 0.256551, 0.29433, 0.335294, 0.37892, 0.424206,
1342 0.470202, 0.515621, 0.559255, 0.600068, 0.636821,
1343 0.668836, 0.695767, 0.717076, 0.73233, 0.741818,
1344 0.745491, 0.741818, 0.73233, 0.717076, 0.695767,
1345 0.668836, 0.636821, 0.600068, 0.559255, 0.515621,
1346 0.470202, 0.424206, 0.37892, 0.335294, 0.29433,
1347 0.256551, 0.222141, 0.191333, 0.164191, 0.140308,
1348 0.119473, 0.101704, 0.0864095, 0.0733268, 0.0623139,
1349 0.0530119, 0.0451249, 0.0384801, 0.0328987, 0.0281427,
1350 0.0240831},
1351 {0.0206855, 0.0243011, 0.0285603, 0.0335902, 0.0396015,
1352 0.0467843, 0.0553424, 0.0655316, 0.0776688, 0.0921782,
1353 0.109269, 0.129259, 0.152459, 0.179369, 0.210091,
1354 0.244681, 0.283099, 0.325176, 0.370396, 0.417732,
1355 0.466086, 0.514192, 0.560518, 0.603805, 0.643028,
1356 0.67738, 0.706095, 0.728728, 0.745307, 0.755731,
1357 0.759954, 0.755731, 0.745307, 0.728728, 0.706095,
1358 0.67738, 0.643028, 0.603805, 0.560518, 0.514192,
1359 0.466086, 0.417732, 0.370396, 0.325176, 0.283099,
1360 0.244681, 0.210091, 0.179369, 0.152459, 0.129259,
1361 0.109269, 0.0921782, 0.0776688, 0.0655316, 0.0553424,
1362 0.0467843, 0.0396015, 0.0335902, 0.0285603, 0.0243011,
1363 0.0206855},
1364 {0.0186168, 0.0219999, 0.0260102, 0.0307769, 0.0364947,
1365 0.0433655, 0.0516213, 0.0615466, 0.0734611, 0.0877121,
1366 0.104666, 0.124855, 0.14853, 0.176033, 0.207639,
1367 0.243511, 0.283633, 0.327786, 0.37537, 0.425281,
1368 0.476227, 0.526727, 0.575268, 0.620462, 0.66101,
1369 0.69611, 0.725313, 0.748317, 0.764969, 0.775206,
1370 0.779006, 0.775206, 0.764969, 0.748317, 0.725313,
1371 0.69611, 0.66101, 0.620462, 0.575268, 0.526727,
1372 0.476227, 0.425281, 0.37537, 0.327786, 0.283633,
1373 0.243511, 0.207639, 0.176033, 0.14853, 0.124855,
1374 0.104666, 0.0877121, 0.0734611, 0.0615466, 0.0516213,
1375 0.0433655, 0.0364947, 0.0307769, 0.0260102, 0.0219999,
1376 0.0186168, },
1377 {0.0159737, 0.0189921, 0.0225916, 0.0268927, 0.0320634,
1378 0.0382995, 0.0458393, 0.0549765, 0.0660512, 0.0794439,
1379 0.095565, 0.114844, 0.137713, 0.164586, 0.195824,
1380 0.231681, 0.272223, 0.31727, 0.366248, 0.418078,
1381 0.471358, 0.524425, 0.575561, 0.623193, 0.666055,
1382 0.703243, 0.734192, 0.7586, 0.776331, 0.787347,
1383 0.791646, 0.787347, 0.776331, 0.7586, 0.734192,
1384 0.703243, 0.666055, 0.623193, 0.575561, 0.524425,
1385 0.471358, 0.418078, 0.366248, 0.31727, 0.272223,
1386 0.231681, 0.195824, 0.164586, 0.137713, 0.114844,
1387 0.095565, 0.0794439, 0.0660512, 0.0549765, 0.0458393,
1388 0.0382995, 0.0320634, 0.0268927, 0.0225916, 0.0189921,
1389 0.0159737},
1390 {0.0143532, 0.0171745, 0.0205622, 0.024635, 0.0295461,
1391 0.0354915, 0.0427198, 0.0515368, 0.0623058, 0.0754416,
1392 0.0913994, 0.110662, 0.133721, 0.161057, 0.193093,
1393 0.230138, 0.27229, 0.319327, 0.370597, 0.424961,
1394 0.480832, 0.536333, 0.589555, 0.638805, 0.682781,
1395 0.720621, 0.751845, 0.776243, 0.793764, 0.804426,
1396 0.808259, 0.804426, 0.793764, 0.776243, 0.751845,
1397 0.720621, 0.682781, 0.638805, 0.589555, 0.536333,
1398 0.480832, 0.424961, 0.370597, 0.319327, 0.27229,
1399 0.230138, 0.193093, 0.161057, 0.133721, 0.110662,
1400 0.0913994, 0.0754416, 0.0623058, 0.0515368, 0.0427198,
1401 0.0354915, 0.0295461, 0.024635, 0.0205622, 0.0171745,
1402 0.0143532} };
17b26de4 1403
1404 // More sampling precision with linear interpolation
1405 fPRFlo = -1.5;
1406 fPRFhi = 1.5;
1407 Float_t pad[kPRFbin];
1408 Int_t sPRFbin = kPRFbin;
1409 Float_t sPRFwid = (fPRFhi - fPRFlo) / ((Float_t) sPRFbin);
1410 for (Int_t iPad = 0; iPad < sPRFbin; iPad++) {
1411 pad[iPad] = ((Float_t) iPad + 0.5) * sPRFwid + fPRFlo;
1412 }
1413 fPRFbin = 500;
1414 fPRFwid = (fPRFhi - fPRFlo) / ((Float_t) fPRFbin);
1415 fPRFpad = ((Int_t) (1.0 / fPRFwid));
1416
1417 if (fPRFsmp) delete [] fPRFsmp;
1418 fPRFsmp = new Float_t[kNplan*fPRFbin];
1419
1420 Int_t ipos1;
1421 Int_t ipos2;
1422 Float_t diff;
1423
1424 for (Int_t iPla = 0; iPla < kNplan; iPla++) {
1425
1426 for (Int_t iBin = 0; iBin < fPRFbin; iBin++) {
1427
1428 Float_t bin = (((Float_t) iBin) + 0.5) * fPRFwid + fPRFlo;
1429 ipos1 = ipos2 = 0;
1430 diff = 0;
1431 do {
1432 diff = bin - pad[ipos2++];
8e64dd77 1433 } while ((diff > 0) && (ipos2 < kPRFbin));
1434 if (ipos2 == kPRFbin) {
1435 fPRFsmp[iPla*fPRFbin+iBin] = prf[iPla][ipos2-1];
1436 }
1437 else if (ipos2 == 1) {
1438 fPRFsmp[iPla*fPRFbin+iBin] = prf[iPla][ipos2-1];
1439 }
1440 else {
1441 ipos2--;
1442 if (ipos2 >= kPRFbin) ipos2 = kPRFbin - 1;
1443 ipos1 = ipos2 - 1;
1444 fPRFsmp[iPla*fPRFbin+iBin] = prf[iPla][ipos2]
1445 + diff * (prf[iPla][ipos2] - prf[iPla][ipos1])
1446 / sPRFwid;
1447 }
17b26de4 1448
1449 }
1450 }
1451
1452}
1453
1454//_____________________________________________________________________________
1455void AliTRDparameter::FillLUT()
1456{
1457 //
1458 // Create the LUT
1459 //
1460
1461 const Int_t kNplan = AliTRDgeometry::kNplan;
1462 const Int_t kNlut = 128;
1463
1464 fLUTbin = kNplan * kNlut;
1465
1466 // The lookup table from Bogdan
1467 Float_t lut[kNplan][kNlut] = {
1468 {
1469 0.0070, 0.0150, 0.0224, 0.0298, 0.0374, 0.0454, 0.0533, 0.0611,
1470 0.0684, 0.0755, 0.0827, 0.0900, 0.0975, 0.1049, 0.1120, 0.1187,
1471 0.1253, 0.1318, 0.1385, 0.1453, 0.1519, 0.1584, 0.1646, 0.1704,
1472 0.1762, 0.1821, 0.1879, 0.1938, 0.1996, 0.2053, 0.2108, 0.2160,
1473 0.2210, 0.2260, 0.2310, 0.2361, 0.2411, 0.2461, 0.2509, 0.2557,
1474 0.2602, 0.2646, 0.2689, 0.2732, 0.2774, 0.2816, 0.2859, 0.2901,
1475 0.2942, 0.2983, 0.3022, 0.3061, 0.3099, 0.3136, 0.3172, 0.3207,
1476 0.3242, 0.3278, 0.3312, 0.3347, 0.3382, 0.3416, 0.3450, 0.3483,
1477 0.3515, 0.3547, 0.3579, 0.3609, 0.3639, 0.3669, 0.3698, 0.3727,
1478 0.3756, 0.3785, 0.3813, 0.3842, 0.3870, 0.3898, 0.3926, 0.3952,
1479 0.3979, 0.4005, 0.4032, 0.4057, 0.4082, 0.4108, 0.4132, 0.4157,
1480 0.4181, 0.4205, 0.4228, 0.4252, 0.4275, 0.4299, 0.4322, 0.4345,
1481 0.4367, 0.4390, 0.4412, 0.4434, 0.4456, 0.4478, 0.4499, 0.4520,
1482 0.4541, 0.4562, 0.4583, 0.4603, 0.4623, 0.4643, 0.4663, 0.4683,
1483 0.4702, 0.4722, 0.4741, 0.4758, 0.4774, 0.4790, 0.4805, 0.4824,
1484 0.4844, 0.4863, 0.4883, 0.4902, 0.4921, 0.4940, 0.4959, 0.4978
1485 },
1486 {
1487 0.0072, 0.0156, 0.0235, 0.0313, 0.0394, 0.0478, 0.0561, 0.0642,
1488 0.0718, 0.0792, 0.0868, 0.0947, 0.1025, 0.1101, 0.1172, 0.1241,
1489 0.1309, 0.1378, 0.1449, 0.1518, 0.1586, 0.1650, 0.1710, 0.1770,
1490 0.1830, 0.1891, 0.1952, 0.2011, 0.2070, 0.2125, 0.2177, 0.2229,
1491 0.2280, 0.2332, 0.2383, 0.2435, 0.2484, 0.2533, 0.2581, 0.2627,
1492 0.2670, 0.2714, 0.2757, 0.2799, 0.2842, 0.2884, 0.2927, 0.2968,
1493 0.3008, 0.3048, 0.3086, 0.3123, 0.3159, 0.3195, 0.3231, 0.3266,
1494 0.3301, 0.3335, 0.3370, 0.3404, 0.3438, 0.3471, 0.3504, 0.3536,
1495 0.3567, 0.3598, 0.3628, 0.3657, 0.3686, 0.3715, 0.3744, 0.3772,
1496 0.3800, 0.3828, 0.3856, 0.3884, 0.3911, 0.3938, 0.3965, 0.3991,
1497 0.4016, 0.4042, 0.4067, 0.4092, 0.4116, 0.4140, 0.4164, 0.4187,
1498 0.4211, 0.4234, 0.4257, 0.4280, 0.4302, 0.4325, 0.4347, 0.4369,
1499 0.4391, 0.4413, 0.4434, 0.4456, 0.4477, 0.4497, 0.4518, 0.4538,
1500 0.4558, 0.4578, 0.4598, 0.4618, 0.4637, 0.4656, 0.4675, 0.4694,
1501 0.4713, 0.4732, 0.4750, 0.4766, 0.4781, 0.4797, 0.4813, 0.4832,
1502 0.4851, 0.4870, 0.4888, 0.4906, 0.4925, 0.4942, 0.4960, 0.4978
1503 },
1504 {
1505 0.0075, 0.0163, 0.0246, 0.0328, 0.0415, 0.0504, 0.0592, 0.0674,
1506 0.0753, 0.0832, 0.0914, 0.0996, 0.1077, 0.1154, 0.1225, 0.1296,
1507 0.1369, 0.1442, 0.1515, 0.1585, 0.1652, 0.1714, 0.1776, 0.1839,
1508 0.1902, 0.1965, 0.2025, 0.2085, 0.2141, 0.2194, 0.2247, 0.2299,
1509 0.2352, 0.2405, 0.2457, 0.2507, 0.2557, 0.2604, 0.2649, 0.2693,
1510 0.2737, 0.2780, 0.2823, 0.2867, 0.2909, 0.2951, 0.2992, 0.3033,
1511 0.3072, 0.3110, 0.3146, 0.3182, 0.3218, 0.3253, 0.3288, 0.3323,
1512 0.3357, 0.3392, 0.3426, 0.3459, 0.3492, 0.3524, 0.3555, 0.3586,
1513 0.3616, 0.3645, 0.3674, 0.3703, 0.3731, 0.3759, 0.3787, 0.3815,
1514 0.3843, 0.3870, 0.3897, 0.3925, 0.3950, 0.3976, 0.4002, 0.4027,
1515 0.4052, 0.4076, 0.4101, 0.4124, 0.4148, 0.4171, 0.4194, 0.4217,
1516 0.4239, 0.4262, 0.4284, 0.4306, 0.4328, 0.4350, 0.4371, 0.4393,
1517 0.4414, 0.4435, 0.4455, 0.4476, 0.4496, 0.4516, 0.4536, 0.4555,
1518 0.4575, 0.4594, 0.4613, 0.4632, 0.4650, 0.4669, 0.4687, 0.4705,
1519 0.4723, 0.4741, 0.4758, 0.4773, 0.4789, 0.4804, 0.4821, 0.4839,
1520 0.4857, 0.4875, 0.4893, 0.4910, 0.4928, 0.4945, 0.4961, 0.4978
1521 },
1522 {
1523 0.0078, 0.0171, 0.0258, 0.0345, 0.0438, 0.0532, 0.0624, 0.0708,
1524 0.0791, 0.0875, 0.0962, 0.1048, 0.1130, 0.1206, 0.1281, 0.1356,
1525 0.1432, 0.1508, 0.1582, 0.1651, 0.1716, 0.1780, 0.1845, 0.1910,
1526 0.1975, 0.2038, 0.2099, 0.2155, 0.2210, 0.2263, 0.2317, 0.2371,
1527 0.2425, 0.2477, 0.2528, 0.2578, 0.2626, 0.2671, 0.2715, 0.2759,
1528 0.2803, 0.2846, 0.2890, 0.2933, 0.2975, 0.3016, 0.3056, 0.3095,
1529 0.3132, 0.3168, 0.3204, 0.3239, 0.3274, 0.3309, 0.3344, 0.3378,
1530 0.3412, 0.3446, 0.3479, 0.3511, 0.3543, 0.3574, 0.3603, 0.3633,
1531 0.3662, 0.3690, 0.3718, 0.3747, 0.3774, 0.3802, 0.3829, 0.3857,
1532 0.3883, 0.3910, 0.3936, 0.3962, 0.3987, 0.4012, 0.4037, 0.4061,
1533 0.4085, 0.4109, 0.4132, 0.4155, 0.4177, 0.4200, 0.4222, 0.4244,
1534 0.4266, 0.4288, 0.4309, 0.4331, 0.4352, 0.4373, 0.4394, 0.4414,
1535 0.4435, 0.4455, 0.4475, 0.4494, 0.4514, 0.4533, 0.4552, 0.4571,
1536 0.4590, 0.4608, 0.4626, 0.4645, 0.4662, 0.4680, 0.4698, 0.4715,
1537 0.4733, 0.4750, 0.4766, 0.4781, 0.4796, 0.4812, 0.4829, 0.4846,
1538 0.4863, 0.4880, 0.4897, 0.4914, 0.4930, 0.4946, 0.4963, 0.4979
1539 },
1540 {
1541 0.0081, 0.0178, 0.0270, 0.0364, 0.0463, 0.0562, 0.0656, 0.0744,
1542 0.0831, 0.0921, 0.1013, 0.1102, 0.1183, 0.1261, 0.1339, 0.1419,
1543 0.1499, 0.1576, 0.1648, 0.1715, 0.1782, 0.1849, 0.1917, 0.1984,
1544 0.2048, 0.2110, 0.2167, 0.2223, 0.2278, 0.2333, 0.2389, 0.2444,
1545 0.2497, 0.2548, 0.2598, 0.2645, 0.2691, 0.2735, 0.2780, 0.2824,
1546 0.2868, 0.2912, 0.2955, 0.2997, 0.3038, 0.3078, 0.3116, 0.3152,
1547 0.3188, 0.3224, 0.3259, 0.3294, 0.3329, 0.3364, 0.3398, 0.3432,
1548 0.3465, 0.3497, 0.3529, 0.3561, 0.3591, 0.3620, 0.3649, 0.3677,
1549 0.3705, 0.3733, 0.3761, 0.3788, 0.3816, 0.3843, 0.3869, 0.3896,
1550 0.3922, 0.3948, 0.3973, 0.3998, 0.4022, 0.4047, 0.4070, 0.4094,
1551 0.4117, 0.4139, 0.4162, 0.4184, 0.4206, 0.4227, 0.4249, 0.4270,
1552 0.4291, 0.4313, 0.4334, 0.4354, 0.4375, 0.4395, 0.4415, 0.4435,
1553 0.4455, 0.4474, 0.4493, 0.4512, 0.4531, 0.4550, 0.4568, 0.4586,
1554 0.4604, 0.4622, 0.4639, 0.4657, 0.4674, 0.4691, 0.4708, 0.4725,
1555 0.4742, 0.4758, 0.4773, 0.4788, 0.4803, 0.4819, 0.4836, 0.4852,
1556 0.4869, 0.4885, 0.4901, 0.4917, 0.4933, 0.4948, 0.4964, 0.4979
1557 },
1558 {
1559 0.0085, 0.0189, 0.0288, 0.0389, 0.0497, 0.0603, 0.0699, 0.0792,
1560 0.0887, 0.0985, 0.1082, 0.1170, 0.1253, 0.1336, 0.1421, 0.1505,
1561 0.1587, 0.1662, 0.1733, 0.1803, 0.1874, 0.1945, 0.2014, 0.2081,
1562 0.2143, 0.2201, 0.2259, 0.2316, 0.2374, 0.2431, 0.2487, 0.2541,
1563 0.2593, 0.2642, 0.2689, 0.2735, 0.2781, 0.2826, 0.2872, 0.2917,
1564 0.2961, 0.3003, 0.3045, 0.3086, 0.3125, 0.3162, 0.3198, 0.3235,
1565 0.3270, 0.3306, 0.3342, 0.3377, 0.3411, 0.3446, 0.3479, 0.3511,
1566 0.3543, 0.3575, 0.3605, 0.3634, 0.3663, 0.3691, 0.3720, 0.3748,
1567 0.3775, 0.3803, 0.3830, 0.3857, 0.3884, 0.3911, 0.3937, 0.3962,
1568 0.3987, 0.4012, 0.4036, 0.4060, 0.4084, 0.4107, 0.4129, 0.4152,
1569 0.4174, 0.4196, 0.4218, 0.4239, 0.4261, 0.4282, 0.4303, 0.4324,
1570 0.4344, 0.4365, 0.4385, 0.4405, 0.4425, 0.4445, 0.4464, 0.4483,
1571 0.4502, 0.4521, 0.4539, 0.4558, 0.4576, 0.4593, 0.4611, 0.4629,
1572 0.4646, 0.4663, 0.4680, 0.4697, 0.4714, 0.4730, 0.4747, 0.4759,
1573 0.4769, 0.4780, 0.4790, 0.4800, 0.4811, 0.4827, 0.4843, 0.4859,
1574 0.4874, 0.4889, 0.4905, 0.4920, 0.4935, 0.4950, 0.4965, 0.4979
1575 }
1576 };
1577
1578 if (fLUT) delete [] fLUT;
1579 fLUT = new Float_t[fLUTbin];
1580
1581 for (Int_t iplan = 0; iplan < kNplan; iplan++) {
1582 for (Int_t ilut = 0; ilut < kNlut; ilut++) {
cfed70d4 1583 fLUT[iplan*kNlut+ilut] = lut[iplan][ilut];
17b26de4 1584 }
1585 }
1586
1587}
1588
1589//_____________________________________________________________________________
1590void AliTRDparameter::SetTiltingAngle(Float_t v)
1591{
1592 //
1593 // Set the tilting angle for the readout pads
1594 //
1595
1596 fTiltingAngle = TMath::Tan(TMath::Pi()/180.0 * v);
1597
1598}
1599
1600//_____________________________________________________________________________
1601Float_t AliTRDparameter::GetTiltingAngle() const
1602{
1603 //
1604 // Get the tilting angle for the readout pads
1605 //
1606
ab35e265 1607 return 180.0 / TMath::Pi() * TMath::ATan(fTiltingAngle);
17b26de4 1608
1609}
1610
1611//_____________________________________________________________________________
1612Float_t AliTRDparameter::GetDiffusionL(Float_t vd, Float_t b)
1613{
1614 //
1615 // Returns the longitudinal diffusion coefficient for a given drift
1616 // velocity <vd> and a B-field <b> for Xe/CO2 (15%).
1617 // The values are according to a GARFIELD simulation.
1618 //
1619
1620 const Int_t kNb = 5;
1621 Float_t p0[kNb] = { 0.007440, 0.007493, 0.007513, 0.007672, 0.007831 };
1622 Float_t p1[kNb] = { 0.019252, 0.018912, 0.018636, 0.018012, 0.017343 };
1623 Float_t p2[kNb] = { -0.005042, -0.004926, -0.004867, -0.004650, -0.004424 };
1624 Float_t p3[kNb] = { 0.000195, 0.000189, 0.000195, 0.000182, 0.000169 };
1625
1626 Int_t ib = ((Int_t) (10 * (b - 0.15)));
1627 ib = TMath::Max( 0,ib);
1628 ib = TMath::Min(kNb,ib);
1629
1630 Float_t diff = p0[ib]
1631 + p1[ib] * vd
1632 + p2[ib] * vd*vd
1633 + p3[ib] * vd*vd*vd;
1634
1635 return diff;
1636
1637}
1638
1639//_____________________________________________________________________________
1640Float_t AliTRDparameter::GetDiffusionT(Float_t vd, Float_t b)
1641{
1642 //
1643 // Returns the transverse diffusion coefficient for a given drift
1644 // velocity <vd> and a B-field <b> for Xe/CO2 (15%).
1645 // The values are according to a GARFIELD simulation.
1646 //
1647
1648 const Int_t kNb = 5;
1649 Float_t p0[kNb] = { 0.009550, 0.009599, 0.009674, 0.009757, 0.009850 };
1650 Float_t p1[kNb] = { 0.006667, 0.006539, 0.006359, 0.006153, 0.005925 };
1651 Float_t p2[kNb] = { -0.000853, -0.000798, -0.000721, -0.000635, -0.000541 };
1652 Float_t p3[kNb] = { 0.000131, 0.000122, 0.000111, 0.000098, 0.000085 };
1653
1654 Int_t ib = ((Int_t) (10 * (b - 0.15)));
1655 ib = TMath::Max( 0,ib);
1656 ib = TMath::Min(kNb,ib);
1657
1658 Float_t diff = p0[ib]
1659 + p1[ib] * vd
1660 + p2[ib] * vd*vd
1661 + p3[ib] * vd*vd*vd;
1662
1663 return diff;
1664
1665}
1666
1667//_____________________________________________________________________________
1668Float_t AliTRDparameter::GetOmegaTau(Float_t vd, Float_t b)
1669{
1670 //
1671 // Returns omega*tau (tan(Lorentz-angle)) for a given drift velocity <vd>
1672 // and a B-field <b> for Xe/CO2 (15%).
1673 // The values are according to a GARFIELD simulation.
1674 //
1675
1676 const Int_t kNb = 5;
1677 Float_t p0[kNb] = { 0.004810, 0.007412, 0.010252, 0.013409, 0.016888 };
1678 Float_t p1[kNb] = { 0.054875, 0.081534, 0.107333, 0.131983, 0.155455 };
1679 Float_t p2[kNb] = { -0.008682, -0.012896, -0.016987, -0.020880, -0.024623 };
1680 Float_t p3[kNb] = { 0.000155, 0.000238, 0.000330, 0.000428, 0.000541 };
1681
1682 Int_t ib = ((Int_t) (10 * (b - 0.15)));
1683 ib = TMath::Max( 0,ib);
1684 ib = TMath::Min(kNb,ib);
1685
1686 Float_t alphaL = p0[ib]
1687 + p1[ib] * vd
1688 + p2[ib] * vd*vd
1689 + p3[ib] * vd*vd*vd;
1690
1691 return TMath::Tan(alphaL);
1692
1693}
1694
1695//_____________________________________________________________________________
0a29d0f1 1696Double_t AliTRDparameter::LUTposition(Int_t iplane, Double_t ampL
1697 , Double_t ampC
1698 , Double_t ampR) const
17b26de4 1699{
1700 //
1701 // Calculates the cluster position using the lookup table.
1702 // Method provided by Bogdan Vulpescu.
1703 //
1704
1705 const Int_t kNplan = AliTRDgeometry::kNplan;
cfed70d4 1706 const Int_t kNlut = 128;
17b26de4 1707
1708 Double_t pos;
1709 Double_t x = 0.0;
1710 Double_t xmin;
1711 Double_t xmax;
1712 Double_t xwid;
1713
1714 Int_t side = 0;
1715 Int_t ix;
1716
1717 Double_t xMin[kNplan] = { 0.006492, 0.006377, 0.006258, 0.006144, 0.006030, 0.005980 };
1718 Double_t xMax[kNplan] = { 0.960351, 0.965870, 0.970445, 0.974352, 0.977667, 0.996101 };
1719
1720 if (ampL > ampR) {
1721 x = (ampL - ampR) / ampC;
1722 side = -1;
1723 }
1724 else if (ampL < ampR) {
1725 x = (ampR - ampL) / ampC;
1726 side = +1;
1727 }
1728
1729 if (ampL != ampR) {
1730
1731 xmin = xMin[iplane] + 0.000005;
1732 xmax = xMax[iplane] - 0.000005;
1733 xwid = (xmax - xmin) / 127.0;
1734
1735 if (x < xmin) {
1736 pos = 0.0000;
1737 }
1738 else if (x > xmax) {
1739 pos = side * 0.5000;
1740 }
1741 else {
1742 ix = (Int_t) ((x - xmin) / xwid);
cfed70d4 1743 pos = side * fLUT[iplane*kNlut+ix];
17b26de4 1744 }
1745
1746 }
1747 else {
1748
1749 pos = 0.0;
1750
1751 }
1752
1753 return pos;
1754
1755}