]>
Commit | Line | Data |
---|---|---|
10757ee9 | 1 | #ifndef ALITPCCALPADREGION_H |
2 | #define ALITPCCALPADREGION_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | #include <TNamed.h> | |
8 | #include <TString.h> | |
9 | #include <TObjArray.h> | |
10 | #include <TIterator.h> | |
11 | ||
12 | class AliTPCCalPadRegion: public TNamed { | |
13 | public: | |
14 | AliTPCCalPadRegion(); | |
15 | AliTPCCalPadRegion(const AliTPCCalPadRegion& obj); | |
16 | AliTPCCalPadRegion(const char *name, const char *title); | |
17 | //AliTPCCalPadRegion(const TString &name, const TString &title) : TNamed(name, title) { } | |
18 | virtual ~AliTPCCalPadRegion() { delete fObjects; } | |
19 | AliTPCCalPadRegion& operator=(const AliTPCCalPadRegion& rhs); | |
20 | ||
5de4d13e | 21 | virtual TObject* GetObject(UInt_t segment, UInt_t padType); |
84e0a111 | 22 | virtual void SetObject(TObject* obj, UInt_t segment, UInt_t padType); |
176a07b9 | 23 | virtual void Delete(Option_t* option = "") { if (fObjects) fObjects->Delete(option); } |
10757ee9 | 24 | virtual TIterator* MakeIterator(Bool_t direction = kIterForward) const { return fObjects->MakeIterator(direction); } |
25 | static UInt_t GetNSegments() { return fgkNSegments; } | |
26 | static UInt_t GetNPadTypes() { return fgkNPadTypes; } | |
27 | static void GetPadRegionCenterLocal(UInt_t padType, Double_t* xy); | |
28 | // static UInt_t GetStartRow(UInt_t padType); | |
29 | // static UInt_t GetEndRow(UInt_t padType); | |
30 | ||
31 | protected: | |
32 | virtual Bool_t BoundsOk(const char* where, UInt_t segment, UInt_t padType) const | |
33 | { return (segment >= fgkNSegments || padType >= fgkNPadTypes) ? OutOfBoundsError(where, segment, padType) : kTRUE; } | |
34 | virtual Bool_t OutOfBoundsError(const char* where, UInt_t segment, UInt_t padType) const | |
35 | { Error(where, "Index out of bounds (trying to access segment %d, pad type %d).", segment, padType); return kFALSE; } | |
36 | ||
37 | TObjArray* fObjects; // array containing an object for each pad region | |
38 | ||
39 | static const UInt_t fgkNSegments = 36; // number of TPC sectors, 0-17: A side, 18-35: C side (IROC and OROC are treated as one sector) | |
40 | static const UInt_t fgkNPadTypes = 3; // number of pad types, 0: short pads, 1: medium pads, 2: long pads | |
41 | ||
42 | ClassDef(AliTPCCalPadRegion, 1) | |
43 | }; | |
44 | ||
45 | ||
46 | #endif |