]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnMonitorTrack.h
Renames and new scripts
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnMonitorTrack.h
CommitLineData
6aecf4fd 1//
2// Class AliRsnMonitorTrack
3//
4// Monitor object used
5// for storing info ina TTree
6// and studying cut values and variables.
7//
8// author: A. Pulvirenti
9//
10
11#ifndef ALIRSNMONITORTRACK_H
12#define ALIRSNMONITORTRACK_H
13
14#include "AliPID.h"
15
16class AliESDtrack;
17class AliTOFT0maker;
18class AliStack;
19
20class AliRsnMonitorTrack : public TObject
21{
22 public:
23
24 AliRsnMonitorTrack();
25 AliRsnMonitorTrack(const AliRsnMonitorTrack& copy);
26 //AliRsnMonitorTrack& operator=(const AliRsnMonitorTrack& copy) {MakeCopy(copy); return (*this);}
27 virtual ~AliRsnMonitorTrack() { /*nothing*/ }
28
29 void Reset();
30 Bool_t AdoptMC(Int_t label, AliStack *stack);
e8d3678d 31
6aecf4fd 32 Bool_t& CutsPassed() {return fCutsPassed;}
33
34 Double_t& PsimX() {return fPsim[0];}
35 Double_t& PrecX() {return fPrec[0];}
36 Double_t& PtpcX() {return fPtpc[0];}
37
38 Double_t& PsimY() {return fPsim[1];}
39 Double_t& PrecY() {return fPrec[1];}
40 Double_t& PtpcY() {return fPtpc[1];}
41
42 Double_t& PsimZ() {return fPsim[2];}
43 Double_t& PrecZ() {return fPrec[2];}
44 Double_t& PtpcZ() {return fPtpc[2];}
45
46 Double_t PsimT() {return TMath::Sqrt(fPsim[0]*fPsim[0] + fPsim[1]*fPsim[1]);}
47 Double_t PrecT() {return TMath::Sqrt(fPrec[0]*fPrec[0] + fPrec[1]*fPrec[1]);}
48 Double_t PtpcT() {return TMath::Sqrt(fPtpc[0]*fPtpc[0] + fPtpc[1]*fPtpc[1]);}
49
50 Double_t Psim() {return TMath::Sqrt(PsimT()*PsimT() + fPsim[2]*fPsim[2]);}
51 Double_t Prec() {return TMath::Sqrt(PrecT()*PrecT() + fPrec[2]*fPrec[2]);}
52 Double_t Ptpc() {return TMath::Sqrt(PtpcT()*PtpcT() + fPtpc[2]*fPtpc[2]);}
53
54 Bool_t& Prim() {return fPrim;}
55 Int_t& PDG() {return fPDG;}
56 Int_t& PDGM() {return fPDGM;}
57 Int_t& Mother() {return fMother;}
58
e8d3678d 59 Bool_t OkFlag(UInt_t f) {return ((fStatus & f) != 0);}
6aecf4fd 60 UInt_t& Status() {return fStatus;}
61 Double_t& Length() {return fLength;}
62 Int_t& Charge() {return fCharge;}
6aecf4fd 63 Double_t& DCAr() {return fDCA[0];}
64 Double_t& DCAz() {return fDCA[1];}
65
e8d3678d 66 Bool_t& ITSsa() {return fITSsa;}
67 Bool_t& TOFok() {return fTOFok;}
68
69 Bool_t& ITSmap(Int_t i) {if (i>=0 && i<6) return fITSmap[i]; else return fITSmap[0];}
70 Int_t ITScount() {return (SPDcount() + SDDcount() + SSDcount());}
71 Int_t SPDcount() {Int_t count=0; if (fITSmap[0]) count++; if (fITSmap[1]) count++; return count;}
72 Int_t SDDcount() {Int_t count=0; if (fITSmap[2]) count++; if (fITSmap[3]) count++; return count;}
73 Int_t SSDcount() {Int_t count=0; if (fITSmap[4]) count++; if (fITSmap[5]) count++; return count;}
74 Double_t& ITSchi2() {return fITSchi2;}
75 Double_t& ITSsignal() {return fITSsignal;}
76 Double_t& ITSnsigma(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fITSnsigma[i]; else return fITSnsigma[0];}
77
78 Int_t& TPCcount() {return fTPCcount;}
79 Double_t& TPCchi2() {return fTPCchi2;}
80 Double_t& TPCsignal() {return fTPCsignal;}
81 Double_t& TPCnsigma(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fTPCnsigma[i]; else return fTPCnsigma[0];}
6aecf4fd 82
8d3d5c36 83 Double_t& TOFsignal() {return fTOFsignal;}
84 Double_t& TOFsigma(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fTOFsigma[i]; else return fTOFsigma[0];}
85 Double_t& TOFref(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return fTOFref[i]; else return fTOFref[0];}
86 Double_t TOFnsigma(Int_t i) {if (i>=0 && i<AliPID::kSPECIES) return ((fTOFsignal - fTOFref[i]) / fTOFsigma[i]); return 1E6;}
6aecf4fd 87
88 private:
89
e8d3678d 90 Bool_t fCutsPassed; // did it pass all defined cuts?
6aecf4fd 91
e8d3678d 92 Bool_t fPrim; // is physical primary?
93 Int_t fPDG; // true PDG code
94 Int_t fPDGM; // PDG code of mother (if any)
95 Int_t fMother; // label of mother (if any)
6aecf4fd 96
e8d3678d 97 UInt_t fStatus; // 'status' flag of track in ESD (0 = none)
98 Double_t fLength; // integrated length
99 Int_t fCharge; // track charge
100 Double_t fDCA[2]; // DCA ([0] = xy, [1] = z)
6aecf4fd 101
e8d3678d 102 Bool_t fITSsa; // to know if its is ITS standalone (otherwise it is TPC)
103 Bool_t fTOFok; // to know if track has a TOF match
104
105 Bool_t fITSmap[6]; // ITS cluster map
106 Double_t fITSchi2; // chi2 in ITS
107 Double_t fITSsignal; // ITS signal used for PID
108 Double_t fITSnsigma[AliPID::kSPECIES]; // number of sigmas ITS
109
110 Int_t fTPCcount; // # TPC clusters
111 Double_t fTPCchi2; // TPC chi 2
112 Double_t fTPCsignal; // TPC dEdx signal
113 Double_t fTPCnsigma[AliPID::kSPECIES]; // number of sigmas TPC for: e, mu, pi, K, p
114
115 Double_t fTOFsignal; // TOF signal
116 Double_t fTOFsigma[AliPID::kSPECIES]; // TOF sigma for: e, mu, pi, K, p
117 Double_t fTOFref[AliPID::kSPECIES]; // expected times for: e, mu, pi, K, p
118
119 Double_t fPsim[3]; // simulated momentum
120 Double_t fPrec[3]; // reconstructed momentum
121 Double_t fPtpc[3]; // reconstructed momentum at the TPC inner wall
6aecf4fd 122
123 ClassDef(AliRsnMonitorTrack, 1)
124};
125
126#endif