]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCROC.h
Fix bug in GetBusPatch method for station 2 (Christian & Laurent)
[u/mrichter/AliRoot.git] / TPC / AliTPCROC.h
CommitLineData
7a0ff78e 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
8//////////////////////////////////////////////////
9// //
10// TPC geometry class for ROC //
11// //
12//////////////////////////////////////////////////
13
14#include <TObject.h>
15
16//_____________________________________________________________________________
17class AliTPCROC : public TObject {
18 public:
19 static AliTPCROC* Instance();
20 AliTPCROC();
21 AliTPCROC(const AliTPCROC &roc);
22 void Init();
23 virtual ~AliTPCROC();
24
25 //
26 // numbering
c5bbaa2c 27 UInt_t GetNSectors() const { return fNSectorsAll;}
28 UInt_t GetNRows(UInt_t sector) const { return (sector<fNSectors[1]) ? fNRows[0]:fNRows[1];}
29 UInt_t GetNChannels(UInt_t sector) const { return (sector<fNSectors[1]) ? fNChannels[0]:fNChannels[1];}
30 UInt_t GetNPads(UInt_t sector,UInt_t row) const { return (sector<fNSectors[1]) ? fNPads[0][row]:fNPads[1][row];}
31 const UInt_t * GetRowIndexes(UInt_t sector) const {return (sector<fNSectors[1]) ? fRowPosIndex[0]:fRowPosIndex[1];}
7a0ff78e 32 //
33 //get sector parameters
34 //
35 Float_t GetInnerRadiusLow() const {return fInnerRadiusLow;}
36 Float_t GetInnerRadiusUp() const {return fInnerRadiusUp;}
37 Float_t GetOuterRadiusLow() const {return fOuterRadiusLow;}
38 Float_t GetOuterRadiusUp() const {return fOuterRadiusUp;}
39 Float_t GetInnerFrameSpace() const {return fInnerFrameSpace;}
40 Float_t GetOuterFrameSpace() const {return fOuterFrameSpace;}
41 Float_t GetInnerWireMount() const {return fInnerWireMount;}
42 Float_t GetOuterWireMount() const {return fOuterWireMount;}
43 Float_t GetInnerAngle() const {return fInnerAngle;}
44 Float_t GetOuterAngle() const {return fOuterAngle;}
c5bbaa2c 45 UInt_t GetNInnerSector() const {return fNSectors[0];}
46 UInt_t GetNOuterSector() const {return fNSectors[1];}
47 UInt_t GetNSector() const {return fNSectorsAll;}
7a0ff78e 48 Float_t GetZLength() const {return fZLength;}
49 //
50
51 protected:
52 //
53 // number of pads
54 //
55 void SetGeometry(); // set geometry parameters
c5bbaa2c 56 UInt_t fNSectorsAll; // number of sectors
57 UInt_t fNSectors[2]; // number of sectors - inner outer
58 UInt_t fNRows[2]; // number of row - inner outer
59 UInt_t fNChannels[2]; // total number of pads - inner sector - outer sector
60 UInt_t *fNPads[2]; // number of pads in row - inner - outer
61 UInt_t *fRowPosIndex[2]; // index array - inner - outer
7a0ff78e 62 //
63 //
64 //---------------------------------------------------------------------
65 // ALICE TPC sector geometry
66 //--------------------------------------------------------------------
67 Float_t fInnerRadiusLow; // lower radius of inner sector-IP
68 Float_t fInnerRadiusUp; // upper radius of inner sector-IP
69 Float_t fOuterRadiusUp; // upper radius of outer sector-IP
70 Float_t fOuterRadiusLow; // lower radius of outer sector-IP
71 Float_t fInnerFrameSpace; //space for inner frame in the phi direction
72 Float_t fOuterFrameSpace; //space for outer frame in the phi direction
73 Float_t fInnerWireMount; //space for wire mount, inner sector
74 Float_t fOuterWireMount; //space for wire mount, outer sector
75 Float_t fZLength; //length of the drift region of the TPC
76 Float_t fInnerAngle; //angular coverage
77 Float_t fOuterAngle; //angular coverage
78 //
79 //---------------------------------------------------------------------
80 // ALICE TPC wires geometry - for GEM we can consider that it is gating
81 //--------------------------------------------------------------------
c5bbaa2c 82 UInt_t fNInnerWiresPerPad; //Number of wires per pad
7a0ff78e 83 Float_t fInnerWWPitch; //pitch between wires in inner sector - calculated
c5bbaa2c 84 UInt_t fInnerDummyWire; //number of wires without pad readout
7a0ff78e 85 Float_t fInnerOffWire; //oofset of first wire to the begining of the sector
86 Float_t fRInnerFirstWire; //position of the first wire -calculated
87 Float_t fRInnerLastWire; //position of the last wire -calculated
88 Float_t fLastWireUp1; //position of the last wire in outer1 sector
c5bbaa2c 89 UInt_t fNOuter1WiresPerPad; //Number of wires per pad
90 UInt_t fNOuter2WiresPerPad; // Number of wires per pad
7a0ff78e 91 Float_t fOuterWWPitch; //pitch between wires in outer sector -calculated
c5bbaa2c 92 UInt_t fOuterDummyWire; //number of wires without pad readout
7a0ff78e 93 Float_t fOuterOffWire; //oofset of first wire to the begining of the sector
94 Float_t fROuterFirstWire; //position of the first wire -calulated
95 Float_t fROuterLastWire; //position of the last wire -calculated
96 //---------------------------------------------------------------------
97 // ALICE TPC pad parameters
98 //--------------------------------------------------------------------
99 Float_t fInnerPadPitchLength; //Inner pad pitch length
100 Float_t fInnerPadPitchWidth; //Inner pad pitch width
101 Float_t fInnerPadLength; //Inner pad length
102 Float_t fInnerPadWidth; //Inner pad width
103 Float_t fOuter1PadPitchLength; //Outer pad pitch length
104 Float_t fOuter2PadPitchLength; //Outer pad pitch length
105 Float_t fOuterPadPitchWidth; //Outer pad pitch width
106 Float_t fOuter1PadLength; //Outer pad length
107 Float_t fOuter2PadLength; //Outer pad length
108 Float_t fOuterPadWidth; //Outer pad width
109 //
c5bbaa2c 110 UInt_t fNRowLow; //number of pad rows per low sector -set
111 UInt_t fNRowUp1; //number of short pad rows per sector up -set
112 UInt_t fNRowUp2; //number of long pad rows per sector up -set
113 UInt_t fNRowUp; //number of pad rows per sector up -calculated
114 UInt_t fNtRows; //total number of rows in TPC -calculated
7a0ff78e 115 Float_t fPadRowLow[600]; //Lower sector, pad row radii -calculated
116 Float_t fPadRowUp[600]; //Upper sector, pad row radii -calculated
c5bbaa2c 117 UInt_t fNPadsLow[600]; //Lower sector, number of pads per row -calculated
118 UInt_t fNPadsUp[600]; //Upper sector, number of pads per row -calculated
7a0ff78e 119 Float_t fYInner[600]; //Inner sector, wire-length
120 Float_t fYOuter[600]; //Outer sector, wire-length
121 protected:
a411fffe 122 static AliTPCROC* fgInstance; //! Instance of this class (singleton implementation)
123 ClassDef(AliTPCROC,0) // TPC ROC class
7a0ff78e 124};
125
126#endif