AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCParam.h
Go to the documentation of this file.
1 #ifndef ALITPCPARAM_H
2 #define ALITPCPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 
9 
10 #include "AliDetectorParam.h"
11 #include "TMath.h"
12 
13 #include <TGeoMatrix.h>
14 #include <TVectorD.h>
15 class TString;
16 class TGraphErrors;
17 
18 class AliTPCParam : public AliDetectorParam {
21  //ALITPCParam object to be possible change
22  //geometry and some other parameters of TPC
23  //used by AliTPC and AliTPCSector
24 
25 public:
26  AliTPCParam();
27  virtual ~AliTPCParam();
28  TGeoHMatrix * Tracking2LocalMatrix(const TGeoHMatrix * geoMatrix, Int_t sector) const;
29  virtual Bool_t Transform(Float_t *xyz, Int_t *index, Int_t* oindex);
30  //transformation from input coodination system to output coordination system
31  Int_t Transform0to1(Float_t *xyz, Int_t *index) const;
32  //trasforamtion from global to global - adjust index[0] sector
33  //return value is equal to sector corresponding to global position
34  void Transform1to2Ideal(Float_t *xyz, Int_t *index) const;
35  //transformation to rotated coordinata - ideal frame
36  void Transform1to2(Float_t *xyz, Int_t *index) const;
37  //transformation to rotated coordinata
38  void Transform2to1(Float_t *xyz, Int_t *index) const;
39  //transformation from rotated coordinata to global coordinata
40  void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const;
41  //transform rotated coordinata of one sector to rotated
42  //coordinata relative to another sector
43  Float_t Transform2to2NearestWire(Float_t *xyz, Int_t *index) const;
44  //round x position to nearest wire
45  Int_t Transform2to3(Float_t *xyz, Int_t *index) const;
46  //calulate coresponding index[2] -pad row for straight rows
47  //does not change xyz[]
48  //return pad - row
49  void Transform3to4(Float_t *xyz, Int_t *index) const;
50  //valid only for straight rows straight rows
51  //calculate xyz[0] position relative to given index
52  //return pad - row
53  void Transform4to3(Float_t *xyz, Int_t *index) const;
54  //valid only for straight rows straight rows
55  //transform xyz[0] position relative to given index
56  void Transform2to5( Float_t *xyz, Int_t *index) const;
57  //transform [x,y,z] to [r,rphi,z]
58  void Transform5to2(Float_t *xyz, Int_t *index) const;
59  //transform [r,rphi,z] coordinata to [x,y,z]
60  void Transform4to8(Float_t *xyz, Int_t *index) const;
61  //transform xyz coordinata to 'digit' coordinata
62  void Transform8to4(Float_t *xyz, Int_t *index) const;
63  //transform 'digit' coordinata to xyz coordinata
64  void Transform6to8(Float_t *xyz, Int_t *index) const;
65  //transform dr,f coordinata to 'digit' coordinata
66  void Transform8to6(Float_t *xyz, Int_t *index) const;
67  //transform 'digit' coordinata to dr,f coordinata
68 
69  virtual Int_t Transform2toPadRow(Float_t */*xyz*/, Int_t */*index*/) const{return 0;}
70  //transform rotated to
71 
72  virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const ;
73  //return pad row of point xyz - xyz is given in coordinate system -(given by index)
74  //output system is 3 for straight row and 7 for cylindrical row
75  virtual void XYZtoCRXYZ(Float_t */*xyz*/,
76  Int_t &/*sector*/, Int_t &/*padrow*/, Int_t /*option*/) const {;}
77  //transform global position to the position relative to the sector padrow
78  //if option=0 X calculate absolute calculate sector
79  //if option=1 X absolute use input sector
80  //if option=2 X relative to pad row calculate sector
81  //if option=3 X relative use input sector
82 
83  virtual void CRXYZtoXYZ(Float_t */*xyz*/,
84  const Int_t &/*sector*/, const Int_t & /*padrow*/, Int_t /*option*/) const {;}
85  //transform relative position to the gloabal position
86 
87  virtual void CRTimePadtoYZ(Float_t &/*y*/, Float_t &/*z*/,
88  const Float_t &/*time*/, const Float_t &/*pad*/,
89  Int_t /*sector*/, Int_t /*padrow*/ ){;}
90  //transform position in digit units (time slices and pads) to "normal"
91  //units (cm)
92  virtual void CRYZtoTimePad(const Float_t &/*y*/, const Float_t &/*z*/,
93  Float_t &/*time*/, Float_t &/*pad*/,
94  Int_t /*sector*/, Int_t /*padrow*/){;}
95  //transform position in cm to position in digit unit
96  virtual Int_t CalcResponse(Float_t* /*x*/, Int_t * /*index*/, Int_t /*row*/){return 0;}
97  //calculate bin response as function of the input position -x and the weight
98  //if row -pad row is equal -1 calculate response for each pad row
99  //otherwise it calculate only in given pad row
100  //return number of valid response bin
101  virtual void SetDefault(); //set defaut TPCparam
102  virtual Bool_t Update(); //recalculate and check geometric parameters
103  virtual Bool_t ReadGeoMatrices(); //read geo matrixes
104  Bool_t GetStatus() const; //get information about object consistency
105  Int_t GetIndex(Int_t sector, Int_t row) const; //give index of the given sector and pad row
106  Int_t GetNSegmentsTotal() const {return fNtRows;}
107  Double_t GetLowMaxY(Int_t irow) const {return irow*0.;}
108  Double_t GetUpMaxY(Int_t irow) const {return irow*0;}
109  //additional geometrical function - for Belikov
110 
111  Bool_t AdjustSectorRow(Int_t index, Int_t & sector, Int_t &row) const; //return sector and padrow
112  //for given index
113 
114  void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const;
115  //set cosinus and sinus of rotation angles for sector isec
116  Float_t GetAngle(Int_t isec) const;
117  // void GetChamberPos(Int_t isec, Float_t* xyz) const;
118  // void GetChamberRot(Int_t isec, Float_t* angles) const;
119  //
120  //set sector parameters
121  //
122  void SetInnerRadiusLow(Float_t InnerRadiusLow ) { fInnerRadiusLow=InnerRadiusLow;}
123  void SetOuterRadiusLow(Float_t OuterRadiusLow ) { fOuterRadiusLow=OuterRadiusLow;}
124  void SetInnerRadiusUp(Float_t InnerRadiusUp) { fInnerRadiusUp= InnerRadiusUp;}
125  void SetOuterRadiusUp(Float_t OuterRadiusUp) { fOuterRadiusUp= OuterRadiusUp;}
126  void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle,
127  Float_t outershift);
128  void SetInnerFrameSpace(Float_t frspace) {fInnerFrameSpace = frspace;}
129  void SetOuterFrameSpace(Float_t frspace) {fOuterFrameSpace = frspace;}
130  void SetInnerWireMount(Float_t fmount) {fInnerWireMount = fmount;}
131  void SetOuterWireMount(Float_t fmount) {fOuterWireMount = fmount;}
132  void SetZLength(Float_t zlength) {fZLength = zlength;}
133  void SetGeometryType(Int_t type) {fGeometryType = type;}
134  //
135  // pad rows geometry
136  //
137  void SetRowNLow( Int_t NRowLow){fNRowLow = NRowLow;}
138  void SetRowNUp1 (Int_t NRowUp1){fNRowUp1 = NRowUp1 ;} //upper sec short pads
139  void SetRowNUp2 (Int_t NRowUp2){fNRowUp2 = NRowUp2 ;} //upper sec long pads
140  void SetRowNUp (Int_t NRowUp){fNRowUp = NRowUp ;}
141  //
142  //set wire parameters
143  //
144  void SetInnerNWires(Int_t nWires){ fNInnerWiresPerPad=nWires;}
145  void SetInnerDummyWire(Int_t dummy) {fInnerDummyWire = dummy;}
146  void SetInnerOffWire(Float_t offset) {fInnerOffWire =offset;}
147  void SetOuter1NWires(Int_t nWires){ fNOuter1WiresPerPad=nWires;}
148  void SetOuter2NWire(Int_t nWires){ fNOuter2WiresPerPad=nWires;}
149  void SetOuterDummyWire(Int_t dummy) {fOuterDummyWire = dummy;}
150  void SetOuterOffWire(Float_t offset) {fOuterOffWire =offset;}
151  void SetInnerWWPitch( Float_t wwPitch) {fInnerWWPitch = wwPitch;}
152  void SetRInnerFirstWire(Float_t firstWire){fRInnerFirstWire = firstWire;}
153  void SetRInnerLastWire(Float_t lastWire){fRInnerLastWire = lastWire;}
154  void SetOuterWWPitch(Float_t wwPitch){fOuterWWPitch = wwPitch;}
155  void SetLastWireUp1(Float_t wireUp1){fLastWireUp1 = wireUp1;}
156  void SetROuterFirstWire(Float_t firstWire){fROuterFirstWire = firstWire;}
157  void SetROuterLastWire(Float_t lastWire){fROuterLastWire = lastWire;}
158  //
159  //set pad parameter
160  //
161  void SetInnerPadPitchLength(Float_t PadPitchLength){ fInnerPadPitchLength=PadPitchLength;}
162  void SetInnerPadPitchWidth(Float_t PadPitchWidth){ fInnerPadPitchWidth = PadPitchWidth;}
163  void SetInnerPadLength(Float_t PadLength){ fInnerPadLength=PadLength;}
164  void SetInnerPadWidth(Float_t PadWidth) { fInnerPadWidth=PadWidth;}
165  void SetOuter1PadPitchLength(Float_t PadPitchLength){ fOuter1PadPitchLength=PadPitchLength;}
166  void SetOuter2PadPitchLength(Float_t PadPitchLength){ fOuter2PadPitchLength=PadPitchLength;}
167  void SetOuterPadPitchWidth(Float_t PadPitchWidth){ fOuterPadPitchWidth = PadPitchWidth;}
168  void SetOuter1PadLength(Float_t PadLength){ fOuter1PadLength=PadLength;}
169  void SetOuter2PadLength(Float_t PadLength){ fOuter2PadLength=PadLength;}
170  void SetOuterPadWidth(Float_t PadWidth) { fOuterPadWidth=PadWidth;}
171  void SetMWPCReadout(Bool_t type) {fBMWPCReadout = type;}
172  void SetNCrossRows(Int_t rows){fNCrossRows = rows;}
173  //
174  //set gas paremeters
175  //
176  void SetDiffT(Float_t DiffT){ fDiffT= DiffT;}
177  void SetDiffL(Float_t DiffL){ fDiffL=DiffL;}
178  void SetGasGain(Float_t GasGain){ fGasGain=GasGain;}
179  void SetRegionGain(UInt_t region, Float_t gain) { fRegionGain[region%3] = gain; }
180  void SetDriftV(Float_t DriftV){ fDriftV= DriftV;}
181  void SetOmegaTau(Float_t OmegaTau){ fOmegaTau=OmegaTau;}
182  void SetAttCoef(Float_t AttCoef){ fAttCoef=AttCoef;}
183  void SetOxyCont(Float_t OxyCont){ fOxyCont=OxyCont;}
184  void SetGainSlopesHV(TGraphErrors * gainSlopesHV){ fGainSlopesHV=gainSlopesHV;}
185  void SetGainSlopesPT(TGraphErrors * gainSlopesPT){ fGainSlopesPT=gainSlopesPT;}
186  void SetNominalGainSlopes();
187  void SetComposition(Float_t c1, Float_t c2, Float_t c3, Float_t c4, Float_t c5, Float_t c6){fComposition[0]=c1;
188  fComposition[1]=c2;
189  fComposition[2]=c3;
190  fComposition[3]=c4;
191  fComposition[4]=c5;
192  fComposition[5]=c6;}
193  void SetFpot(Float_t fpot){fFpot=fpot;}
194  void SetNprim(Float_t prim){fNprim=prim;}
195  void SetNtot(Float_t ntot){fNtot=ntot;}
196  void SetWmean(Float_t wmean){fWmean=wmean;}
197  void SetExp(Float_t exp){fExp=exp;}
198  void SetEend(Float_t end){fEend=end;}
199  void SetBetheBloch(TVectorD *v){
200  if (fBetheBloch) delete fBetheBloch;
201  fBetheBloch=0;
202  if (v) fBetheBloch=new TVectorD(*v);
203  }
204  void SetBetheBlochMC(TVectorD *v){
205  if (fBetheBlochMC) delete fBetheBlochMC;
206  fBetheBlochMC=0;
207  if (v) fBetheBlochMC=new TVectorD(*v);
208  }
209  static TVectorD * GetBetheBlochParamNa49();
210  static TVectorD * GetBetheBlochParamAlice();
211  static TVectorD * GetBetheBlochParamAliceMC();
212  static void RegisterBBParam(TVectorD* param, Int_t position);
213  //
214  //set electronivc parameters
215  //
216  void SetPadCoupling(Float_t PadCoupling){ fPadCoupling=PadCoupling;}
217  void SetZeroSup(Int_t ZeroSup) { fZeroSup=ZeroSup;}
218  void SetNoise(Float_t Noise ) { fNoise= Noise;}
219  void SetChipGain(Float_t ChipGain){ fChipGain= ChipGain;}
220  void SetChipNorm(Float_t ChipNorm){ fChipNorm= ChipNorm;}
221  void SetTSample(Float_t TSample) { fTSample=TSample;}
222  void SetTFWHM(Float_t fwhm) { fTSigma=fwhm/2.35;}
223  void SetMaxTBin(Int_t maxtbin) { fMaxTBin = maxtbin;}
224  void SetADCSat(Int_t adcsat) { fADCSat = adcsat;}
225  void SetADCDynRange(Float_t adcdynrange) {fADCDynRange = adcdynrange;}
227  //
228  // High voltage parameters
229  //
230  void SetNominalVoltage(Float_t v, UInt_t i) {if (i<72) fNominalVoltage[i]=v;}
231  void SetMaxVoltageDeviation(Float_t voltage) { fMaxVoltageDeviation=voltage; }
232  void SetMaxDipVoltage(Float_t voltage) { fMaxDipVoltage=voltage; }
233  void SetMaxFractionHVbad(Float_t frac ) { fMaxHVfractionBad=frac; }
234  void SetVoltageDipScanPeriod(Float_t period) { fVoltageDipScanPeriod=period; }
235  //
236  //set response parameters
237  //
238  void SetNResponseMax(Int_t max) { fNResponseMax = max;}
239  void SetResponseThreshold(Int_t threshold) {fResponseThreshold = threshold;}
240  //set L1 parameters
241  void SetGateDelay(Float_t delay) {fGateDelay = delay;}
242  void SetL1Delay(Float_t delay) {fL1Delay = delay;}
243  void SetNTBinsBeforeL1(UShort_t nbins) {fNTBinsBeforeL1 = nbins;}
244  //
245  //get sector parameters
246  //
247  Float_t GetInnerRadiusLow() const {return fInnerRadiusLow;}
248  Float_t GetInnerRadiusUp() const {return fInnerRadiusUp;}
249  Float_t GetOuterRadiusLow() const {return fOuterRadiusLow;}
250  Float_t GetOuterRadiusUp() const {return fOuterRadiusUp;}
251  Float_t GetInnerFrameSpace() const {return fInnerFrameSpace;}
252  Float_t GetOuterFrameSpace() const {return fOuterFrameSpace;}
253  Float_t GetInnerWireMount() const {return fInnerWireMount;}
254  Float_t GetOuterWireMount() const {return fOuterWireMount;}
255  Float_t GetInnerAngle() const ;
256  Float_t GetInnerAngleShift() const ;
257  Float_t GetOuterAngle() const ;
258  Float_t GetOuterAngleShift() const ;
259  Int_t GetNInnerSector() const {return fNInnerSector;}
260  Int_t GetNOuterSector() const {return fNOuterSector;}
261  Int_t GetNSector() const {return fNSector;}
262  Float_t GetZLength(Int_t sector=0) const;
263  Int_t GetGeometryType() const {return fGeometryType;}
264 
265  //
266  //get wires parameter
267  //
268  Int_t GetInnerNWires() const {return fNInnerWiresPerPad;}
269  Float_t GetInnerWWPitch() const {return fInnerWWPitch;}
270  Int_t GetInnerDummyWire() const {return fInnerDummyWire;}
271  Float_t GetInnerOffWire() const {return fInnerOffWire;}
272  Float_t GetRInnerFirstWire() const {return fRInnerFirstWire;}
273  Float_t GetRInnerLastWire() const {return fRInnerLastWire;}
274  Int_t GetOuter1NWires() const {return fNOuter1WiresPerPad;}
275  Int_t GetOuter2NWires() const {return fNOuter2WiresPerPad;}
276  Float_t GetOuterWWPitch() const {return fOuterWWPitch;}
277  Int_t GetOuterDummyWire() const {return fOuterDummyWire;}
278  Float_t GetOuterOffWire() const {return fOuterOffWire;}
279  Float_t GetLastWireUp1() const {return fLastWireUp1;}
280  Float_t GetROuterFirstWire() const {return fROuterFirstWire;}
281  Float_t GetROuterLastWire() const {return fROuterLastWire;}
282  Float_t GetWWPitch(Int_t isector = 0) const {
283  return ( (isector < fNInnerSector) ? fInnerWWPitch :fOuterWWPitch);}
284  //
285  //get pad parameters
286  //
288  Float_t GetInnerPadPitchWidth() const {return fInnerPadPitchWidth;}
289  Float_t GetInnerPadLength() const {return fInnerPadLength;}
290  Float_t GetInnerPadWidth() const {return fInnerPadWidth;}
293  Float_t GetOuterPadPitchWidth() const {return fOuterPadPitchWidth;}
294  Float_t GetOuter1PadLength() const {return fOuter1PadLength;}
295  Float_t GetOuter2PadLength() const {return fOuter2PadLength;}
296  Float_t GetOuterPadWidth() const {return fOuterPadWidth;}
297  Bool_t GetMWPCReadout() const {return fBMWPCReadout;}
298  Int_t GetNCrossRows() const {return fNCrossRows;}
299  Float_t GetPadPitchWidth(Int_t isector = 0) const {
300  return ( (isector < fNInnerSector) ? fInnerPadPitchWidth :fOuterPadPitchWidth);}
301  Float_t GetPadPitchLength(Int_t isector = 0, Int_t padrow=0) const
302  { if (isector < fNInnerSector) return fInnerPadPitchLength;
303  else return ((padrow<fNRowUp1) ? fOuter1PadPitchLength:fOuter2PadPitchLength);}
304  Int_t GetNRowLow() const; //get the number of pad rows in low sector
305  Int_t GetNRowUp() const; //get the number of pad rows in up sector
306  Int_t GetNRowUp1() const; // number of short rows in up sector
307  Int_t GetNRowUp2() const; // number of long rows in up sector
308  Int_t GetNRow(Int_t isec) const {return ((isec<fNInnerSector) ? fNRowLow:fNRowUp);}
309  Int_t GetNRowsTotal() const {return fNtRows;} //get total nuber of rows
310  Float_t GetPadRowRadiiLow(Int_t irow) const; //get the pad row (irow) radii
311  Float_t GetPadRowRadiiUp(Int_t irow) const; //get the pad row (irow) radii
312  Float_t GetPadRowRadii(Int_t isec,Int_t irow) const {
313  return ( (isec < fNInnerSector) ?GetPadRowRadiiLow(irow):GetPadRowRadiiUp(irow));}
314  //retrun radii of the pad row irow in sector i
315  Int_t GetNPadsLow(Int_t irow) const; //get the number of pads in row irow
316  Int_t GetNPadsUp(Int_t irow) const; //get the number of pads in row irow
317  Int_t GetNPads(Int_t isector,Int_t irow) const{
318  return ( (isector < fNInnerSector) ?GetNPadsLow(irow) : GetNPadsUp(irow));}
319  Int_t GetWireSegment(Int_t sector, Int_t row) const ; // get Anode wire segment index IROC --> [0,4], OROC[0,7]
320  Int_t GetNPadsPerSegment(Int_t segmentID) const; // get number of pads for a given Anode wire segment
321 
322  Float_t GetYInner(Int_t irow) const; // wire length in low sec row
323  Float_t GetYOuter(Int_t irow) const; // wire length in up sec row
324  Int_t GetSectorIndex(Float_t angle, Int_t row, Float_t z) const; // get sector index
325  Float_t GetChamberCenter(Int_t isec, Float_t * center = 0) const; // get readout chamber positions
326  TGeoHMatrix *GetTrackingMatrix(Int_t isec) const {
327  return fTrackingMatrix[isec];}
328  TGeoHMatrix *GetClusterMatrix(Int_t isec) const {
329  return fClusterMatrix[isec];}
330  TGeoHMatrix *GetGlobalMatrix(Int_t isec) const {
331  return fGlobalMatrix[isec];}
332  Bool_t IsGeoRead(){ return fGlobalMatrix!=0;}
333  //
334  //get GAS parameters
335  //
336  Float_t GetDiffT() const {return fDiffT;}
337  Float_t GetDiffL() const {return fDiffL;}
338  Float_t GetGasGain() const {return fGasGain;}
339  Float_t GetRegionGain(UInt_t region) const {return fRegionGain[region%3];}
340  Float_t GetRegionGainAbsolute(UInt_t region) const { return (fRegionGain[region%3]>1e-10) ? fRegionGain[region%3]*fGasGain : fGasGain; }
341  Float_t GetDriftV() const {return fDriftV;}
342  Float_t GetOmegaTau() const {return fOmegaTau;}
343  Float_t GetAttCoef() const {return fAttCoef;}
344  Float_t GetOxyCont() const {return fOxyCont;}
345  TGraphErrors * GetGainSlopesHV() const { return fGainSlopesHV;}
346  TGraphErrors * GetGainSlopesPT() const { return fGainSlopesPT;}
347  Float_t* GetComposition() {return fComposition;}
348  Float_t GetFpot()const {return fFpot;}
349  Float_t GetNprim() const {return fNprim;}
350  Float_t GetNtot() const {return fNtot;}
351  Float_t GetWmean()const {return fWmean;}
352  Float_t GetExp()const {return fExp;}
353  Float_t GetEend()const {return fEend;}
356  static Double_t BetheBlochAleph(Double_t bb, Int_t type=0);
357  //
358  //get Electronic parameters
359  //
360  Float_t GetPadCoupling() const {return fPadCoupling;}
361  Int_t GetZeroSup() const {return fZeroSup;}
362  Float_t GetNoise() const {return fNoise;}
363  Float_t GetChipGain() const {return fChipGain;}
364  Float_t GetChipNorm() const {return fChipNorm;}
365  Float_t GetTSample() const {return fTSample;}
366  Float_t GetZWidth() const {return fZWidth;}
367  Float_t GetTFWHM() const {return fTSigma*2.35;}
368  Float_t GetZSigma() const {return fTSigma*fDriftV;}
369  virtual Float_t GetZOffset() const {return 3*fTSigma*fDriftV;}
370  Int_t GetMaxTBin() const {return fMaxTBin;}
371  Int_t GetADCSat() const {return fADCSat;}
372  Float_t GetADCDynRange() const {return fADCDynRange;}
373  Float_t GetTotalNormFac() const {return fTotalNormFac;}
374  Float_t GetNoiseNormFac() const {return fNoiseNormFac;}
375  Bool_t GetUseGlitchFilter() const {return fUseGlitchFilter;}
376  //
377  // High voltage parameters
378  //
379  Float_t GetNominalVoltage(UInt_t i) const {return (i<72)?fNominalVoltage[i]:0;} //0-35:IROC, 36-71:OROC
380  Float_t GetMaxVoltageDeviation() const { return fMaxVoltageDeviation; }
381  Float_t GetMaxDipVoltage() const { return fMaxDipVoltage; }
382  Float_t GetMaxFractionHVbad() const { return fMaxHVfractionBad; }
383  Float_t GetVoltageDipScanPeriod() const { return fVoltageDipScanPeriod; }
384 
385  //
386  // get response data
387  //
388  Int_t * GetResBin(Int_t i);
389  //return response bin i - bin given by padrow [0] pad[1] timebin[2]
390  Float_t & GetResWeight(Int_t i);
391  //return weight of response bin i
392 
393  // get L1 data
394  Float_t GetGateDelay() const {return fGateDelay;}
395  Float_t GetL1Delay() const {return fL1Delay;}
396  UShort_t GetNTBinsBeforeL1() const {return fNTBinsBeforeL1;}
397  Float_t GetNTBinsL1() const {return fNTBinsL1;}
398 protected :
399 
400  Bool_t fbStatus;
401  //---------------------------------------------------------------------
402  // ALICE TPC sector geometry
403  //--------------------------------------------------------------------
404  Float_t fInnerRadiusLow;
405  Float_t fInnerRadiusUp;
406  Float_t fOuterRadiusUp;
407  Float_t fOuterRadiusLow;
408  Float_t fInnerAngle;
410  Float_t fOuterAngle;
414  Float_t fInnerWireMount;
415  Float_t fOuterWireMount;
418  Int_t fNSector;
419  Float_t fZLength;
420  Float_t *fRotAngle; //[fNSector]
423  // Float_t *fChamberPos; //[fNSector] displacements of the readout chambers
424  //with respect to the 'idead' geometry
425  //in local corrdinate system
426  // Float_t *fChamberRot; //[fNSector] rotation angles of the readout chambers
427  //with respect to the 'idead' geometry
428  //in local corrdinate system
430  TGeoHMatrix **fTrackingMatrix;
431  TGeoHMatrix **fClusterMatrix;
433  TGeoHMatrix **fGlobalMatrix;
435 
436  //1-cylindrical
437  //---------------------------------------------------------------------
438  // ALICE TPC wires geometry - for GEM we can consider that it is gating
439  //--------------------------------------------------------------------
441  Float_t fInnerWWPitch;
443  Float_t fInnerOffWire;
445  Float_t fRInnerLastWire;
446  Float_t fLastWireUp1;
449  Float_t fOuterWWPitch;
451  Float_t fOuterOffWire;
453  Float_t fROuterLastWire;
454  //---------------------------------------------------------------------
455  // ALICE TPC pad parameters
456  //--------------------------------------------------------------------
459  Float_t fInnerPadLength;
460  Float_t fInnerPadWidth;
466  Float_t fOuterPadWidth;
467  Bool_t fBMWPCReadout;
468  Int_t fNCrossRows;
469 
470  Int_t fNRowLow;
471  Int_t fNRowUp1;
472  Int_t fNRowUp2;
473  Int_t fNRowUp;
474  Int_t fNtRows;
475  Float_t fPadRowLow[600];
476  Float_t fPadRowUp[600];
477  Int_t fNPadsLow[600];
478  Int_t fNPadsUp[600];
479  Float_t fYInner[600];
480  Float_t fYOuter[600];
481  //---------------------------------------------------------------------
482  // ALICE TPC Gas Parameters
483  //--------------------------------------------------------------------
484  Float_t fDiffT;
485  Float_t fDiffL;
486  Float_t fGasGain;
487  Float_t fRegionGain[3];
488  Float_t fDriftV;
489  Float_t fOmegaTau;
490  Float_t fAttCoef;
491  Float_t fOxyCont;
492  Float_t fFpot;
493  Float_t fNprim;
494  Float_t fNtot;
495  Float_t fWmean;
496  Float_t fExp;
497  Float_t fEend;
498  TVectorD* fBetheBloch;
499  TVectorD* fBetheBlochMC;
500  // gas mixture composition
501  Float_t fComposition[6];
502  TGraphErrors * fGainSlopesHV;
503  TGraphErrors * fGainSlopesPT;
504  //---------------------------------------------------------------------
505  // ALICE TPC Electronics Parameters
506  //--------------------------------------------------------------------
507  Float_t fPadCoupling;
508  //and total pads signal
509  Int_t fZeroSup;
510  Float_t fNoise;
511  Float_t fChipGain;
512  Float_t fChipNorm;
513  Float_t fTSample;
514  Float_t fZWidth;
515  Float_t fTSigma;
516  Int_t fMaxTBin;
517  Int_t fADCSat;
518  Float_t fADCDynRange;
519  Float_t fTotalNormFac;
520  Float_t fNoiseNormFac;
522 
523  //---------------------------------------------------------------------
524  // High voltage parameters
525  //---------------------------------------------------------------------
526  Float_t fNominalVoltage[72];
528  Float_t fMaxDipVoltage;
531 
532  //---------------------------------------------------------------------
533  // ALICE TPC response data
534  //---------------------------------------------------------------------
537  Int_t fCurrentMax;
538  Int_t *fResponseBin;
539  Float_t *fResponseWeight;
540 
541  //---------------------------------------------------------------------
542  // ALICE TPC L1 Parameters
543  //--------------------------------------------------------------------
544  Float_t fGateDelay;
545  Float_t fL1Delay;
546  UShort_t fNTBinsBeforeL1;
547  Float_t fNTBinsL1;
548  protected:
549  static TObjArray *fBBParam;
550  private:
551  AliTPCParam(const AliTPCParam &);
552  AliTPCParam & operator=(const AliTPCParam &);
553 
554  void CleanGeoMatrices();
555 
557  ClassDef(AliTPCParam,12) //parameter object for set:TPC
559 };
560 
561 
562 inline Int_t * AliTPCParam::GetResBin(Int_t i)
563 {
565 
566  if (i<fCurrentMax) return &fResponseBin[i*3];
567  else return 0;
568 }
569 
570 inline Float_t &AliTPCParam::GetResWeight(Int_t i)
571 {
573 
574  if (i<fCurrentMax) return fResponseWeight[i];
575  else return fResponseWeight[i];
576 }
577 
578 
579 inline void AliTPCParam::AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const
580 {
582 
583  cos=fRotAngle[isec*4];
584  sin=fRotAngle[isec*4+1];
585 }
586 
587 inline Float_t AliTPCParam::GetAngle(Int_t isec) const
588 {
590 
591  return fRotAngle[isec*4+2];
592 }
593 
594 
595 inline void AliTPCParam::Transform1to2Ideal(Float_t *xyz, Int_t *index) const
596 {
601 
602  Float_t cos,sin;
603  AdjustCosSin(index[1],cos,sin);
604  Float_t x1=xyz[0]*cos + xyz[1]*sin;
605  Float_t y1=-xyz[0]*sin + xyz[1]*cos;
606  xyz[0]=x1;
607  xyz[1]=y1;
608  xyz[2]=fZLength-TMath::Abs(xyz[2]);
609  index[0]=2;
610 }
611 
612 
613 inline void AliTPCParam::Transform1to2(Float_t *xyz, Int_t *index) const
614 {
618 
619  Double_t xyzmaster[3] = {xyz[0],xyz[1],xyz[2]};
620  Double_t xyzlocal[3]={0,0,0};
621  if (index[1]>=0 && index[1]<fNSector)
622  fGlobalMatrix[index[1]]->MasterToLocal(xyzmaster,xyzlocal);
623  xyz[0] = xyzlocal[0];
624  xyz[1] = xyzlocal[1];
625  xyz[2] = xyzlocal[2];
626  index[0]=2;
627 }
628 
629 
630 
631 
632 inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const
633 {
635 
636  Float_t cos,sin;
637  AdjustCosSin(index[1],cos,sin);
638  Float_t x1=xyz[0]*cos - xyz[1]*sin;
639  Float_t y1=xyz[0]*sin + xyz[1]*cos;
640  xyz[0]=x1;
641  xyz[1]=y1;
642  xyz[2]=fZLength-xyz[2];
643  if (index[1]<fNInnerSector)
644  {if ( index[1]>=(fNInnerSector>>1)) xyz[2]*=-1.;}
645  else
646  {if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[2]*=-1;}
647  index[0]=1;
648 }
649 
650 inline void AliTPCParam::Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const
651 {
654 
655  Transform2to1(xyz,index);
656  Transform1to2(xyz,oindex);
657  index[0]=2;
658  index[1]=oindex[1];
659 }
660 
661 inline Float_t AliTPCParam::Transform2to2NearestWire(Float_t *xyz, Int_t *index) const
662 {
665 
666  Float_t xnew,dx;
667  if (index[1]<fNInnerSector) {
668  xnew = fRInnerFirstWire+TMath::Nint((xyz[0]-fRInnerFirstWire)/fInnerWWPitch)*fInnerWWPitch;
669  }
670  else {
671  xnew = fROuterFirstWire+TMath::Nint((xyz[0]-fROuterFirstWire)/fOuterWWPitch)*fOuterWWPitch;
672  }
673  dx = xnew-xyz[0];
674  xyz[0]=xnew;
675  return dx;
676 }
677 
678 inline Int_t AliTPCParam::Transform2to3(Float_t *xyz, Int_t *index) const
679 {
683 
684  if (index[1]<fNInnerSector)
685  index[2] =TMath::Nint((xyz[0]-fPadRowLow[0])/fInnerPadPitchLength);
686  else
687  if (xyz[0] < fLastWireUp1 )
688  index[2] = TMath::Nint((xyz[0]-fPadRowUp[0])/fOuter1PadPitchLength);
689  else
690  index[2] = TMath::Nint(fNRowUp1+(xyz[0]-fPadRowUp[64])/fOuter2PadPitchLength);
691  index[0]=3;
692  return index[2];
693 }
694 
695 inline void AliTPCParam::Transform3to4(Float_t *xyz, Int_t *index) const
696 {
699 
700  if (index[1]<fNInnerSector)
701  xyz[0] -=index[2]*fInnerPadPitchLength+fPadRowLow[0];
702  else
703  if (index[2]<fNRowUp1)
704  xyz[0] -=index[2]*fOuter1PadPitchLength+fPadRowUp[0];
705  else
706  xyz[0] -=(index[2]-fNRowUp1)*fOuter2PadPitchLength+fPadRowUp[64];
707  index[0] =4;
708 }
709 
710 inline void AliTPCParam::Transform4to3(Float_t *xyz, Int_t *index) const
711 {
714 
715  if (index[1]<fNInnerSector)
716  xyz[0] +=index[2]*fInnerPadPitchLength+fPadRowLow[0];
717  else
718  if(index[2]<fNRowUp1)
719  xyz[0] +=index[2]*fOuter1PadPitchLength+fPadRowUp[0];
720  else
721  xyz[0] +=index[2]*fOuter2PadPitchLength+fPadRowUp[64];
722  index[0] =3;
723 }
724 
725 
726 inline void AliTPCParam::Transform2to5( Float_t *xyz, Int_t *index) const
727 {
729 
730  Float_t angle;
731  Float_t r = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
732  if ((xyz[0]==0)&&(xyz[1]==0)) angle = 0;
733  else
734  {
735  angle =TMath::ASin(xyz[1]/r);
736  if (xyz[0]<0) angle=TMath::Pi()-angle;
737  if ( (xyz[0]>0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle;
738  }
739  xyz[0]=r;
740  xyz[1]=angle;
741  index[0]=5;
742 }
743 
744 inline void AliTPCParam::Transform5to2( Float_t *xyz, Int_t *index) const
745 {
747 
748  Float_t r = xyz[0];
749  Float_t angle= xyz[1];
750  xyz[0]=r*TMath::Cos(angle);
751  xyz[1]=r*TMath::Sin(angle);
752  index[0]=2;
753 }
754 
755 inline void AliTPCParam::Transform4to8(Float_t *xyz, Int_t *index) const
756 {
758 
759  if (index[1]<fNInnerSector) {
760  if ( index[1]>=(fNInnerSector>>1)) xyz[1]*=-1.;
761  }
762  else {
763  if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1;
764  }
765 
766  xyz[2]/=fZWidth;
767  if (index[1]<fNInnerSector) {
768  xyz[0]/=fInnerPadPitchLength;
769  xyz[1]/=fInnerPadPitchWidth;
770  }
771  else{
772  xyz[1]/=fOuterPadPitchWidth;
773  if (index[2]<fNRowUp1 ) xyz[0]/=fOuter1PadPitchLength;
774  else xyz[0]/=fOuter2PadPitchLength;
775  }
776  xyz[1]-=0.5;
777  index[0]=8;
778 }
779 
780 inline void AliTPCParam::Transform8to4(Float_t *xyz, Int_t *index) const
781 {
783 
784  if (index[1]<fNInnerSector) {
785  if ( index[1]>=(fNInnerSector>>1)) xyz[1]*=-1.;
786  }
787  else {
788  if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1;
789  }
790 
791  xyz[2]*=fZWidth;
792  if (index[1]<fNInnerSector) {
793  xyz[0]*=fInnerPadPitchLength;
794  xyz[1]*=fInnerPadPitchWidth;
795  }
796  else{
797  xyz[1]*=fOuterPadPitchWidth;
798  if (index[2] < fNRowUp1 ) xyz[0]*=fOuter1PadPitchLength;
799  else xyz[0]*=fOuter2PadPitchLength;
800  }
801  index[0]=4;
802 }
803 
804 inline void AliTPCParam::Transform6to8(Float_t *xyz, Int_t *index) const
805 {
807 
808  xyz[2]/=fZWidth;
809  if (index[1]<fNInnerSector) {
810  xyz[0]/=fInnerPadPitchLength;
811  xyz[1]*=xyz[0]/fInnerPadPitchWidth;
812  }
813  else{
814  xyz[1]*=xyz[0]/fOuterPadPitchWidth;
815  if (index[2] < fNRowUp1 ) xyz[0]/=fOuter1PadPitchLength;
816  else xyz[0]/=fOuter2PadPitchLength;
817  }
818  index[0]=8;
819 }
820 
821 inline void AliTPCParam::Transform8to6(Float_t *xyz, Int_t *index) const
822 {
824 
825  xyz[2]*=fZWidth;
826  if (index[1]<fNInnerSector) {
827  xyz[0]*=fInnerPadPitchLength;
828  xyz[1]/=xyz[0]/fInnerPadPitchWidth;
829  }
830  else{
831  xyz[1]/=xyz[0]/fOuterPadPitchWidth;
832  if (index[2] < fNRowUp1 ) xyz[0]*=fOuter1PadPitchLength;
833  else xyz[0]*=fOuter2PadPitchLength;
834  }
835  index[0]=6;
836 }
837 inline Float_t AliTPCParam::GetZLength(Int_t sector) const
838 { if(sector <18 || (sector>35&&sector<54)) return fZLength-0.275;
839  else return fZLength-0.302;
840 }
841 #endif
Float_t fInnerWireMount
space for wire mount, inner sector
Definition: AliTPCParam.h:414
Float_t GetRegionGainAbsolute(UInt_t region) const
Definition: AliTPCParam.h:340
Int_t * fResponseBin
! array with bins -calulated
Definition: AliTPCParam.h:538
Float_t fOuter1PadLength
Outer pad length.
Definition: AliTPCParam.h:464
TGraphErrors * fGainSlopesHV
graph with the gain slope as function of HV - per chamber
Definition: AliTPCParam.h:502
Float_t GetPadPitchLength(Int_t isector=0, Int_t padrow=0) const
Definition: AliTPCParam.h:301
Int_t fNOuter1WiresPerPad
Number of wires per pad.
Definition: AliTPCParam.h:447
Float_t GetOuter2PadPitchLength() const
Definition: AliTPCParam.h:292
virtual Int_t CalcResponse(Float_t *, Int_t *, Int_t)
Definition: AliTPCParam.h:96
Float_t fInnerWWPitch
pitch between wires in inner sector - calculated
Definition: AliTPCParam.h:441
Float_t fTSample
sampling time
Definition: AliTPCParam.h:513
Float_t GetEend() const
Definition: AliTPCParam.h:353
Float_t fLastWireUp1
position of the last wire in outer1 sector
Definition: AliTPCParam.h:446
Int_t GetZeroSup() const
Definition: AliTPCParam.h:361
Float_t GetChipNorm() const
Definition: AliTPCParam.h:364
Float_t & GetResWeight(Int_t i)
Definition: AliTPCParam.h:570
static Double_t BetheBlochAleph(Double_t bb, Int_t type=0)
Float_t fPadCoupling
coupling factor ration of anode signal
Definition: AliTPCParam.h:507
Int_t Transform0to1(Float_t *xyz, Int_t *index) const
void SetOuterFrameSpace(Float_t frspace)
Definition: AliTPCParam.h:129
Float_t fInnerPadPitchWidth
Inner pad pitch width.
Definition: AliTPCParam.h:458
Float_t GetMaxDipVoltage() const
Definition: AliTPCParam.h:381
Float_t fNoise
noise sigma constant
Definition: AliTPCParam.h:510
Float_t GetYInner(Int_t irow) const
Float_t GetOuterWireMount() const
Definition: AliTPCParam.h:254
Float_t GetZSigma() const
Definition: AliTPCParam.h:368
void SetDiffT(Float_t DiffT)
Definition: AliTPCParam.h:176
Int_t GetNRowsTotal() const
Definition: AliTPCParam.h:309
Float_t fNtot
total number of electrons/c (MIP)
Definition: AliTPCParam.h:494
void SetInnerRadiusLow(Float_t InnerRadiusLow)
Definition: AliTPCParam.h:122
Float_t GetOuter1PadLength() const
Definition: AliTPCParam.h:294
void SetNominalVoltage(Float_t v, UInt_t i)
Definition: AliTPCParam.h:230
void SetNominalGainSlopes()
Float_t GetDiffL() const
Definition: AliTPCParam.h:337
Int_t GetNSector() const
Definition: AliTPCParam.h:261
Float_t fOuterWWPitch
pitch between wires in outer sector -calculated
Definition: AliTPCParam.h:449
void SetNResponseMax(Int_t max)
Definition: AliTPCParam.h:238
Float_t GetOuterPadWidth() const
Definition: AliTPCParam.h:296
Float_t fOuterAngleShift
shift of first sector center to the 0
Definition: AliTPCParam.h:411
Float_t GetOuterRadiusLow() const
Definition: AliTPCParam.h:249
void SetOuterWWPitch(Float_t wwPitch)
Definition: AliTPCParam.h:154
void SetVoltageDipScanPeriod(Float_t period)
Definition: AliTPCParam.h:234
Float_t GetGateDelay() const
Definition: AliTPCParam.h:394
Float_t GetOuter2PadLength() const
Definition: AliTPCParam.h:295
TGeoHMatrix * GetClusterMatrix(Int_t isec) const
Definition: AliTPCParam.h:328
Int_t GetNPadsPerSegment(Int_t segmentID) const
void SetOuter1NWires(Int_t nWires)
Definition: AliTPCParam.h:147
Float_t fADCDynRange
input dynamic range (mV)
Definition: AliTPCParam.h:518
void SetPadCoupling(Float_t PadCoupling)
Definition: AliTPCParam.h:216
void SetAttCoef(Float_t AttCoef)
Definition: AliTPCParam.h:182
Float_t GetRInnerFirstWire() const
Definition: AliTPCParam.h:272
void SetDiffL(Float_t DiffL)
Definition: AliTPCParam.h:177
Int_t GetNSegmentsTotal() const
Definition: AliTPCParam.h:106
Float_t fPadRowLow[600]
Lower sector, pad row radii -calculated.
Definition: AliTPCParam.h:475
void SetInnerPadPitchWidth(Float_t PadPitchWidth)
Definition: AliTPCParam.h:162
TGeoHMatrix * GetTrackingMatrix(Int_t isec) const
Definition: AliTPCParam.h:326
Float_t fOxyCont
oxygen content
Definition: AliTPCParam.h:491
#define TObjArray
Float_t GetNoise() const
Definition: AliTPCParam.h:362
Float_t GetROuterLastWire() const
Definition: AliTPCParam.h:281
Float_t fRegionGain[3]
gain in pad regions relative to fGasGain
Definition: AliTPCParam.h:487
void Transform2to5(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:726
void Transform1to2Ideal(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:595
Float_t fNTBinsL1
Overall L1 delay in time bins.
Definition: AliTPCParam.h:547
virtual Int_t Transform2toPadRow(Float_t *, Int_t *) const
Definition: AliTPCParam.h:69
Float_t fGateDelay
Delay of L1 arrival for the TPC gate signal.
Definition: AliTPCParam.h:544
Manager class for detector parameters.
Int_t GetInnerDummyWire() const
Definition: AliTPCParam.h:270
Bool_t fbStatus
indicates consistency of the data
Definition: AliTPCParam.h:400
Int_t * GetResBin(Int_t i)
Definition: AliTPCParam.h:562
void SetRInnerFirstWire(Float_t firstWire)
Definition: AliTPCParam.h:152
void SetBetheBloch(TVectorD *v)
Definition: AliTPCParam.h:199
Float_t GetTFWHM() const
Definition: AliTPCParam.h:367
Float_t * fRotAngle
sin and cos of rotation angles for different sectors - calculated
Definition: AliTPCParam.h:421
void SetRowNUp2(Int_t NRowUp2)
Definition: AliTPCParam.h:139
void SetGasGain(Float_t GasGain)
Definition: AliTPCParam.h:178
Float_t GetLastWireUp1() const
Definition: AliTPCParam.h:279
Manager and of geomety classes for set: TPC.
Definition: AliTPCParam.h:18
Float_t GetDriftV() const
Definition: AliTPCParam.h:341
Float_t GetMaxFractionHVbad() const
Definition: AliTPCParam.h:382
Bool_t GetMWPCReadout() const
Definition: AliTPCParam.h:297
void SetChipNorm(Float_t ChipNorm)
Definition: AliTPCParam.h:220
void SetRInnerLastWire(Float_t lastWire)
Definition: AliTPCParam.h:153
Float_t GetMaxVoltageDeviation() const
Definition: AliTPCParam.h:380
Float_t GetOuterRadiusUp() const
Definition: AliTPCParam.h:250
Float_t GetROuterFirstWire() const
Definition: AliTPCParam.h:280
Float_t fExp
de = f(E) - energy loss parametrization
Definition: AliTPCParam.h:496
Float_t fROuterFirstWire
position of the first wire -calulated
Definition: AliTPCParam.h:452
void SetGateDelay(Float_t delay)
Definition: AliTPCParam.h:241
static TVectorD * GetBetheBlochParamAlice()
virtual Bool_t Transform(Float_t *xyz, Int_t *index, Int_t *oindex)
Int_t GetInnerNWires() const
Definition: AliTPCParam.h:268
Float_t fOuterFrameSpace
space for outer frame in the phi direction
Definition: AliTPCParam.h:413
virtual Int_t GetPadRow(Float_t *xyz, Int_t *index) const
void Transform4to3(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:710
Float_t fRInnerLastWire
position of the last wire -calculated
Definition: AliTPCParam.h:445
void SetOuterWireMount(Float_t fmount)
Definition: AliTPCParam.h:131
void SetMWPCReadout(Bool_t type)
Definition: AliTPCParam.h:171
void SetNoise(Float_t Noise)
Definition: AliTPCParam.h:218
static TVectorD * GetBetheBlochParamNa49()
void SetTFWHM(Float_t fwhm)
Definition: AliTPCParam.h:222
Float_t fDriftV
drift velocity constant
Definition: AliTPCParam.h:488
virtual Bool_t ReadGeoMatrices()
Float_t fFpot
first ionisation potential
Definition: AliTPCParam.h:492
Float_t fNprim
number of primary electrons/cm
Definition: AliTPCParam.h:493
Float_t fMaxDipVoltage
maximum voltage deviation from median before a dip event is marked
Definition: AliTPCParam.h:528
Int_t fGeometryType
type of geometry -0 straight rows
Definition: AliTPCParam.h:422
Float_t GetPadRowRadiiLow(Int_t irow) const
Float_t fInnerRadiusUp
upper radius of inner sector-IP
Definition: AliTPCParam.h:405
void SetL1Delay(Float_t delay)
Definition: AliTPCParam.h:242
Int_t fNInnerWiresPerPad
[fNSector]
Definition: AliTPCParam.h:440
Float_t fDiffL
longutudinal diffusion constant
Definition: AliTPCParam.h:485
Float_t fAttCoef
attachment coefitients
Definition: AliTPCParam.h:490
void SetZeroSup(Int_t ZeroSup)
Definition: AliTPCParam.h:217
void SetOxyCont(Float_t OxyCont)
Definition: AliTPCParam.h:183
Float_t GetOmegaTau() const
Definition: AliTPCParam.h:342
Float_t GetGasGain() const
Definition: AliTPCParam.h:338
void SetGainSlopesPT(TGraphErrors *gainSlopesPT)
Definition: AliTPCParam.h:185
Float_t GetPadPitchWidth(Int_t isector=0) const
Definition: AliTPCParam.h:299
Float_t Transform2to2NearestWire(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:661
Float_t GetPadCoupling() const
Definition: AliTPCParam.h:360
Float_t fEend
upper cutoff for de generation
Definition: AliTPCParam.h:497
void SetInnerPadPitchLength(Float_t PadPitchLength)
Definition: AliTPCParam.h:161
void SetInnerFrameSpace(Float_t frspace)
Definition: AliTPCParam.h:128
Float_t GetInnerPadLength() const
Definition: AliTPCParam.h:289
Float_t fOuter2PadLength
Outer pad length.
Definition: AliTPCParam.h:465
static TObjArray * fBBParam
array of the Bethe-Bloch parameters.
Definition: AliTPCParam.h:549
Float_t GetInnerPadPitchLength() const
Definition: AliTPCParam.h:287
Int_t fInnerDummyWire
number of wires without pad readout
Definition: AliTPCParam.h:442
Float_t fOuterRadiusLow
lower radius of outer sector-IP
Definition: AliTPCParam.h:407
Float_t fInnerPadPitchLength
Inner pad pitch length.
Definition: AliTPCParam.h:457
void SetOuterOffWire(Float_t offset)
Definition: AliTPCParam.h:150
void SetOuter1PadPitchLength(Float_t PadPitchLength)
Definition: AliTPCParam.h:165
static void RegisterBBParam(TVectorD *param, Int_t position)
Float_t GetRegionGain(UInt_t region) const
Definition: AliTPCParam.h:339
Float_t fNominalVoltage[72]
nominal voltage in [V] per chamber
Definition: AliTPCParam.h:526
Float_t GetL1Delay() const
Definition: AliTPCParam.h:395
void Transform2to2(Float_t *xyz, Int_t *index, Int_t *oindex) const
Definition: AliTPCParam.h:650
Float_t fROuterLastWire
position of the last wire -calculated
Definition: AliTPCParam.h:453
TGraphErrors * fGainSlopesPT
graph with the gain slope as function of P/T - per chamber
Definition: AliTPCParam.h:503
void Transform4to8(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:755
void SetMaxTBin(Int_t maxtbin)
Definition: AliTPCParam.h:223
Int_t Transform2to3(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:678
Int_t fNInnerSector
number of inner sectors -calculated
Definition: AliTPCParam.h:416
Float_t GetTotalNormFac() const
Definition: AliTPCParam.h:373
Float_t GetNoiseNormFac() const
Definition: AliTPCParam.h:374
void SetMaxFractionHVbad(Float_t frac)
Definition: AliTPCParam.h:233
Float_t GetFpot() const
Definition: AliTPCParam.h:348
void SetInnerPadWidth(Float_t PadWidth)
Definition: AliTPCParam.h:164
TGeoHMatrix * Tracking2LocalMatrix(const TGeoHMatrix *geoMatrix, Int_t sector) const
static TVectorD * GetBetheBlochParamAliceMC()
void SetChipGain(Float_t ChipGain)
Definition: AliTPCParam.h:219
void SetMaxVoltageDeviation(Float_t voltage)
Definition: AliTPCParam.h:231
void SetSectorAngles(Float_t innerangle, Float_t innershift, Float_t outerangle, Float_t outershift)
Float_t fPadRowUp[600]
Upper sector, pad row radii -calculated.
Definition: AliTPCParam.h:476
Float_t fOuterWireMount
space for wire mount, outer sector
Definition: AliTPCParam.h:415
void SetNTBinsBeforeL1(UShort_t nbins)
Definition: AliTPCParam.h:243
Int_t GetNPadsLow(Int_t irow) const
void SetOuterRadiusLow(Float_t OuterRadiusLow)
Definition: AliTPCParam.h:123
Float_t fYInner[600]
Inner sector, wire-length.
Definition: AliTPCParam.h:479
void Transform5to2(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:744
Float_t GetNprim() const
Definition: AliTPCParam.h:349
Bool_t GetUseGlitchFilter() const
Definition: AliTPCParam.h:375
TVectorD * fBetheBloch
Bethe-Bloch parametrization.
Definition: AliTPCParam.h:498
Float_t GetOuterWWPitch() const
Definition: AliTPCParam.h:276
TVectorD * fBetheBlochMC
Bethe-Bloch parametrization.
Definition: AliTPCParam.h:499
void SetInnerDummyWire(Int_t dummy)
Definition: AliTPCParam.h:145
void Transform6to8(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:804
Int_t GetNCrossRows() const
Definition: AliTPCParam.h:298
UShort_t fNTBinsBeforeL1
Number of time bins before L1 arrival which are being read out.
Definition: AliTPCParam.h:546
Float_t GetADCDynRange() const
Definition: AliTPCParam.h:372
Int_t fNRowUp
number of pad rows per sector up -calculated
Definition: AliTPCParam.h:473
Float_t GetOuterAngle() const
virtual Float_t GetZOffset() const
Definition: AliTPCParam.h:369
Float_t GetYOuter(Int_t irow) const
Int_t GetOuter1NWires() const
Definition: AliTPCParam.h:274
Int_t GetSectorIndex(Float_t angle, Int_t row, Float_t z) const
virtual void CRXYZtoXYZ(Float_t *, const Int_t &, const Int_t &, Int_t) const
Definition: AliTPCParam.h:83
Float_t fNoiseNormFac
normalisation factor to transform noise in electron to ADC channel
Definition: AliTPCParam.h:520
Macros to do fast simulation of processes important for tuning of reconstruction Currently fast simulation of ionization digitization and cluster finder AliTPCclusterFast How to use it a which macro to use(I know it was somewhere in AliRoot but with the GIT page I dont find it anymore)
Float_t fOuterAngle
opening angle of outer sector
Definition: AliTPCParam.h:410
Float_t GetInnerRadiusLow() const
Definition: AliTPCParam.h:247
Float_t fChipGain
preamp shaper constant
Definition: AliTPCParam.h:511
TGeoHMatrix ** fClusterMatrix
transformation matrices of the cluster coordinate system
Definition: AliTPCParam.h:432
Float_t fMaxHVfractionBad
maximum fraction of bad HV entries (deviation from Median) before a chamber is marked bad ...
Definition: AliTPCParam.h:529
Float_t GetZWidth() const
Definition: AliTPCParam.h:366
Float_t fResponseThreshold
threshold for accepted response
Definition: AliTPCParam.h:536
void SetLastWireUp1(Float_t wireUp1)
Definition: AliTPCParam.h:155
Int_t fNSector
total number of sectors -calculated
Definition: AliTPCParam.h:418
Float_t GetOuterOffWire() const
Definition: AliTPCParam.h:278
void SetOuter1PadLength(Float_t PadLength)
Definition: AliTPCParam.h:168
Int_t GetNRowUp2() const
Float_t GetInnerAngle() const
Float_t fWmean
mean energy for electron/ion pair
Definition: AliTPCParam.h:495
Int_t fNResponseMax
maximal dimension of response
Definition: AliTPCParam.h:535
Float_t GetAngle(Int_t isec) const
Definition: AliTPCParam.h:587
Float_t * fResponseWeight
! array with response -calulated
Definition: AliTPCParam.h:539
Int_t fNPadsLow[600]
Lower sector, number of pads per row -calculated.
Definition: AliTPCParam.h:477
Float_t fInnerFrameSpace
space for inner frame in the phi direction
Definition: AliTPCParam.h:412
Float_t fChipNorm
preamp shaper normalisation
Definition: AliTPCParam.h:512
void SetOuter2PadLength(Float_t PadLength)
Definition: AliTPCParam.h:169
Float_t GetTSample() const
Definition: AliTPCParam.h:365
Double_t GetLowMaxY(Int_t irow) const
Definition: AliTPCParam.h:107
Int_t GetNRowUp() const
Int_t fOuterDummyWire
number of wires without pad readout
Definition: AliTPCParam.h:450
Bool_t GetStatus() const
Float_t fInnerOffWire
oofset of first wire to the begining of the sector
Definition: AliTPCParam.h:443
void SetNprim(Float_t prim)
Definition: AliTPCParam.h:194
Int_t fNPadsUp[600]
Upper sector, number of pads per row -calculated.
Definition: AliTPCParam.h:478
void SetGainSlopesHV(TGraphErrors *gainSlopesHV)
Definition: AliTPCParam.h:184
void SetInnerWWPitch(Float_t wwPitch)
Definition: AliTPCParam.h:151
void SetOuterDummyWire(Int_t dummy)
Definition: AliTPCParam.h:149
Float_t fDiffT
tangencial diffusion constant
Definition: AliTPCParam.h:484
void SetInnerPadLength(Float_t PadLength)
Definition: AliTPCParam.h:163
virtual void SetDefault()
Float_t fOuterPadWidth
Outer pad width.
Definition: AliTPCParam.h:466
TGeoHMatrix ** fGlobalMatrix
fTrackingMatrix * fClusterMatrix
Definition: AliTPCParam.h:434
Int_t fNOuter2WiresPerPad
Number of wires per pad.
Definition: AliTPCParam.h:448
void SetOuterRadiusUp(Float_t OuterRadiusUp)
Definition: AliTPCParam.h:125
Float_t GetOuterAngleShift() const
virtual void CRYZtoTimePad(const Float_t &, const Float_t &, Float_t &, Float_t &, Int_t, Int_t)
Definition: AliTPCParam.h:92
Float_t fInnerAngle
opening angle of Inner sector
Definition: AliTPCParam.h:408
Int_t GetADCSat() const
Definition: AliTPCParam.h:371
void SetInnerNWires(Int_t nWires)
Definition: AliTPCParam.h:144
Float_t fOuterOffWire
oofset of first wire to the begining of the sector
Definition: AliTPCParam.h:451
void SetRowNLow(Int_t NRowLow)
Definition: AliTPCParam.h:137
void SetTSample(Float_t TSample)
Definition: AliTPCParam.h:221
Float_t GetDiffT() const
Definition: AliTPCParam.h:336
Float_t fL1Delay
Delay of L1 arrival for the TPC readout.
Definition: AliTPCParam.h:545
Float_t fOmegaTau
omega tau ExB coeficient
Definition: AliTPCParam.h:489
Int_t fCurrentMax
! current maximal dimension -calulated
Definition: AliTPCParam.h:537
Int_t fADCSat
saturation value of ADC (10 bits)
Definition: AliTPCParam.h:517
virtual Bool_t Update()
Float_t fMaxVoltageDeviation
maximum voltage deviation from nominal voltage before a chamber is masked
Definition: AliTPCParam.h:527
void SetDriftV(Float_t DriftV)
Definition: AliTPCParam.h:180
void SetRowNUp(Int_t NRowUp)
Definition: AliTPCParam.h:140
Float_t GetNominalVoltage(UInt_t i) const
Definition: AliTPCParam.h:379
void SetResponseThreshold(Int_t threshold)
Definition: AliTPCParam.h:239
void CleanGeoMatrices()
Bool_t AdjustSectorRow(Int_t index, Int_t &sector, Int_t &row) const
Float_t fInnerAngleShift
shift of first inner sector center to the 0
Definition: AliTPCParam.h:409
TGraphErrors * GetGainSlopesPT() const
Definition: AliTPCParam.h:346
Int_t GetIndex(Int_t sector, Int_t row) const
TVectorD * GetBetheBlochParameters()
Definition: AliTPCParam.h:354
Float_t fTotalNormFac
full normalisation factor - calculated
Definition: AliTPCParam.h:519
Int_t GetNRow(Int_t isec) const
Definition: AliTPCParam.h:308
void SetExp(Float_t exp)
Definition: AliTPCParam.h:197
void SetROuterLastWire(Float_t lastWire)
Definition: AliTPCParam.h:157
Float_t fInnerPadLength
Inner pad length.
Definition: AliTPCParam.h:459
void SetRegionGain(UInt_t region, Float_t gain)
Definition: AliTPCParam.h:179
void Transform8to4(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:780
void SetZLength(Float_t zlength)
Definition: AliTPCParam.h:132
Float_t fYOuter[600]
Outer sector, wire-length.
Definition: AliTPCParam.h:480
TGraphErrors * GetGainSlopesHV() const
Definition: AliTPCParam.h:345
Int_t GetWireSegment(Int_t sector, Int_t row) const
TGeoHMatrix ** fTrackingMatrix
transformation matrices of the tracking coordinate system
Definition: AliTPCParam.h:430
Float_t GetPadRowRadiiUp(Int_t irow) const
Float_t GetVoltageDipScanPeriod() const
Definition: AliTPCParam.h:383
TGeoHMatrix * GetGlobalMatrix(Int_t isec) const
Definition: AliTPCParam.h:330
Float_t fZWidth
derived value calculated using TSample and driftw -computed
Definition: AliTPCParam.h:514
Float_t GetWmean() const
Definition: AliTPCParam.h:351
void SetOmegaTau(Float_t OmegaTau)
Definition: AliTPCParam.h:181
Int_t GetGeometryType() const
Definition: AliTPCParam.h:263
Float_t GetInnerFrameSpace() const
Definition: AliTPCParam.h:251
Float_t GetWWPitch(Int_t isector=0) const
Definition: AliTPCParam.h:282
void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const
Definition: AliTPCParam.h:579
Float_t GetOxyCont() const
Definition: AliTPCParam.h:344
Float_t GetChipGain() const
Definition: AliTPCParam.h:363
void SetGeometryType(Int_t type)
Definition: AliTPCParam.h:133
Float_t fOuterPadPitchWidth
Outer pad pitch width.
Definition: AliTPCParam.h:463
Int_t GetNPads(Int_t isector, Int_t irow) const
Definition: AliTPCParam.h:317
virtual void CRTimePadtoYZ(Float_t &, Float_t &, const Float_t &, const Float_t &, Int_t, Int_t)
Definition: AliTPCParam.h:87
Int_t GetOuter2NWires() const
Definition: AliTPCParam.h:275
Bool_t IsGeoRead()
Definition: AliTPCParam.h:332
Float_t GetInnerAngleShift() const
Float_t GetInnerOffWire() const
Definition: AliTPCParam.h:271
Int_t GetNPadsUp(Int_t irow) const
UShort_t GetNTBinsBeforeL1() const
Definition: AliTPCParam.h:396
Int_t GetNOuterSector() const
Definition: AliTPCParam.h:260
Float_t fOuter1PadPitchLength
Outer pad pitch length.
Definition: AliTPCParam.h:461
void SetOuterPadPitchWidth(Float_t PadPitchWidth)
Definition: AliTPCParam.h:167
Int_t fMaxTBin
maximum time bin number
Definition: AliTPCParam.h:516
void SetNCrossRows(Int_t rows)
Definition: AliTPCParam.h:172
Float_t GetOuterFrameSpace() const
Definition: AliTPCParam.h:252
Int_t fNOuterSector
number of outer sectors -calculated
Definition: AliTPCParam.h:417
void SetRowNUp1(Int_t NRowUp1)
Definition: AliTPCParam.h:138
void SetBetheBlochMC(TVectorD *v)
Definition: AliTPCParam.h:204
void SetADCDynRange(Float_t adcdynrange)
Definition: AliTPCParam.h:225
Float_t fRInnerFirstWire
position of the first wire -calculated
Definition: AliTPCParam.h:444
void Transform2to1(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:632
Float_t fInnerPadWidth
Inner pad width.
Definition: AliTPCParam.h:460
Float_t GetInnerWireMount() const
Definition: AliTPCParam.h:253
Float_t GetInnerRadiusUp() const
Definition: AliTPCParam.h:248
Int_t fNRowLow
number of pad rows per low sector -set
Definition: AliTPCParam.h:470
virtual ~AliTPCParam()
void SetInnerWireMount(Float_t fmount)
Definition: AliTPCParam.h:130
Double_t GetUpMaxY(Int_t irow) const
Definition: AliTPCParam.h:108
Float_t GetOuterPadPitchWidth() const
Definition: AliTPCParam.h:293
void SetOuter2NWire(Int_t nWires)
Definition: AliTPCParam.h:148
Float_t fInnerRadiusLow
lower radius of inner sector-IP
Definition: AliTPCParam.h:404
void SetOuterPadWidth(Float_t PadWidth)
Definition: AliTPCParam.h:170
Float_t GetNTBinsL1() const
Definition: AliTPCParam.h:397
Float_t GetZLength(Int_t sector=0) const
Definition: AliTPCParam.h:837
void SetUseGlitchFilter(Bool_t use)
Definition: AliTPCParam.h:226
void SetADCSat(Int_t adcsat)
Definition: AliTPCParam.h:224
Float_t fZLength
Definition: AliTPCParam.h:419
void SetNtot(Float_t ntot)
Definition: AliTPCParam.h:195
void SetROuterFirstWire(Float_t firstWire)
Definition: AliTPCParam.h:156
Int_t fNRowUp1
number of short pad rows per sector up -set
Definition: AliTPCParam.h:471
Int_t GetOuterDummyWire() const
Definition: AliTPCParam.h:277
void Transform3to4(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:695
void SetEend(Float_t end)
Definition: AliTPCParam.h:198
Float_t fComposition[6]
Definition: AliTPCParam.h:501
Float_t fOuterRadiusUp
upper radius of outer sector-IP
Definition: AliTPCParam.h:406
Float_t GetPadRowRadii(Int_t isec, Int_t irow) const
Definition: AliTPCParam.h:312
Float_t GetInnerWWPitch() const
Definition: AliTPCParam.h:269
Float_t GetAttCoef() const
Definition: AliTPCParam.h:343
Float_t fGasGain
gas gain constant
Definition: AliTPCParam.h:486
void Transform8to6(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:821
Float_t GetNtot() const
Definition: AliTPCParam.h:350
Float_t GetExp() const
Definition: AliTPCParam.h:352
Float_t GetOuter1PadPitchLength() const
Definition: AliTPCParam.h:291
Float_t fOuter2PadPitchLength
Outer pad pitch length.
Definition: AliTPCParam.h:462
Int_t GetMaxTBin() const
Definition: AliTPCParam.h:370
void SetWmean(Float_t wmean)
Definition: AliTPCParam.h:196
Float_t fTSigma
width of the Preamp/Shaper function
Definition: AliTPCParam.h:515
void Transform1to2(Float_t *xyz, Int_t *index) const
Definition: AliTPCParam.h:613
Int_t fZeroSup
zero suppresion constant
Definition: AliTPCParam.h:509
virtual void XYZtoCRXYZ(Float_t *, Int_t &, Int_t &, Int_t) const
Definition: AliTPCParam.h:75
Float_t GetInnerPadPitchWidth() const
Definition: AliTPCParam.h:288
Bool_t fBMWPCReadout
indicate wire readout - kTRUE or GEM readout -kFALSE
Definition: AliTPCParam.h:467
void SetComposition(Float_t c1, Float_t c2, Float_t c3, Float_t c4, Float_t c5, Float_t c6)
Definition: AliTPCParam.h:187
TVectorD * GetBetheBlochParametersMC()
Definition: AliTPCParam.h:355
void SetInnerOffWire(Float_t offset)
Definition: AliTPCParam.h:146
Int_t fNRowUp2
number of long pad rows per sector up -set
Definition: AliTPCParam.h:472
Float_t fVoltageDipScanPeriod
scanning period to detect a high volrage dip: event time stamp +- fVoltageDipScanPeriod [sec] ...
Definition: AliTPCParam.h:530
Int_t GetNInnerSector() const
Definition: AliTPCParam.h:259
Float_t GetRInnerLastWire() const
Definition: AliTPCParam.h:273
Int_t GetNRowLow() const
Bool_t fUseGlitchFilter
use the glitch filter to suppress single digits above threshold
Definition: AliTPCParam.h:521
void SetFpot(Float_t fpot)
Definition: AliTPCParam.h:193
Float_t * GetComposition()
Definition: AliTPCParam.h:347
Int_t fNCrossRows
number of rows to crostalk calculation
Definition: AliTPCParam.h:468
void SetOuter2PadPitchLength(Float_t PadPitchLength)
Definition: AliTPCParam.h:166
void SetMaxDipVoltage(Float_t voltage)
Definition: AliTPCParam.h:232
void SetInnerRadiusUp(Float_t InnerRadiusUp)
Definition: AliTPCParam.h:124
Int_t fNtRows
total number of rows in TPC -calculated
Definition: AliTPCParam.h:474
AliTPCParam & operator=(const AliTPCParam &)
Int_t GetNRowUp1() const
Float_t GetChamberCenter(Int_t isec, Float_t *center=0) const
Float_t GetInnerPadWidth() const
Definition: AliTPCParam.h:290