]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JCORRAN/AliJTrack.h
update JCORRAN code, wagon macro added (Filip Krizek)
[u/mrichter/AliRoot.git] / PWG4 / JCORRAN / AliJTrack.h
1 // $Id: AliJTrack.h,v 1.3 2008/01/21 11:56:39 djkim Exp $
2
3 ////////////////////////////////////////////////////
4 /*!
5   \file AliJTrack.h
6   \brief
7   \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
8   \email: djkim@jyu.fi
9   \version $Revision: 1.1 $
10   \date $Date: 2008/05/02 11:56:39 $
11 */
12 ////////////////////////////////////////////////////
13
14 #ifndef ALIJTRACK_H
15 #define ALIJTRACK_H
16
17 #ifndef ROOT_TObject
18 #include <TObject.h>
19 #endif
20
21 #include <iostream>
22 #include <fstream>
23 #include <stdlib.h>
24 #include <stdio.h>
25 #include <math.h>
26
27
28 #include "AliPhJBaseTrack.h"
29 #include "JConst.h"
30
31 //class TObject;
32
33 class AliJTrack : public AliPhJBaseTrack {
34
35 public:
36
37    enum AliJTrkPID {
38     kElectronAli     =  0,
39     kMuonAli         =  1,
40     kPionAli         =  2,
41     kKaonAli         =  3,
42     kProtonAli       =  4,
43     kDeuteronAli     =  5,
44     kTritonAli       =  6,
45     kHelium3Ali      =  7,
46     kAlphaAli        =  8,
47     kUnknownAli      =  9,
48     kMostProbableAli = -1
49    };
50   enum {
51     kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
52     kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
53     kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
54     kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
55     kHMPIDout=0x10000,kHMPIDpid=0x20000,
56     kEMCALmatch=0x40000,
57     kTRDbackup=0x80000,
58     kTRDStop=0x20000000,
59     kESDpid=0x40000000,
60     kTIME=0x80000000,
61     kGlobalMerge=0x08000000
62   };
63
64   AliJTrack();                   // default constructor
65   AliJTrack(const AliJTrack& a); // copy constructor
66   ~AliJTrack(){;}               //destructor
67         
68   void GetPID(Double_t *pid) const {
69     for(Int_t i=0; i<10; ++i) pid[i]=ftrkPID[i];
70   }
71     
72   void SetPID(const Double_t *pid); 
73   
74   void        ConvertAliPID();
75   Double_t    GetChi2perNDF() const {return fChi2perNDF;}
76   Double_t    GetChi2Trig()   const {return fChi2Trig;}
77
78   void     SetChi2perNDF(Double_t chi2) {fChi2perNDF = chi2;}
79   void     SetChi2Trig(Double_t chi2) {fChi2Trig = chi2;}
80   
81   ULong_t  GetRecFlags() const { return fRecFlags; }
82   void     SetRecFlags(ULong_t flags) { fRecFlags = flags; }
83   
84   Double_t GetTPCdEdx() const {return fTPCdEdx;}
85   void     SetTPCdEdx(Double_t dedx) {fTPCdEdx = dedx;}
86
87   int      GetTPCnClust() const {return fTPCnClust;}
88   void     SetTPCnClust(int ival) {fTPCnClust = ival;}
89
90   Double_t GetTPCDCAXY() const {return fTPCDCAXY;}
91   void     SetTPCDCAXY(Double_t ival) {fTPCDCAXY = ival;}
92
93   Double_t GetTPCDCAZ() const {return fTPCDCAZ;}
94   void     SetTPCDCAZ(Double_t ival) {fTPCDCAZ = ival;}
95
96   Double_t GetTPCClustPerFindClust() const {return fTPCClustPerFindClust;}
97   void     SetTPCClustPerFindClust(Double_t ival) {fTPCClustPerFindClust = ival;}
98
99   Double_t GetTPCChi2PerClust() const {return fTPCChi2PerClust;}
100   void     SetTPCChi2PerClust(Double_t ival) {fTPCChi2PerClust = ival;}
101
102   Double_t GetImapactXY() const {return fImapactXY;}
103   void     SetImapactXY(Double_t ival) {fImapactXY = ival;}
104
105   Double_t GetImapactZ() const {return fImapactZ;}
106   void     SetImapactZ(Double_t ival) {fImapactZ = ival;}
107
108   Int_t GetKinkIndex() const {return fKinkIndex;}
109   void     SetKinkIndex(Int_t ival) {fKinkIndex = ival;}
110
111   UInt_t GetStatus() const {return fstatus;}
112   void     SetStatus(UInt_t ival) {fstatus = ival;}
113
114   void GetExternalDiaCovariance(Double_t *ecov) const {
115     for(Int_t i=0; i<5; i++) ecov[i]=fextDiaCov[i];
116   }
117     
118   void SetExternalDiaCovariance(const Double_t *ecov);
119
120   AliJTrack& operator=(const AliJTrack& trk);
121   
122 private:
123
124   Double_t   ftrkPID[10];     // [0.,1.,8] pointer to PID object
125   Double_t   fChi2perNDF;     // chi2/NDF of mometum fit !! see details 
126   Double_t   fChi2Trig;       // chi2 of trigger/track matching   !! see details 
127  
128   ULong_t    fRecFlags;       // reconstruction status flags 
129   
130   //TPC 
131   Double_t   fTPCdEdx;        // track TPC dE/dx
132   int        fTPCnClust;      // track TPC nclusters 
133   Double_t   fImapactXY;     // distance of a track to the event vertex in xy plane
134   Double_t   fImapactZ;      // distance of a track to the event vertex in z direction
135   Double_t   fTPCDCAXY;      // track impact parameter in XY
136   Double_t   fTPCDCAZ;        // track impact parameter in Z
137   Double_t   fTPCClustPerFindClust; // tpc
138   Double_t   fTPCChi2PerClust;  //tpc chi2 per cluster
139   //ESD track cuts
140   Int_t fKinkIndex;  //kink index ... indication of  kink daughters
141   UInt_t fstatus;    // reconstruction flag status
142   Double_t fextDiaCov[5];//track parameters covariance matrix
143   
144
145   ClassDef(AliJTrack,1)
146 };
147
148 #endif