]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenReaderTreeK.cxx
Several updates (F. Colamaria)
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderTreeK.cxx
index 461c156a25ea78a29202ff584e557939494e79ee..62614be4b2f845d85cef2d29c906e060fbef4c0e 100644 (file)
  **************************************************************************/
 
 /* $Id$ */
-
+//
+// Realisation of AliGenReader to be used with AliGenExtFile
+// It reads events from a kinematics TreeK.
+// 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 "AliGenReaderTreeK.h"
 #include "AliHeader.h"
 #include "AliRun.h"
+#include "AliStack.h"
 #include "AliRunLoader.h"
 
-ClassImp(AliGenReaderTreeK);
+ClassImp(AliGenReaderTreeK)
 
 const TString AliGenReaderTreeK::fgkEventFolderName("GenReaderTreeK");
 
 AliGenReaderTreeK::AliGenReaderTreeK():
- AliGenReader(),
- fNcurrent(0),
- fNparticle(0),
- fNp(0),
- fInRunLoader(0),
- fBaseFile(0),
- fStack(0),
- fOnlyPrimaries(kFALSE),
- fDirs(0x0),
- fCurrentDir(0)
   AliGenReader(),
   fNcurrent(0),
   fNparticle(0),
   fNp(0),
   fInRunLoader(0),
   fBaseFile(0),
   fStack(0),
   fOnlyPrimaries(kFALSE),
   fDirs(0x0),
   fCurrentDir(0)
 {
 //  Default constructor
 }
 
 AliGenReaderTreeK::AliGenReaderTreeK(const AliGenReaderTreeK &reader):
- fNcurrent(0),
- fNparticle(0),
- fNp(0),
- fInRunLoader(0),
- fBaseFile(0),
- fStack(0),
- fOnlyPrimaries(kFALSE),
- fDirs(0x0),
- fCurrentDir(0)
+    AliGenReader(reader),
+    fNcurrent(0),
+    fNparticle(0),
+    fNp(0),
+    fInRunLoader(0),
+    fBaseFile(0),
+    fStack(0),
+    fOnlyPrimaries(kFALSE),
+    fDirs(0x0),
+    fCurrentDir(0)
 {
-    ;
+    reader.Copy(*this);
 }
 
 
@@ -72,7 +80,7 @@ void AliGenReaderTreeK::Init()
 // Initialization
 // Connect base file and file to read from
 
-    TTree *ali = gAlice->TreeE();
+    TTree *ali = AliRunLoader::Instance()->TreeE();
     if (ali) {
       fBaseFile = ali->GetCurrentFile();
     } else {
@@ -148,13 +156,24 @@ void AliGenReaderTreeK::RewindEvent()
 AliGenReaderTreeK& AliGenReaderTreeK::operator=(const  AliGenReaderTreeK& rhs)
 {
 // Assignment operator
+    rhs.Copy(*this);
     return *this;
 }
 
+void AliGenReaderTreeK::Copy(TObject&) const
+{
+    //
+    // Copy 
+    //
+    Fatal("Copy","Not implemented!\n");
+}
+
 
 
 TString& AliGenReaderTreeK::GetDirName(Int_t entry)
  {
+// Get the current directory name
+
    TString* retval;//return value
    if (fDirs ==  0x0)
     {
@@ -197,3 +216,9 @@ void AliGenReaderTreeK::AddDir(const char* dirname)
   TObjString *odir= new TObjString(dirname);
   fDirs->Add(odir);
 }
+
+TParticle* AliGenReaderTreeK::GetParticle(Int_t i)
+ {
+  if (fStack && i<fNp) return fStack->Particle(i);
+  return 0x0;
+ }