fModel(0),
fAddToExistingPos(kFALSE),
fOnlyParticlesFromVertex(kFALSE),
+ fRandomizeTracks(kFALSE),
fVX(0.0),
fVY(0.0),
fVZ(0.0)
fModel(0),
fAddToExistingPos(kFALSE),
fOnlyParticlesFromVertex(kFALSE),
+ fRandomizeTracks(kFALSE),
fVX(0.0),
fVY(0.0),
fVZ(0.0)
fModel(0),
fAddToExistingPos(kFALSE),
fOnlyParticlesFromVertex(kFALSE),
+ fRandomizeTracks(kFALSE),
fVX(0.0),
fVY(0.0),
fVZ(0.0)
// gets from fReader and randomizes current track event
if (fReader == 0x0) return 0x0;
AliHBTEvent *e = fReader->GetTrackEvent();
- if (e->IsRandomized() == kFALSE) Randomize(e);
+ if (fRandomizeTracks) if (e->IsRandomized() == kFALSE) Randomize(e);
return e;
}
/*********************************************************************/
Int_t err = fReader->Read(particles,tracks);
if (err) return err;
Randomize(particles);
+ if (fRandomizeTracks) Randomize(tracks);
return 0;
}
/*********************************************************************/
AliHBTParticle* p = event->GetParticle(i);
Double_t x,y,z,t=0.0;
fRandomizer->Randomize(x,y,z,p);
- p->SetProductionVertex(x*kfmtocm,y*kfmtocm,z*kfmtocm,t*kfmtocm);
+
+ Double_t nx = x*kfmtocm;
+ Double_t ny = y*kfmtocm;
+ Double_t nz = z*kfmtocm;
+ Double_t nt = t*kfmtocm;
+
+ if (fAddToExistingPos)
+ {
+ nx += p->Vx();
+ ny += p->Vy();
+ nz += p->Vz();
+ nt += p->T();
+ }
+ p->SetProductionVertex(nx,ny,nz,nt);
}
event->SetRandomized();
}
void SetGaussianBall(Double_t rx, Double_t ry, Double_t rz);
void SetCyllinderSurface(Double_t r, Double_t l);
+ void AddToPosition(Bool_t flag){fAddToExistingPos = flag;}
+ void RandomizeTracks(Bool_t flag){fRandomizeTracks = flag;}
+
+
protected:
void Randomize(Double_t& x,Double_t& y,Double_t&z, AliHBTParticle*p);
Int_t ReadNext(){return (fReader)?fReader->Next():1;}
Bool_t fAddToExistingPos; //Determines if randomized position should be added to previous one, or overwrite old one
Bool_t fOnlyParticlesFromVertex; //Determines if randomization should be performed for particles from vertex
+ Bool_t fRandomizeTracks; //Determines if tracks should also be randimized
+
Double_t fVX; //vertex position
Double_t fVY; //vertex position
Double_t fVZ; //vertex position