Update of tracking code (alignment/calibration awareness)
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackingSector.h
CommitLineData
eb38ed55 1#ifndef ALITRDTRACKINGSECTOR_H
2#define ALITRDTRACKINGSECTOR_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id: AliTRDtrackingSector.h 22646 2007-11-29 18:13:40Z cblume $ */
8
9////////////////////////////////////////////////////////////////////////////
10// //
11// Data container for one TRD supermodule //
12// //
13// Authors: //
14// //
15// Marian Ivanov <M.Ivanov@gsi.de> //
16// Alex Bercuci <A.Bercuci@gsi.de> //
17// //
18////////////////////////////////////////////////////////////////////////////
19
20#ifndef ROOT_Rtypes
21#include "Rtypes.h"
22#endif
23
24class AliTRDtrackingChamber;
25class AliTRDgeometry;
26
27class AliTRDtrackingSector
28{
29
30public:
31 enum{
32 kNChambersSector = 30
33 , kNplane = 6
34 , kTrackingSectors = 18
35 };
36
37 AliTRDtrackingSector();
38 AliTRDtrackingSector(AliTRDgeometry* geo, Int_t gs, Int_t tbs);
39 AliTRDtrackingSector(const AliTRDtrackingSector &/*t*/);
40 virtual ~AliTRDtrackingSector();
41
42 AliTRDtrackingSector &operator=(const AliTRDtrackingSector &/*t*/) { return *this; }
43
44 void Clear(const Option_t *opt = 0x0);
45 Int_t GetNChambers() const { return fN; }
46 Double_t GetX(Int_t pl) const { return pl >=0 && pl < kNplane ? fX0[pl] : 0.; }
47 AliTRDtrackingChamber* GetChamber(Int_t i) const { return i>=0 && i < fN ? fChamber[i] : 0x0; }
48 AliTRDtrackingChamber* GetChamber(Int_t stack, Int_t plane, Bool_t build = kFALSE);
49 AliTRDtrackingChamber** GetStack(Int_t stack);
50 Int_t GetSector() const {return fSector;}
51 void Init();
52
53 void SetGeometry(AliTRDgeometry *geo) {fGeom = geo;}
54
55 // temporary ... some of this functions are obsolete
56 void Print(Option_t *opt = 0x0);
57// void MapTimeBinLayers();
58// Int_t Find(Double_t x) const;
59// void InsertLayer(AliTRDchamberTimeBin *pl);
60// Int_t CookTimeBinIndex(Int_t plane, Int_t localTB) const;
61
62private:
63 UChar_t fTimeBinsPerPlane; // no. of time bins
64 Char_t fSector; // Sector# in AliTRDgeometry
65 UChar_t fN; // Total number of chambers allocated
66 Char_t fIndex[kNChambersSector]; // indexes of allocated chambers
67 Float_t fX0[kNplane]; // average position of pad plane for each plane
68 AliTRDgeometry *fGeom; // Geometry
69 AliTRDtrackingChamber *fChamber[kNChambersSector];// chambers
70 AliTRDtrackingChamber *fStack[kNplane]; //! temporary holding one stack
71 ClassDef(AliTRDtrackingSector, 1) // TRD tracker container for one sector
72};
73
74
75#endif // ALITRDTRACKINGSECTOR_H
76