AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCROC.h
Go to the documentation of this file.
1 #ifndef ALITPCROC_H
2 #define ALITPCROC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id: AliTPCROC.h,v */
7 
10 
11 #include <TObject.h>
12 
13 //_____________________________________________________________________________
14 class AliTPCROC : public TObject {
15  public:
16  static AliTPCROC* Instance();
17  AliTPCROC();
18  AliTPCROC(const AliTPCROC &roc);
19  AliTPCROC &operator = (const AliTPCROC & roc); //assignment operator
20  void Init();
21  virtual ~AliTPCROC();
22  void GetPositionLocal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos);
23  void GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos);
24  //
25  // numbering
26  UInt_t GetNSectors() const { return fNSectorsAll;}
27  UInt_t GetNRows(UInt_t sector) const { return (sector<fNSectors[1]) ? fNRows[0]:fNRows[1];}
28  UInt_t GetNChannels(UInt_t sector) const { return (sector<fNSectors[1]) ? fNChannels[0]:fNChannels[1];}
29  UInt_t GetNPads(UInt_t sector,UInt_t row) const {
30  UInt_t irow=(row<GetNRows(sector))?row:(GetNRows(sector)-1);
31  return (sector<fNSectors[1]) ? fNPads[0][irow]:fNPads[1][irow];}
32  const UInt_t * GetRowIndexes(UInt_t sector) const {return (sector<fNSectors[1]) ? fRowPosIndex[0]:fRowPosIndex[1];}
33  //
34  //get sector parameters
35  //
36  Float_t GetInnerRadiusLow() const {return fInnerRadiusLow;}
37  Float_t GetInnerRadiusUp() const {return fInnerRadiusUp;}
38  Float_t GetOuterRadiusLow() const {return fOuterRadiusLow;}
39  Float_t GetOuterRadiusUp() const {return fOuterRadiusUp;}
40  Float_t GetInnerFrameSpace() const {return fInnerFrameSpace;}
41  Float_t GetOuterFrameSpace() const {return fOuterFrameSpace;}
42  Float_t GetInnerWireMount() const {return fInnerWireMount;}
43  Float_t GetOuterWireMount() const {return fOuterWireMount;}
44  Float_t GetInnerAngle() const {return fInnerAngle;}
45  Float_t GetOuterAngle() const {return fOuterAngle;}
46  UInt_t GetNInnerSector() const {return fNSectors[0];}
47  UInt_t GetNOuterSector() const {return fNSectors[1];}
48  UInt_t GetNSector() const {return fNSectorsAll;}
49  Float_t GetZLength(Int_t sector) const {return (sector<35) ? fZLength-0.275 : fZLength-0.302;}
50  //
51  // get pad row parameters
52  //
53  Float_t GetPadRowRadiiLow(UInt_t irow) const {return ( irow<fNRowLow ) ? fPadRowLow[irow]: 0;} //get the pad row (irow) radii
54  Float_t GetPadRowRadiiUp(UInt_t irow) const {return ( irow<fNRowUp ) ? fPadRowUp[irow]: 0;} //get the pad row (irow) radii
55  Float_t GetPadRowRadii(UInt_t isec, UInt_t irow) const {
56  return ( (isec < fNSectors[0]) ?GetPadRowRadiiLow(irow):GetPadRowRadiiUp(irow));}
57  //
58  static UInt_t GetTPCUniqueID(UInt_t sector, UInt_t row, UInt_t pad){UInt_t uid=pad+row*140+sector*140*159; return uid; } // unique Id can be used for absolute adressing of the TPC element
59 protected:
60  //
61  // number of pads
62  //
63  void SetGeometry(); // set geometry parameters
64  UInt_t fNSectorsAll;
65  UInt_t fNSectors[2];
66  UInt_t fNRows[2];
67  UInt_t fNChannels[2];
68  UInt_t *fNPads[2];
69  UInt_t *fRowPosIndex[2];
70  //
71  //
72  //---------------------------------------------------------------------
73  // ALICE TPC sector geometry
74  //--------------------------------------------------------------------
75  Float_t fInnerRadiusLow;
76  Float_t fInnerRadiusUp;
77  Float_t fOuterRadiusUp;
78  Float_t fOuterRadiusLow;
79  Float_t fInnerFrameSpace;
80  Float_t fOuterFrameSpace;
81  Float_t fInnerWireMount;
82  Float_t fOuterWireMount;
83  Float_t fZLength;
84  Float_t fInnerAngle;
85  Float_t fOuterAngle;
86  //
87  //---------------------------------------------------------------------
88  // ALICE TPC wires geometry - for GEM we can consider that it is gating
89  //--------------------------------------------------------------------
91  Float_t fInnerWWPitch;
92  UInt_t fInnerDummyWire;
93  Float_t fInnerOffWire;
94  Float_t fRInnerFirstWire;
95  Float_t fRInnerLastWire;
96  Float_t fLastWireUp1;
99  Float_t fOuterWWPitch;
101  Float_t fOuterOffWire;
103  Float_t fROuterLastWire;
104  //---------------------------------------------------------------------
105  // ALICE TPC pad parameters
106  //--------------------------------------------------------------------
109  Float_t fInnerPadLength;
110  Float_t fInnerPadWidth;
116  Float_t fOuterPadWidth;
117  //
118  UInt_t fNRowLow;
119  UInt_t fNRowUp1;
120  UInt_t fNRowUp2;
121  UInt_t fNRowUp;
122  UInt_t fNtRows;
123  Float_t fPadRowLow[100];
124  Float_t fPadRowUp[100];
125  UInt_t fNPadsLow[100];
126  UInt_t fNPadsUp[100];
127  Float_t fYInner[100];
128  Float_t fYOuter[100];
129  protected:
131  ClassDef(AliTPCROC,0) // TPC ROC class
134 };
135 
136 #endif
Float_t fInnerOffWire
oofset of first wire to the begining of the sector
Definition: AliTPCROC.h:93
void SetGeometry()
Definition: AliTPCROC.cxx:98
Float_t fOuter2PadPitchLength
Outer pad pitch length.
Definition: AliTPCROC.h:112
UInt_t fNRowUp
number of pad rows per sector up -calculated
Definition: AliTPCROC.h:121
UInt_t GetNPads(UInt_t sector, UInt_t row) const
Definition: AliTPCROC.h:29
Float_t GetOuterFrameSpace() const
Definition: AliTPCROC.h:41
UInt_t fNRowUp1
number of short pad rows per sector up -set
Definition: AliTPCROC.h:119
Float_t fInnerAngle
angular coverage
Definition: AliTPCROC.h:84
UInt_t fInnerDummyWire
number of wires without pad readout
Definition: AliTPCROC.h:92
UInt_t fNSectors[2]
number of sectors - inner outer
Definition: AliTPCROC.h:65
static AliTPCROC * fgInstance
Definition: AliTPCROC.h:130
Float_t fOuterPadPitchWidth
Outer pad pitch width.
Definition: AliTPCROC.h:113
Float_t GetOuterRadiusUp() const
Definition: AliTPCROC.h:39
UInt_t fNtRows
total number of rows in TPC -calculated
Definition: AliTPCROC.h:122
Float_t fOuterAngle
angular coverage
Definition: AliTPCROC.h:85
UInt_t GetNRows(UInt_t sector) const
Definition: AliTPCROC.h:27
Float_t fInnerWireMount
space for wire mount, inner sector
Definition: AliTPCROC.h:81
Float_t fOuter2PadLength
Outer pad length.
Definition: AliTPCROC.h:115
UInt_t GetNSector() const
Definition: AliTPCROC.h:48
UInt_t fNSectorsAll
number of sectors
Definition: AliTPCROC.h:64
UInt_t GetNChannels(UInt_t sector) const
Definition: AliTPCROC.h:28
UInt_t fNChannels[2]
total number of pads - inner sector - outer sector
Definition: AliTPCROC.h:67
UInt_t GetNOuterSector() const
Definition: AliTPCROC.h:47
void GetPositionLocal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos)
Definition: AliTPCROC.cxx:414
UInt_t * fRowPosIndex[2]
index array - inner - outer
Definition: AliTPCROC.h:69
UInt_t fOuterDummyWire
number of wires without pad readout
Definition: AliTPCROC.h:100
UInt_t fNPadsLow[100]
Lower sector, number of pads per row -calculated.
Definition: AliTPCROC.h:125
Float_t fPadRowLow[100]
Lower sector, pad row radii -calculated.
Definition: AliTPCROC.h:123
Float_t fZLength
length of the drift region of the TPC
Definition: AliTPCROC.h:83
Float_t fInnerPadWidth
Inner pad width.
Definition: AliTPCROC.h:110
Float_t fYOuter[100]
Outer sector, wire-length.
Definition: AliTPCROC.h:128
Float_t fInnerRadiusUp
upper radius of inner sector-IP
Definition: AliTPCROC.h:76
virtual ~AliTPCROC()
Definition: AliTPCROC.cxx:399
Float_t GetInnerAngle() const
Definition: AliTPCROC.h:44
Float_t fOuterWireMount
space for wire mount, outer sector
Definition: AliTPCROC.h:82
Float_t fOuterPadWidth
Outer pad width.
Definition: AliTPCROC.h:116
UInt_t fNOuter1WiresPerPad
Number of wires per pad.
Definition: AliTPCROC.h:97
Float_t fOuterRadiusLow
lower radius of outer sector-IP
Definition: AliTPCROC.h:78
Float_t GetInnerWireMount() const
Definition: AliTPCROC.h:42
Float_t GetZLength(Int_t sector) const
Definition: AliTPCROC.h:49
UInt_t GetNInnerSector() const
Definition: AliTPCROC.h:46
Float_t GetOuterAngle() const
Definition: AliTPCROC.h:45
Float_t GetPadRowRadiiUp(UInt_t irow) const
Definition: AliTPCROC.h:54
void GetPositionGlobal(UInt_t sector, UInt_t row, UInt_t pad, Float_t *pos)
Definition: AliTPCROC.cxx:432
void Init()
Definition: AliTPCROC.cxx:49
const UInt_t * GetRowIndexes(UInt_t sector) const
Definition: AliTPCROC.h:32
Geometry class for a single ROC.
Definition: AliTPCROC.h:14
Float_t fInnerPadLength
Inner pad length.
Definition: AliTPCROC.h:109
Float_t GetOuterRadiusLow() const
Definition: AliTPCROC.h:38
Float_t fOuterOffWire
oofset of first wire to the begining of the sector
Definition: AliTPCROC.h:101
Float_t fOuterFrameSpace
space for outer frame in the phi direction
Definition: AliTPCROC.h:80
UInt_t fNInnerWiresPerPad
Number of wires per pad.
Definition: AliTPCROC.h:90
Float_t fInnerRadiusLow
lower radius of inner sector-IP
Definition: AliTPCROC.h:75
Float_t fLastWireUp1
position of the last wire in outer1 sector
Definition: AliTPCROC.h:96
Float_t GetOuterWireMount() const
Definition: AliTPCROC.h:43
Float_t GetInnerRadiusUp() const
Definition: AliTPCROC.h:37
Float_t fPadRowUp[100]
Upper sector, pad row radii -calculated.
Definition: AliTPCROC.h:124
AliTPCROC & operator=(const AliTPCROC &roc)
Definition: AliTPCROC.cxx:389
UInt_t fNOuter2WiresPerPad
Number of wires per pad.
Definition: AliTPCROC.h:98
Float_t fInnerFrameSpace
space for inner frame in the phi direction
Definition: AliTPCROC.h:79
Float_t fYInner[100]
Inner sector, wire-length.
Definition: AliTPCROC.h:127
Float_t fInnerWWPitch
pitch between wires in inner sector - calculated
Definition: AliTPCROC.h:91
UInt_t fNRows[2]
number of row - inner outer
Definition: AliTPCROC.h:66
UInt_t fNPadsUp[100]
Upper sector, number of pads per row -calculated.
Definition: AliTPCROC.h:126
UInt_t fNRowUp2
number of long pad rows per sector up -set
Definition: AliTPCROC.h:120
static UInt_t GetTPCUniqueID(UInt_t sector, UInt_t row, UInt_t pad)
Definition: AliTPCROC.h:58
Float_t fOuterRadiusUp
upper radius of outer sector-IP
Definition: AliTPCROC.h:77
Float_t fInnerPadPitchWidth
Inner pad pitch width.
Definition: AliTPCROC.h:108
Float_t fOuter1PadPitchLength
Outer pad pitch length.
Definition: AliTPCROC.h:111
static AliTPCROC * Instance()
Definition: AliTPCROC.cxx:34
Float_t fRInnerLastWire
position of the last wire -calculated
Definition: AliTPCROC.h:95
UInt_t GetNSectors() const
Definition: AliTPCROC.h:26
Float_t fRInnerFirstWire
position of the first wire -calculated
Definition: AliTPCROC.h:94
Float_t GetPadRowRadii(UInt_t isec, UInt_t irow) const
Definition: AliTPCROC.h:55
UInt_t * fNPads[2]
number of pads in row - inner - outer
Definition: AliTPCROC.h:68
Float_t GetInnerFrameSpace() const
Definition: AliTPCROC.h:40
Float_t fROuterLastWire
position of the last wire -calculated
Definition: AliTPCROC.h:103
Float_t GetInnerRadiusLow() const
Definition: AliTPCROC.h:36
UInt_t fNRowLow
number of pad rows per low sector -set
Definition: AliTPCROC.h:118
Float_t fROuterFirstWire
position of the first wire -calulated
Definition: AliTPCROC.h:102
Float_t GetPadRowRadiiLow(UInt_t irow) const
Definition: AliTPCROC.h:53
Float_t fInnerPadPitchLength
Inner pad pitch length.
Definition: AliTPCROC.h:107
Float_t fOuter1PadLength
Outer pad length.
Definition: AliTPCROC.h:114
Float_t fOuterWWPitch
pitch between wires in outer sector -calculated
Definition: AliTPCROC.h:99