**************************************************************************/
-/*
-$Log$
-Revision 1.1 2001/11/09 09:10:46 morsch
-Realisation of AliGenReader that reads the old cwn event format.
-
-*/
+/* $Id$ */
// Read the old ALICE event format based on CW-ntuples
// http://consult.cern.ch/alice/Internal_Notes/1995/32/abstract
// Author: andreas.morsch@cern.ch
#include <TFile.h>
-#include <TTree.h>
#include <TParticle.h>
+#include <TDatabasePDG.h>
+#include <TTree.h>
+#include <TVirtualMC.h>
#include "AliGenReaderCwn.h"
-#include "AliMC.h"
-ClassImp(AliGenReaderCwn);
-
-AliGenReaderCwn::AliGenReaderCwn()
+ClassImp(AliGenReaderCwn)
+
+AliGenReaderCwn::AliGenReaderCwn():
+ fNcurrent(0),
+ fNparticle(0),
+ fNparticleMax(0),
+ fTreeNtuple(0),
+ fNihead(0),
+ fNrhead(0),
+ fIdpart(0),
+ fTheta(0.),
+ fPhi(0.),
+ fP(0.),
+ fE(0.)
{
// Default constructor
- fNcurrent = 0;
- fTreeNtuple = 0;
+ Int_t i;
+ for (i = 0; i < 6; i++) fRhead[i] = 0.;
+ for (i = 0; i < 12; i++) fIhead[i] = 0;
+}
+
+
+AliGenReaderCwn::AliGenReaderCwn(const AliGenReaderCwn &reader):
+ AliGenReader(reader),
+ fNcurrent(0),
+ fNparticle(0),
+ fNparticleMax(0),
+ fTreeNtuple(0),
+ fNihead(0),
+ fNrhead(0),
+ fIdpart(0),
+ fTheta(0.),
+ fPhi(0.),
+ fP(0.),
+ fE(0.)
+{
+ // Copy constructor
+ Int_t i;
+ for (i = 0; i < 6; i++) fRhead[i] = 0.;
+ for (i = 0; i < 12; i++) fIhead[i] = 0;
+ reader.Copy(*this);
}
+
AliGenReaderCwn::~AliGenReaderCwn()
{
delete fTreeNtuple;
Int_t nentries = (Int_t) fTreeNtuple->GetEntries();
if (fNcurrent < nentries) {
- Int_t nb = (Int_t)fTreeNtuple->GetEvent(fNcurrent);
fNcurrent++;
Int_t i5=fIhead[4];
}
fNparticleMax = nTracks;
return nTracks;
- } else {
- return 0;
}
+
return 0;
}
TParticle* AliGenReaderCwn::NextParticle()
{
-//
+// Read next particle
//
Float_t prwn;
Float_t p[4];
// Read the next particle
- if (fCode == kGEANT3) fIdpart=gMC->PDGFromId(fIdpart);
+ if (fCode == kGEANT3) fIdpart=TVirtualMC::GetMC()->PDGFromId(fIdpart);
Double_t amass = TDatabasePDG::Instance()->GetParticle(fIdpart)->Mass();
if(fE<=amass) {
Warning("Generate","Particle %d E = %f mass = %f %f %f \n",
p[1] = prwn*TMath::Sin(fTheta)*TMath::Sin(fPhi);
p[2] = prwn*TMath::Cos(fTheta);
p[3] = fE;
- TParticle* particle = new TParticle(fIdpart, 0, -1, -1, -1, -1, p[0], p[1], p[2], p[3],
- 0., 0., 0., 0.);
- Int_t nb = (Int_t)fTreeNtuple->GetEvent(fNcurrent);
+ TParticle* particle = new TParticle(fIdpart, 0, -1, -1, -1, -1, p[0], p[1], p[2], p[3], 0., 0., 0., 0.);
fNcurrent++;
fNparticle++;
return particle;
AliGenReaderCwn& AliGenReaderCwn::operator=(const AliGenReaderCwn& rhs)
{
// Assignment operator
+ rhs.Copy(*this);
return *this;
}
+void AliGenReaderCwn::Copy(TObject&) const
+{
+ //
+ // Copy
+ //
+ Fatal("Copy","Not implemented!\n");
+}
+
+