]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtrackingChamber.h
speed up with binary search
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackingChamber.h
1 #ifndef ALITRDTRACKINGCHAMBER_H
2 #define ALITRDTRACKINGCHAMBER_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: AliTRDtrackingChamber.h 22646 2007-11-29 18:13:40Z cblume $ */
8
9 ////////////////////////////////////////////////////////////////////////////
10 //                                                                        //
11 // Data container for one TRD chamber                                     // 
12 //                                                                        // 
13 // Authors:                                                               //
14 //                                                                        //
15 //    Alex Bercuci <A.Bercuci@gsi.de>                                     //
16 //                                                                        // 
17 ////////////////////////////////////////////////////////////////////////////
18
19 #ifndef ALITRDCHAMBERTIMEBIN_H
20 #include "AliTRDchamberTimeBin.h"
21 #endif
22
23
24 #ifndef ALITRDSEEDV1_H
25 #include "AliTRDseedV1.h"
26 #endif
27
28 class AliTRDgeometry;
29 class AliTRDReconstructor;
30 class AliTRDtrackingChamber : public TObject
31 {
32
33 public:
34   AliTRDtrackingChamber();
35   virtual ~AliTRDtrackingChamber(){}
36   
37   void     Bootstrap(const AliTRDReconstructor *rec);
38   Bool_t   Build(AliTRDgeometry *const geo, Bool_t hlt = kFALSE);
39   void     Clear(const Option_t *opt = NULL);
40   Int_t    GetDetector() const { return fDetector;}
41   Int_t    GetNClusters() const;
42   Double_t GetQuality();
43   Bool_t   GetSeedingLayer(AliTRDchamberTimeBin *&layer, AliTRDgeometry * const geo, const AliTRDReconstructor *rec);
44   Float_t  GetX()        const {return fX0;}
45   AliTRDchamberTimeBin* GetTB(int tb) {return tb >= 0 && tb < AliTRDseedV1::kNtb ? &fTB[tb] : NULL;}
46   // Float_t  GetExB() const      { return fExB;}
47   // Float_t  GetVD() const       { return fVD;}
48   // Float_t  GetT0() const       { return fT0;}
49   // Float_t  GetS2PRF() const    { return  fS2PRF;}
50   // Float_t  GetDiffL() const    { return  fDiffL;}
51   // Float_t  GetDiffT() const    { return  fDiffT;}
52
53   void     SetDetector(Int_t det) { fDetector = det; }
54   void     InsertCluster(AliTRDcluster *c, Int_t index) { fTB[c->GetPadTime()].InsertCluster(c, index); }
55   
56   void     Print(Option_t *opt = NULL) const;
57
58   void     SetOwner();
59   void     Update();
60
61 private:
62   Int_t         fDetector;  // detector number
63   Float_t       fX0;        // radial position of the pad plane
64   // Float_t       fExB;       // tg(a_L) for chamber
65   // Float_t       fVD;        // drift velocity for chamber
66   // Float_t       fT0;        // time 0 for chamber
67   // Float_t       fS2PRF;     // sigma^2 PRF for xd->0 and phi=a_L 
68   // Float_t       fDiffL;     // longitudinal diffusion coefficient
69   // Float_t       fDiffT;     // transversal diffusion coefficient
70   
71   AliTRDchamberTimeBin fTB[AliTRDseedV1::kNtb];    // time bins 
72   
73   
74   ClassDef(AliTRDtrackingChamber, 2)  // TRD tracker container for one chamber
75 };
76
77 #endif  // ALITRDTRACKINGCHAMBER_H