coding violations
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackerV1.h
1 #ifndef ALITRDTRACKERV1_H
2 #define ALITRDTRACKERV1_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */ 
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  The TRD tracker                                                       //
11 //                                                                        //
12 //  Authors:                                                              //
13 //    Alex Bercuci <A.Bercuci@gsi.de>                                     //
14 //    Markus Fasel <M.Fasel@gsi.de>                                       //
15 //                                                                        //
16 /////////////////////////////////////////////////////////////////////////////
17
18 #ifndef ALITRDTRACKER_H
19 #include "AliTRDtracker.h"
20 #endif
21
22 #define DEBUG
23
24 /**************************************************************************
25  * Class Status see source file                                           *
26  **************************************************************************/
27  
28 class TFile;
29 class TTreeSRedirector;
30 class TClonesArray;
31
32 class AliRieman;
33 class AliESDEvent;
34
35 class AliTRDseedV1;
36 class AliTRDstackLayer;
37 class AliTRDtrackerFitter;
38 class AliTRDrecoParam;
39
40 class AliTRDtrackerV1 : public AliTRDtracker
41 {
42
43  public:
44         enum{
45                 kNTimeBins = 35,
46                 kNPlanes = 6,
47                 kNSeedPlanes = 4,
48                 kMaxTracksStack = 100,
49                 kNConfigs = 15
50         };
51         AliTRDtrackerV1(AliTRDrecoParam *p = 0x0);
52         AliTRDtrackerV1(const TFile *in, AliTRDrecoParam *p);
53         ~AliTRDtrackerV1();
54   
55         Int_t          Clusters2Tracks(AliESDEvent *esd);
56         void           GetSeedingConfig(Int_t iconfig, Int_t planes[4]) const;
57         void           GetExtrapolationConfig(Int_t iconfig, Int_t planes[2]) const;
58         void           SetRecoParam(AliTRDrecoParam *p){fRecoParam = p;}
59         
60  protected:
61
62         Double_t       BuildSeedingConfigs(AliTRDstackLayer *layer, Int_t *configs);
63         Int_t          Clusters2TracksSM(AliTRDtracker::AliTRDtrackingSector *sector, AliESDEvent *esd);
64         Int_t          Clusters2TracksStack(AliTRDstackLayer *layer, TClonesArray *esdTrackList);
65         Double_t       CookPlaneQA(AliTRDstackLayer *layer);
66         Double_t       CookLikelihood(AliTRDseedV1 *cseed, Int_t planes[4], Double_t *chi2);
67         Int_t          GetSeedingLayers(AliTRDstackLayer *layers, Double_t *params);
68         void           GetMeanCLStack(AliTRDstackLayer *layers, Int_t *planes, Double_t *params);
69         AliTRDcluster *FindSeedingCluster(AliTRDstackLayer *layers, AliTRDseedV1/*AliRieman*/ *sfit);
70         void           ImproveSeedQuality(AliTRDstackLayer *layer, AliTRDseedV1 *cseed);
71         Int_t          MakeSeeds(AliTRDstackLayer *layers, AliTRDseedV1 *sseed, Int_t *ipar);
72         AliTRDstackLayer *MakeSeedingLayer(AliTRDstackLayer *layers, Int_t Plane);
73         AliTRDtrack*   RegisterSeed(AliTRDseedV1 *seeds, Double_t *params);
74
75  private:
76
77         AliTRDtrackerV1(const AliTRDtrackerV1 &tracker);
78         AliTRDtrackerV1 &operator=(const AliTRDtrackerV1 &tracker);
79
80  private:
81
82         static Double_t      fgTopologicQA[kNConfigs];        //  Topologic quality
83         Double_t             fTrackQuality[kMaxTracksStack];  //  Track quality 
84         Int_t                fSeedLayer[kMaxTracksStack];     //  Seed layer
85         Int_t                fSieveSeeding;                   //! Seeding iterator
86         AliTRDrecoParam     *fRecoParam;                      //  Reconstruction parameters
87         AliTRDtrackerFitter *fFitter;                         //! Fitter class of the tracker
88         TTreeSRedirector    *fDebugStreamerV1;                //! Debug stream of the tracker
89
90         ClassDef(AliTRDtrackerV1, 1)                          //  Stand alone tracker development class
91
92 };
93 #endif