]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliESDfriendTrack.h
Added protection from null pointer to Vtrack
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDfriendTrack.h
CommitLineData
1d99986f 1#ifndef ALIESDFRIENDTRACK_H
2#define ALIESDFRIENDTRACK_H
3
4//-------------------------------------------------------------------------
5// Class AliESDfriendTrack
6// This class contains ESD track additions
7// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
8//-------------------------------------------------------------------------
9
10#include <TObject.h>
5637918c 11#include <TClonesArray.h>
ded25cc6 12#include <AliExternalTrackParam.h>
1f516476 13#include "AliVfriendTrack.h"
08f45a9c 14#include "AliTrackPointArray.h"
1d99986f 15
15e85efa 16class AliKalmanTrack;
00dce61a 17class TObjArrray;
aa883ad7 18class AliTPCseed;
08f45a9c 19
4a08929f 20
1d99986f 21//_____________________________________________________________________________
1f516476 22class AliESDfriendTrack : public TObject, public AliVfriendTrack {
1d99986f 23public:
15e85efa 24 enum {
25 kMaxITScluster=12,
26 kMaxTPCcluster=160,
27 kMaxTRDcluster=180
28 };
1d99986f 29 AliESDfriendTrack();
7454372c 30 AliESDfriendTrack(const AliESDfriendTrack &t);
1d99986f 31 virtual ~AliESDfriendTrack();
32
15e85efa 33 void Set1P(Float_t p) {f1P=p;}
34 void SetTrackPointArray(AliTrackPointArray *points) {
35 fPoints=points;
36 }
37 Float_t Get1P() const {return f1P;}
38 Int_t *GetITSindices() {return fITSindex;}
39 Int_t *GetTPCindices() {return fTPCindex;}
40 Int_t *GetTRDindices() {return fTRDindex;}
1d99986f 41 const AliTrackPointArray *GetTrackPointArray() const {return fPoints;}
42
15e85efa 43 void SetITStrack(AliKalmanTrack *t) {fITStrack=t;}
44 void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;}
45 AliKalmanTrack *GetTRDtrack() {return fTRDtrack;}
46 AliKalmanTrack *GetITStrack() {return fITStrack;}
00dce61a 47 void AddCalibObject(TObject * calibObject);
a453390d 48 TObject * GetCalibObject(Int_t index) const;
6a33e0e9 49
ded25cc6 50 //
51 // parameters backup
52 void SetTPCOut(const AliExternalTrackParam &param);
53 void SetITSOut(const AliExternalTrackParam &param);
54 void SetTRDIn(const AliExternalTrackParam &param);
55 //
5637918c 56
c5060262 57 const AliExternalTrackParam * GetTPCOut() const {return fTPCOut;}
58 const AliExternalTrackParam * GetITSOut() const {return fITSOut;}
59 const AliExternalTrackParam * GetTRDIn() const {return fTRDIn;}
7454372c 60
6d3a7bbf 61 void SetITSIndices(Int_t* indices, Int_t n);
62 void SetTPCIndices(Int_t* indices, Int_t n);
63 void SetTRDIndices(Int_t* indices, Int_t n);
64
65 Int_t GetMaxITScluster() {return fnMaxITScluster;}
66 Int_t GetMaxTPCcluster() {return fnMaxTPCcluster;}
67 Int_t GetMaxTRDcluster() {return fnMaxTRDcluster;}
5637918c 68
3e341ccb 69 // bit manipulation for filtering
70 void SetSkipBit(Bool_t skip){SetBit(23,skip);}
48ec9ee6 71 Bool_t TestSkipBit() const {return TestBit(23);}
ddfbc51a 72
1f516476 73 // VfriendTrack interface
6a33e0e9 74
75 Int_t GetTPCseed( AliTPCseed &) const;
76
1d99986f 77protected:
15e85efa 78 Float_t f1P; // 1/P (1/(GeV/c))
6d3a7bbf 79 Int_t fnMaxITScluster; // Max number of ITS clusters
80 Int_t fnMaxTPCcluster; // Max number of TPC clusters
81 Int_t fnMaxTRDcluster; // Max number of TRD clusters
82 Int_t* fITSindex; //[fnMaxITScluster] indices of the ITS clusters
83 Int_t* fTPCindex; //[fnMaxTPCcluster] indices of the TPC clusters
84 Int_t* fTRDindex; //[fnMaxTRDcluster] indices of the TRD clusters
85
15e85efa 86 AliTrackPointArray *fPoints;//Array of track space points in the global frame
00dce61a 87 TObjArray *fCalibContainer; //Array of objects for calibration
15e85efa 88 AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes)
89 AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes)
ded25cc6 90 //
91 //
92 AliExternalTrackParam * fTPCOut; // tpc outer parameters
93 AliExternalTrackParam * fITSOut; // its outer parameters
94 AliExternalTrackParam * fTRDIn; // trd inner parameters
ddfbc51a 95
7454372c 96private:
42cdc768 97 AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
7454372c 98
e3d1b1e2 99 ClassDef(AliESDfriendTrack,7) //ESD friend track
1d99986f 100};
101
102#endif
103
104