]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDtrackingSector.h
speed up for HLT (Konstantin Markus Alex Raphaelle)
[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
b0a48c4d 24class AliTRDCalDet;
eb38ed55 25class AliTRDgeometry;
3a039a31 26class AliTRDReconstructor;
b0a48c4d 27class AliTRDtrackingChamber;
eb38ed55 28class AliTRDtrackingSector
29{
30
31public:
32 enum{
33 kNChambersSector = 30
34 , kNplane = 6
35 , kTrackingSectors = 18
36 };
37
38 AliTRDtrackingSector();
2985ffcb 39 AliTRDtrackingSector(AliTRDgeometry* geo, Int_t gs);
eb38ed55 40 AliTRDtrackingSector(const AliTRDtrackingSector &/*t*/);
41 virtual ~AliTRDtrackingSector();
42
43 AliTRDtrackingSector &operator=(const AliTRDtrackingSector &/*t*/) { return *this; }
44
45 void Clear(const Option_t *opt = 0x0);
46 Int_t GetNChambers() const { return fN; }
47 Double_t GetX(Int_t pl) const { return pl >=0 && pl < kNplane ? fX0[pl] : 0.; }
48 AliTRDtrackingChamber* GetChamber(Int_t i) const { return i>=0 && i < fN ? fChamber[i] : 0x0; }
49 AliTRDtrackingChamber* GetChamber(Int_t stack, Int_t plane, Bool_t build = kFALSE);
50 AliTRDtrackingChamber** GetStack(Int_t stack);
51 Int_t GetSector() const {return fSector;}
2985ffcb 52
b0a48c4d 53 void Init(const AliTRDReconstructor *rec, const AliTRDCalDet *cal);
2985ffcb 54 void Print(Option_t *opt = 0x0);
eb38ed55 55
56 void SetGeometry(AliTRDgeometry *geo) {fGeom = geo;}
57
eb38ed55 58private:
eb38ed55 59 Char_t fSector; // Sector# in AliTRDgeometry
60 UChar_t fN; // Total number of chambers allocated
61 Char_t fIndex[kNChambersSector]; // indexes of allocated chambers
62 Float_t fX0[kNplane]; // average position of pad plane for each plane
63 AliTRDgeometry *fGeom; // Geometry
64 AliTRDtrackingChamber *fChamber[kNChambersSector];// chambers
65 AliTRDtrackingChamber *fStack[kNplane]; //! temporary holding one stack
2985ffcb 66
eb38ed55 67 ClassDef(AliTRDtrackingSector, 1) // TRD tracker container for one sector
68};
69
70
71#endif // ALITRDTRACKINGSECTOR_H
72