}
}
fNParticles = 0;
+ fRandomized = kFALSE;
}
/**************************************************************************/
}
/*********************************************************************/
+AliHBTEvent* AliHBTPositionRandomizer::GetParticleEvent()
+{
+ // gets from fReader and randomizes current particle event
+ if (fReader == 0x0) return 0x0;
+ AliHBTEvent *e = fReader->GetParticleEvent();
+ if (e->IsRandomized() == kFALSE) Randomize(e);
+ return e;
+}
+/*********************************************************************/
+
+AliHBTEvent* AliHBTPositionRandomizer::GetTrackEvent()
+{
+ // gets from fReader and randomizes current track event
+ if (fReader == 0x0) return 0x0;
+ AliHBTEvent *e = fReader->GetTrackEvent();
+ if (e->IsRandomized() == kFALSE) Randomize(e);
+ return e;
+}
+/*********************************************************************/
+
Int_t AliHBTPositionRandomizer::Read(AliHBTRun* particles, AliHBTRun *tracks)
{
+ //Reads all available events and randomizes them
if (fReader == 0x0) return 1;
Info("Randomize(AliHBTRun*)","");
Int_t err = fReader->Read(particles,tracks);
AliHBTPositionRandomizer();
AliHBTPositionRandomizer(AliHBTReader* reader);
- Int_t Read(AliHBTRun* particles, AliHBTRun *tracks);
+ Int_t Next(){return (fReader)?fReader->Next():1;}
+ void Rewind(){if(fReader) fReader->Rewind();}
+
+ Bool_t ReadsTracks() const {return (fReader)?fReader->ReadsTracks():kFALSE;}
+ Bool_t ReadsParticles() const {return (fReader)?fReader->ReadsParticles():kFALSE;}
+
+ Int_t Read(AliHBTRun* particles, AliHBTRun *tracks);
+
+ AliHBTEvent* GetParticleEvent() ;
+ AliHBTEvent* GetTrackEvent() ;
AliHBTEvent* GetParticleEvent(Int_t n);
AliHBTEvent* GetTrackEvent(Int_t n){return (fReader)?fReader->GetTrackEvent(n):0x0;}
protected:
void Randomize(Double_t& x,Double_t& y,Double_t&z, AliHBTParticle*p);
+ Int_t ReadNext(){return (fReader)?fReader->Next():1;}
private:
AliHBTReader* fReader;
AliHBTRndm* fRandomizer;
virtual Int_t Read(AliHBTRun* particles, AliHBTRun *tracks);
- virtual AliHBTEvent* GetParticleEvent() const {return fParticlesEvent;}
- virtual AliHBTEvent* GetTrackEvent() const {return fTracksEvent;}
+ virtual AliHBTEvent* GetParticleEvent() {return fParticlesEvent;}//can not be const because position randomizer overloads it
+ virtual AliHBTEvent* GetTrackEvent() {return fTracksEvent;}//
virtual AliHBTEvent* GetParticleEvent(Int_t);
virtual AliHBTEvent* GetTrackEvent(Int_t);