AliRoot Core  edcc906 (edcc906)
AliTracker.h
Go to the documentation of this file.
1 #ifndef ALITRACKER_H
2 #define ALITRACKER_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 // class AliTracker
10 // that is the base for AliTPCtracker, AliITStrackerV2 and AliTRDtracker
11 // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
12 //-------------------------------------------------------------------------
13 
14 #include "AliTrackerBase.h"
15 
16 #include "AliRecoParam.h"
17 #include "AliPlaneEff.h"
18 
19 class TTree;
20 class AliCluster;
21 class AliESDEvent;
22 class AliESDtrack;
24 class AliTrackPoint;
25 class AliKalmanTrack;
26 class AliEventInfo;
27 class TObjArray;
28 
29 class AliTracker : public AliTrackerBase {
30 public:
31  AliTracker();
32  virtual ~AliTracker(){}
33 
34  virtual Int_t Clusters2Tracks(AliESDEvent *event)=0;
35  virtual Int_t Clusters2TracksHLT(AliESDEvent *event, const AliESDEvent */*hltEvent*/){
36  return Clusters2Tracks(event);
37  }
38  virtual Int_t PropagateBack(AliESDEvent *event)=0;
39  virtual Int_t RefitInward(AliESDEvent *event)=0;
40  virtual Int_t LoadClusters(TTree *)=0;
41  virtual void UnloadClusters()=0;
42  virtual AliCluster *GetCluster(Int_t index) const=0;
43 
44  virtual Int_t PostProcess(AliESDEvent */*event*/) {return 0;}
45  virtual void FillClusterArray(TObjArray* array) const;
46  virtual AliPlaneEff *GetPlaneEff() {return NULL;}
47  virtual Bool_t GetTrackPoint(Int_t /* index */ , AliTrackPoint& /* p */) const { return kFALSE;}
48  virtual Bool_t GetTrackPointTrackingError(Int_t /* index */,
49  AliTrackPoint& /* p */, const AliESDtrack* /* t */) { return kFALSE;}
50  virtual void UseClusters(const AliKalmanTrack *t, Int_t from=0) const;
51  virtual void CookLabel(AliKalmanTrack *t,Float_t wrong) const;
52 
53  static void FillResiduals(const AliExternalTrackParam *t,
54  Double_t *p, Double_t *cov,
55  UShort_t id, Bool_t updated=kTRUE);
56  static void FillResiduals(const AliExternalTrackParam *t,
57  const AliCluster *c, Bool_t updated=kTRUE);
58  static void SetFillResiduals(AliRecoParam::EventSpecie_t es, Bool_t flag=kTRUE) { fFillResiduals=flag; fEventSpecie = es ;}
59  static void SetResidualsArray(TObjArray **arr) { fResiduals=arr; }
60  static TObjArray ** GetResidualsArray() { return fResiduals; }
61 
62  void SetEventInfo(AliEventInfo *evInfo) {fEventInfo = evInfo;}
63  const AliEventInfo* GetEventInfo() const {return fEventInfo;}
64  //
65  virtual Bool_t OwnsESDObjects() const {return kFALSE;} //RS query if tracker owns some objects in the ESD/Friends
66  virtual void CleanESDFriendsObjects(AliESDEvent*) {} //RS allow to tracker to clean the objects it ows in the friends
67  virtual void CleanESDObjects(AliESDEvent*) {} //RS allow to tracker to clean the objects it ows in the ESD
68  virtual void CleanESDTracksObjects(TObjArray* trList) {} // RS removes own objects from array of tracks
69  //
70  Int_t GetNumberOfClusters() const {return fNClusters;}
71  //
72 protected:
73  AliTracker(const AliTracker &atr);
74 private:
75  AliTracker & operator=(const AliTracker & atr);
76  static Bool_t fFillResiduals; // Fill residuals flag
77  static TObjArray **fResiduals;
78 
81 
82  protected:
83  Int_t fNClusters; // number of clusters loaded
84 
85  ClassDef(AliTracker,6) //abstract tracker
86 };
87 
88 #endif
static Bool_t fFillResiduals
Definition: AliTracker.h:76
virtual Int_t LoadClusters(TTree *)=0
virtual Int_t PropagateBack(AliESDEvent *event)=0
virtual Int_t Clusters2TracksHLT(AliESDEvent *event, const AliESDEvent *)
Definition: AliTracker.h:35
virtual Bool_t OwnsESDObjects() const
Definition: AliTracker.h:65
#define TObjArray
virtual AliCluster * GetCluster(Int_t index) const =0
static TObjArray ** GetResidualsArray()
Definition: AliTracker.h:60
Float_t p[]
Definition: kNNTest.C:133
static void FillResiduals(const AliExternalTrackParam *t, Double_t *p, Double_t *cov, UShort_t id, Bool_t updated=kTRUE)
Definition: AliTracker.cxx:136
virtual Int_t RefitInward(AliESDEvent *event)=0
virtual Bool_t GetTrackPointTrackingError(Int_t, AliTrackPoint &, const AliESDtrack *)
Definition: AliTracker.h:48
Int_t fNClusters
pointer to the event info object
Definition: AliTracker.h:83
TObjArray * array
Definition: AnalyzeLaser.C:12
static AliRecoParam::EventSpecie_t fEventSpecie
Array of histograms with residuals.
Definition: AliTracker.h:79
virtual AliPlaneEff * GetPlaneEff()
Definition: AliTracker.h:46
virtual Bool_t GetTrackPoint(Int_t, AliTrackPoint &) const
Definition: AliTracker.h:47
virtual void UnloadClusters()=0
static void SetFillResiduals(AliRecoParam::EventSpecie_t es, Bool_t flag=kTRUE)
Definition: AliTracker.h:58
virtual Int_t Clusters2Tracks(AliESDEvent *event)=0
virtual void CleanESDObjects(AliESDEvent *)
Definition: AliTracker.h:67
static TObjArray ** fResiduals
Definition: AliTracker.h:77
AliEventInfo * fEventInfo
event specie, see AliRecoParam
Definition: AliTracker.h:80
virtual void CookLabel(AliKalmanTrack *t, Float_t wrong) const
Definition: AliTracker.cxx:73
virtual void CleanESDFriendsObjects(AliESDEvent *)
Definition: AliTracker.h:66
virtual void CleanESDTracksObjects(TObjArray *trList)
Definition: AliTracker.h:68
const AliEventInfo * GetEventInfo() const
Definition: AliTracker.h:63
virtual void FillClusterArray(TObjArray *array) const
Definition: AliTracker.cxx:62
Int_t GetNumberOfClusters() const
Definition: AliTracker.h:70
void SetEventInfo(AliEventInfo *evInfo)
Definition: AliTracker.h:62
virtual void UseClusters(const AliKalmanTrack *t, Int_t from=0) const
Definition: AliTracker.cxx:124
virtual Int_t PostProcess(AliESDEvent *)
Definition: AliTracker.h:44
static void SetResidualsArray(TObjArray **arr)
Definition: AliTracker.h:59
virtual ~AliTracker()
Definition: AliTracker.h:32
AliTracker & operator=(const AliTracker &atr)