]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JCORRAN/AliJTrack.h
Code clean-up in dN/deta calculation.
[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 //class AliPhJBaseTrack;
33
34 class AliJTrack : public AliPhJBaseTrack {
35
36 public:
37
38    enum AliJTrkPID {
39     kElectronAli     =  0,
40     kMuonAli         =  1,
41     kPionAli         =  2,
42     kKaonAli         =  3,
43     kProtonAli       =  4,
44     kDeuteronAli     =  5,
45     kTritonAli       =  6,
46     kHelium3Ali      =  7,
47     kAlphaAli        =  8,
48     kUnknownAli      =  9,
49     kMostProbableAli = -1
50    };
51   enum {
52     kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
53     kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
54     kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
55     kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
56     kHMPIDout=0x10000,kHMPIDpid=0x20000,
57     kEMCALmatch=0x40000,
58     kTRDbackup=0x80000,
59     kTRDStop=0x20000000,
60     kESDpid=0x40000000,
61     kTIME=0x80000000,
62     kGlobalMerge=0x08000000
63   };
64
65   AliJTrack();                   // default constructor
66   AliJTrack(const AliJTrack& a); // copy constructor
67   ~AliJTrack(){;}               //destructor
68         
69   void GetPID(Double_t *pid) const {
70     for(Int_t i=0; i<10; ++i) pid[i]=ftrkPID[i];
71   }
72     
73   void SetPID(const Double_t *pid); 
74   
75   void        ConvertAliPID();
76   Double_t    GetChi2perNDF() const {return fChi2perNDF;}
77   Double_t    GetChi2Trig()   const {return fChi2Trig;}
78
79   void     SetChi2perNDF(Double_t chi2) {fChi2perNDF = chi2;}
80   void     SetChi2Trig(Double_t chi2) {fChi2Trig = chi2;}
81   
82   //FK same as status//ULong_t  GetRecFlags() const { return fRecFlags; }
83   //FK//void     SetRecFlags(ULong_t flags) { fRecFlags = flags; }
84   
85   Double_t GetTPCdEdx() const {return fTPCdEdx;}
86   void     SetTPCdEdx(Double_t dedx) {fTPCdEdx = dedx;}
87
88   int      GetTPCnClust() const {return fTPCnClust;}
89   void     SetTPCnClust(int ival) {fTPCnClust = ival;}
90
91   Double_t GetTPCDCAXY() const {return fTPCDCAXY;}
92   void     SetTPCDCAXY(Double_t ival) {fTPCDCAXY = ival;}
93
94   Double_t GetTPCDCAZ() const {return fTPCDCAZ;}
95   void     SetTPCDCAZ(Double_t ival) {fTPCDCAZ = ival;}
96
97   Double_t GetTPCClustPerFindClust() const {return fTPCClustPerFindClust;}
98   void     SetTPCClustPerFindClust(Double_t ival) {fTPCClustPerFindClust = ival;}
99
100   Double_t GetTPCChi2PerClust() const {return fTPCChi2PerClust;}
101   void     SetTPCChi2PerClust(Double_t ival) {fTPCChi2PerClust = ival;}
102
103   Double_t GetImapactXY() const {return fImapactXY;}
104   void     SetImapactXY(Double_t ival) {fImapactXY = ival;}
105
106   Double_t GetImapactZ() const {return fImapactZ;}
107   void     SetImapactZ(Double_t ival) {fImapactZ = ival;}
108
109   Int_t GetKinkIndex() const {return fKinkIndex;}
110   void     SetKinkIndex(Int_t ival) {fKinkIndex = ival;}
111
112   ULong_t GetStatus() const {return fstatus;}
113   void     SetStatus(ULong_t ival) {fstatus = ival;}
114
115   //void GetExternalDiaCovariance(Double_t *ecov) const {
116  //   for(Int_t i=0; i<5; i++) ecov[i]=fextDiaCov[i];
117   //}
118     
119  //FK// void SetExternalDiaCovariance(const Double_t *ecov);
120
121   void SetITSLabel(Int_t label){ fITSLabel=label;}
122   void SetTPCLabel(Int_t label){ fTPCLabel=label;} 
123   Int_t GetITSLabel() const { return fITSLabel;}
124   Int_t GetTPCLabel() const { return fTPCLabel;} 
125
126   AliJTrack& operator=(const AliJTrack& trk);
127   
128 private:
129
130   Double_t   ftrkPID[10];     // [0.,1.,8] pointer to PID object
131   Double_t   fChi2perNDF;     // chi2/NDF of mometum fit !! see details 
132   Double_t   fChi2Trig;       // chi2 of trigger/track matching   !! see details 
133  
134   ULong_t    fRecFlags;       // reconstruction status flags 
135   
136   //TPC 
137   Double_t   fTPCdEdx;        // track TPC dE/dx
138   Int_t        fTPCnClust;      // track TPC nclusters 
139   Double_t   fImapactXY;     // distance of a track to the event vertex in xy plane
140   Double_t   fImapactZ;      // distance of a track to the event vertex in z direction
141   Double_t   fTPCDCAXY;      // track impact parameter in XY
142   Double_t   fTPCDCAZ;        // track impact parameter in Z
143   Double_t   fTPCClustPerFindClust; // tpc
144   Double_t   fTPCChi2PerClust;  //tpc chi2 per cluster
145   //ESD track cuts
146   Int_t fKinkIndex;  //kink index ... indication of  kink daughters
147   ULong_t fstatus;    // reconstruction flag status
148   //FK//Double_t fextDiaCov[5];//track parameters covariance matrix
149   
150   Int_t fITSLabel; // track label in ITS
151   Int_t fTPCLabel; // track label in TPC
152
153   ClassDef(AliJTrack,1)
154 };
155
156 #endif