]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtrackingSector.h
speed up for HLT (Konstantin Markus Alex Raphaelle)
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackingSector.h
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
24 class AliTRDCalDet;
25 class AliTRDgeometry;
26 class AliTRDReconstructor;
27 class AliTRDtrackingChamber;
28 class AliTRDtrackingSector 
29 {
30
31 public:
32         enum{
33                 kNChambersSector   = 30
34                 , kNplane          = 6
35                 , kTrackingSectors = 18
36         };
37         
38         AliTRDtrackingSector();
39         AliTRDtrackingSector(AliTRDgeometry* geo, Int_t gs);
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;}    
52
53         void     Init(const AliTRDReconstructor *rec, const AliTRDCalDet *cal);
54         void     Print(Option_t *opt = 0x0);
55         
56         void     SetGeometry(AliTRDgeometry *geo) {fGeom = geo;}
57          
58 private:
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
66
67         ClassDef(AliTRDtrackingSector, 1) // TRD tracker container for one sector
68 };
69
70
71 #endif // ALITRDTRACKINGSECTOR_H
72