]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowCommon/AliFlowTrackSimple.h
coverity fixes, coding viols(some methods, constants and emuns are renamed!), V0...
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowTrackSimple.h
CommitLineData
f1d945a1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2* See cxx source for full Copyright notice */
3/* $Id$ */
4
e1911c19 5#ifndef ALIFLOWTRACKSIMPLE_H
6#define ALIFLOWTRACKSIMPLE_H
f1d945a1 7
bc231a12 8#include "TObject.h"
f1d945a1 9#include "TBits.h"
929098e4 10class TParticle;
f1d945a1 11
12// AliFlowTrackSimple:
13// A simple track class to the the AliFlowEventSimple for flow analysis
14// author: N. van der Kolk (kolk@nikhef.nl)
929098e4 15// mods: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch)
f1d945a1 16
bc231a12 17class AliFlowTrackSimple: public TObject {
f1d945a1 18
244c607a 19public:
f1d945a1 20 AliFlowTrackSimple();
701f71c1 21 AliFlowTrackSimple(TParticle* p);
bc6b015e 22 AliFlowTrackSimple(const AliFlowTrackSimple& aTrack);
59327657 23 AliFlowTrackSimple& operator=(const AliFlowTrackSimple& aTrack);
f1d945a1 24 virtual ~AliFlowTrackSimple();
bc231a12 25 virtual AliFlowTrackSimple* Clone(const char* option="") const;
f1d945a1 26
c076fda8 27 Bool_t IsFolder() const {return kTRUE;};
28 // void Browse(TBrowser *b);
bc231a12 29 virtual void Print(Option_t* option = "") const;
c076fda8 30
f1d945a1 31 Double_t Eta() const;
32 Double_t Pt() const;
44e060e0 33 Double_t Phi() const;
34 Double_t Weight() const;
701f71c1 35 Int_t Charge() const;
b4dba88d 36 Int_t PID() const {return 0;}
701f71c1 37
34b15925 38
39 Bool_t InRPSelection() const;
40 Bool_t InPOISelection() const;
41 Bool_t InSubevent(Int_t i) const;
42 Bool_t IsDead() const {return (fFlowBits.CountBits()==0);}
b125a454 43
f1d945a1 44 void SetEta(Double_t eta);
45 void SetPt(Double_t pt);
46 void SetPhi(Double_t phi);
44e060e0 47 void SetWeight(Double_t weight);
701f71c1 48 void SetCharge(Int_t charge);
7382279b 49 void SetForRPSelection(Bool_t b=kTRUE);
50 void SetForPOISelection(Bool_t b=kTRUE);
b4dba88d 51 void TagRP(Bool_t b=kTRUE) {SetForRPSelection(b);}
52 void TagPOI(Bool_t b=kTRUE) {SetForPOISelection(b);}
b125a454 53 void SetForSubevent(Int_t i);
34b15925 54 void ResetFlowTags() {fFlowBits.ResetAllBits();}
55 void ResetSubEventTags() {fSubEventBits.ResetAllBits();}
7382279b 56
57 void ResolutionPt(Double_t resolution);
58
bc231a12 59 void AddV1( Double_t v1,
60 Double_t reactionPlaneAngle,
61 Double_t precision,
62 Int_t maxNumberOfIterations=100 );
63 void AddV2( Double_t v2,
64 Double_t reactionPlaneAngle,
65 Double_t precision,
66 Int_t maxNumberOfIterations=100 );
bff213ad 67 void AddV3( Double_t v3,
68 Double_t reactionPlaneAngle,
69 Double_t precision,
70 Int_t maxNumberOfIterations=100 );
bc231a12 71 void AddV4( Double_t v4,
72 Double_t reactionPlaneAngle,
73 Double_t precision,
74 Int_t maxNumberOfIterations=100 );
1a80f9f6 75 void AddV5( Double_t v5,
76 Double_t reactionPlaneAngle,
77 Double_t precision,
78 Int_t maxNumberOfIterations=100 );
bc231a12 79 void AddFlow( Double_t v1,
80 Double_t v2,
bff213ad 81 Double_t v3,
bc231a12 82 Double_t v4,
83 Double_t reactionPlaneAngle,
84 Double_t precision,
85 Int_t maxNumberOfIterations=100 );
1a80f9f6 86 void AddFlow( Double_t v1,
87 Double_t v2,
88 Double_t v3,
89 Double_t v4,
90 Double_t v5,
91 Double_t reactionPlaneAngle,
92 Double_t precision,
93 Int_t maxNumberOfIterations=100 );
94 void AddFlow( Double_t v1,
95 Double_t v2,
96 Double_t v3,
97 Double_t v4,
98 Double_t v5,
99 Double_t rp1,
100 Double_t rp2,
101 Double_t rp3,
102 Double_t rp4,
103 Double_t rp5,
104 Double_t precision,
105 Int_t maxNumberOfIterations=100 );
106
34b15925 107 const TBits* GetFlowBits() const {return &fFlowBits;}
44e060e0 108
41dc4195 109 void SetID(Int_t i) {fID=i;}
110 Int_t GetID() {return fID;}
6e214c87 111
f1d945a1 112 private:
701f71c1 113 AliFlowTrackSimple(Double_t phi, Double_t eta, Double_t pt, Double_t weight, Int_t charge);
44e060e0 114 Double_t fEta; // eta
115 Double_t fPt; // pt
116 Double_t fPhi; // phi
117 Double_t fTrackWeight; // weight
701f71c1 118 Int_t fCharge; //charge
44e060e0 119 TBits fFlowBits; // bits to set if track is selected
120 TBits fSubEventBits;// bits to set if track is selected for a subevent
41dc4195 121 Int_t fID; // Unique track ID, point back to the ESD track
f1d945a1 122
1c1d4332 123 ClassDef(AliFlowTrackSimple,1) // macro for rootcint
f1d945a1 124
125};
126
701f71c1 127//Getters
f1d945a1 128inline Double_t AliFlowTrackSimple::Eta() const {
88e00a8a 129 return this->fEta; }
f1d945a1 130inline Double_t AliFlowTrackSimple::Pt() const {
88e00a8a 131 return this->fPt;}
f1d945a1 132inline Double_t AliFlowTrackSimple::Phi() const {
88e00a8a 133 return this->fPhi; }
44e060e0 134inline Double_t AliFlowTrackSimple::Weight() const {
135 return this->fTrackWeight; }
701f71c1 136inline Int_t AliFlowTrackSimple::Charge() const {
137 return this->fCharge; }
b125a454 138//TBits
1918addd 139inline Bool_t AliFlowTrackSimple::InRPSelection() const {
140 return this->fFlowBits.TestBitNumber(0); }
141inline Bool_t AliFlowTrackSimple::InPOISelection() const {
142 return this->fFlowBits.TestBitNumber(1); }
b125a454 143inline Bool_t AliFlowTrackSimple::InSubevent(Int_t i) const {
144 return this->fSubEventBits.TestBitNumber(i); }
f1d945a1 145
701f71c1 146//Setters
f1d945a1 147inline void AliFlowTrackSimple::SetEta(Double_t val) {
148 fEta = val; }
149inline void AliFlowTrackSimple::SetPt(Double_t val) {
150 fPt = val; }
f1d945a1 151inline void AliFlowTrackSimple::SetPhi(Double_t val) {
152 fPhi = val; }
44e060e0 153inline void AliFlowTrackSimple::SetWeight(Double_t val) {
154 fTrackWeight = val; }
701f71c1 155inline void AliFlowTrackSimple::SetCharge(Int_t val) {
156 fCharge = val; }
b125a454 157//TBits
1918addd 158inline void AliFlowTrackSimple::SetForRPSelection(Bool_t val) {
f1d945a1 159 fFlowBits.SetBitNumber(0,val); }
1918addd 160inline void AliFlowTrackSimple::SetForPOISelection(Bool_t val) {
f1d945a1 161 fFlowBits.SetBitNumber(1,val); }
b125a454 162inline void AliFlowTrackSimple::SetForSubevent(Int_t i) {
163 fSubEventBits.SetBitNumber(i,kTRUE); }
164
f1d945a1 165#endif
166