X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG2%2FFLOW%2FAliFlowCommon%2FAliFlowTrackSimple.cxx;h=0a3598f93980103b9c7d6bd8a9022dd364ad922f;hb=0c4bf6399b0a9451ff39d613dc871fd7eb3a066c;hp=528ff59814fa09b4c5fa6c8145abd94123a2246a;hpb=929098e4589a25c61c0564ede67c5cc1f8a82a27;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG2/FLOW/AliFlowCommon/AliFlowTrackSimple.cxx b/PWG2/FLOW/AliFlowCommon/AliFlowTrackSimple.cxx index 528ff59814f..0a3598f9398 100644 --- a/PWG2/FLOW/AliFlowCommon/AliFlowTrackSimple.cxx +++ b/PWG2/FLOW/AliFlowCommon/AliFlowTrackSimple.cxx @@ -22,18 +22,37 @@ // author: N. van der Kolk (kolk@nikhef.nl) // mods: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch) -#include "TNamed.h" +#include "TObject.h" #include "TParticle.h" +#include "TParticlePDG.h" #include "AliFlowTrackSimple.h" +#include "TRandom.h" +#include "TMath.h" ClassImp(AliFlowTrackSimple) //----------------------------------------------------------------------- - AliFlowTrackSimple::AliFlowTrackSimple(): + TObject(), fEta(0), fPt(0), fPhi(0), + fTrackWeight(1.), + fCharge(0), + fFlowBits(0), + fSubEventBits(0) +{ + //constructor +} + +//----------------------------------------------------------------------- +AliFlowTrackSimple::AliFlowTrackSimple(Double_t phi, Double_t eta, Double_t pt, Double_t weight, Int_t charge): + TObject(), + fEta(eta), + fPt(pt), + fPhi(phi), + fTrackWeight(weight), + fCharge(charge), fFlowBits(0), fSubEventBits(0) { @@ -41,48 +60,204 @@ AliFlowTrackSimple::AliFlowTrackSimple(): } //----------------------------------------------------------------------- -AliFlowTrackSimple::AliFlowTrackSimple(const TParticle* p): +AliFlowTrackSimple::AliFlowTrackSimple( TParticle* p ): + TObject(), fEta(p->Eta()), fPt(p->Pt()), fPhi(p->Phi()), + fTrackWeight(1.), + fCharge(0), fFlowBits(0), fSubEventBits(0) { //ctor + TParticlePDG* ppdg = p->GetPDG(); + fCharge = TMath::Nint(ppdg->Charge()/3.0); } //----------------------------------------------------------------------- - AliFlowTrackSimple::AliFlowTrackSimple(const AliFlowTrackSimple& aTrack): - TNamed(), + TObject(aTrack), fEta(aTrack.fEta), fPt(aTrack.fPt), fPhi(aTrack.fPhi), + fTrackWeight(aTrack.fTrackWeight), + fCharge(aTrack.fCharge), fFlowBits(aTrack.fFlowBits), fSubEventBits(aTrack.fSubEventBits) { //copy constructor } + //----------------------------------------------------------------------- +AliFlowTrackSimple* AliFlowTrackSimple::Clone(const char* /*option*/) const +{ + //clone "constructor" + return new AliFlowTrackSimple(*this); +} +//----------------------------------------------------------------------- AliFlowTrackSimple& AliFlowTrackSimple::operator=(const AliFlowTrackSimple& aTrack) { fEta = aTrack.fEta; fPt = aTrack.fPt; fPhi = aTrack.fPhi; + fTrackWeight = aTrack.fTrackWeight; + fCharge = aTrack.fCharge; fFlowBits = aTrack.fFlowBits; fSubEventBits = aTrack.fSubEventBits; return *this; - } - //----------------------------------------------------------------------- - AliFlowTrackSimple::~AliFlowTrackSimple() { //destructor } +//----------------------------------------------------------------------- +void AliFlowTrackSimple::ResolutionPt(Double_t res) +{ + //smear the pt by a gaussian with sigma=res + fPt += gRandom->Gaus(0.,res); +} + +//----------------------------------------------------------------------- +void AliFlowTrackSimple::AddV1( Double_t v1, + Double_t reactionPlaneAngle, + Double_t precisionPhi, + Int_t maxNumberOfIterations ) +{ + //afterburner, adds v1, uses Newton-Raphson iteration + Double_t phi0=fPhi; + Double_t f=0.; + Double_t fp=0.; + Double_t phiprev=0.; + + for (Int_t i=0; i