Using GRP instead of local setters.
[u/mrichter/AliRoot.git] / TPC / AliTPCCalPadRegion.h
CommitLineData
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
12class AliTPCCalPadRegion: public TNamed {
13public:
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
21 virtual TObject* GetObject(UInt_t segment, UInt_t padType)
22 { return BoundsOk("GetObject", segment, padType) ? fObjects->At(segment+fgkNSegments*padType) : 0x0; }
84e0a111 23 virtual void SetObject(TObject* obj, UInt_t segment, UInt_t padType);
176a07b9 24 virtual void Delete(Option_t* option = "") { if (fObjects) fObjects->Delete(option); }
10757ee9 25 virtual TIterator* MakeIterator(Bool_t direction = kIterForward) const { return fObjects->MakeIterator(direction); }
26 static UInt_t GetNSegments() { return fgkNSegments; }
27 static UInt_t GetNPadTypes() { return fgkNPadTypes; }
28 static void GetPadRegionCenterLocal(UInt_t padType, Double_t* xy);
29// static UInt_t GetStartRow(UInt_t padType);
30// static UInt_t GetEndRow(UInt_t padType);
31
32protected:
33 virtual Bool_t BoundsOk(const char* where, UInt_t segment, UInt_t padType) const
34 { return (segment >= fgkNSegments || padType >= fgkNPadTypes) ? OutOfBoundsError(where, segment, padType) : kTRUE; }
35 virtual Bool_t OutOfBoundsError(const char* where, UInt_t segment, UInt_t padType) const
36 { Error(where, "Index out of bounds (trying to access segment %d, pad type %d).", segment, padType); return kFALSE; }
37
38 TObjArray* fObjects; // array containing an object for each pad region
39
40 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)
41 static const UInt_t fgkNPadTypes = 3; // number of pad types, 0: short pads, 1: medium pads, 2: long pads
42
43 ClassDef(AliTPCCalPadRegion, 1)
44};
45
46
47#endif