* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-*/
-
+/* $Id$ */
+//
+// Realisation of AliGenReader to be used with AliGenExtFile
+// It reads Hijing events from a ntuple like event structure.
+// The event format is defined in Init()
+// NextEvent() is used to loop over events and NextParticle() to loop over particles.
+// Author: andreas.morsch@cern.ch
+//
#include <TFile.h>
-#include <TTree.h>
#include <TParticle.h>
+#include <TDatabasePDG.h>
+#include <TTree.h>
#include "AliGenReaderEcalHijing.h"
-#include "AliMC.h"
+
ClassImp(AliGenReaderEcalHijing)
+AliGenReaderEcalHijing::AliGenReaderEcalHijing():
+ fNcurrent(0),
+ fNparticle(0),
+ fTreeNtuple(0),
+ fNjatt(0),
+ fNahij(0),
+ fNphij(0)
+{
+ // Default constructor
+ for (Int_t i = 0; i < 10000; i++) {
+ fKhij[i] = 0.;
+ fPxhij[i] = 0.;
+ fPyhij[i] = 0.;
+ fPzhij[i] = 0.;
+ fEhij[i] = 0.;
+ }
+}
-AliGenReaderEcalHijing::AliGenReaderEcalHijing()
+AliGenReaderEcalHijing::AliGenReaderEcalHijing(const AliGenReaderEcalHijing &reader):
+ AliGenReader(reader),
+ fNcurrent(0),
+ fNparticle(0),
+ fTreeNtuple(0),
+ fNjatt(0),
+ fNahij(0),
+ fNphij(0)
{
-// Default constructor
- fNcurrent = 0;
- fTreeNtuple = 0;
+ // Copy constructor
+ for (Int_t i = 0; i < 10000; i++) {
+ fKhij[i] = 0.;
+ fPxhij[i] = 0.;
+ fPyhij[i] = 0.;
+ fPzhij[i] = 0.;
+ fEhij[i] = 0.;
+ }
+ reader.Copy(*this);
}
void AliGenReaderEcalHijing::Init()
Int_t AliGenReaderEcalHijing::NextEvent()
{
// Read the next event
- Int_t nTracks, nread;
+ Int_t nTracks=0, nread=0;
TFile* pFile = fTreeNtuple->GetCurrentFile();
pFile->cd();
TParticle* AliGenReaderEcalHijing::NextParticle()
{
- Float_t p[4];
// Read the next particle
+
+ Float_t p[4];
Int_t ipart = fKhij[fNparticle];
p[0] = fPxhij[fNparticle];
p[1] = fPyhij[fNparticle];
AliGenReaderEcalHijing& AliGenReaderEcalHijing::operator=(const AliGenReaderEcalHijing& rhs)
{
// Assignment operator
- return *this;
+ rhs.Copy(*this);
+ return (*this);
+}
+
+void AliGenReaderEcalHijing::Copy(TObject&) const
+{
+ //
+ // Copy
+ //
+ Fatal("Copy","Not implemented!\n");
}