ROOT logo
using namespace std;
#include "hshowergeantreader.h"
#include "hgeantshower.h"
#include "hgeantmaxtrk.h"
#include "showerdef.h"
#include "hdebug.h"
#include "hades.h"
#include "hevent.h"
#include "hcategory.h"
#include "hdatasource.h"
#include "TDirectory.h"
#include <iostream> 
#include <iomanip>

//*-- Author : R. Holzmann
//*-- Modified: 05/12/2008 by I. Koenig

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////
//  HShowerGeantReader for HGeant Root SHOWER branch
//
/////////////////////////////////////////////////////

ClassImp(HShowerGeantReader)

HShowerGeantReader::HShowerGeantReader(void) {
  fEventId = 0;
}

HShowerGeantReader::~HShowerGeantReader(void) {
}


Bool_t HShowerGeantReader::init(void) {
//  Set up categories and HGeant input tree
//  (this still needs splitlevel=2 on input file)
//
  fGeantShowCat = (HMatrixCategory*)(gHades->getCurrentEvent()
                          ->getCategory(catShowerGeantRaw));  
  if (!fGeantShowCat) {
     if (!fInputFile) {
        t = NULL;
        return kFALSE;   // no category, no input file !
     }
     if (fInputFile->cd("dirSimul")) { // change dir, read category definition
        fGeantShowCat = (HMatrixCategory*)(gDirectory->Get("HGeantShower"));
        fInputFile->cd("..");        // go back up one level
     } else {
        Int_t ini[2] = {6,MAXTRKSHOW};      // use old default definition 
        fGeantShowCat = new HMatrixCategory("HGeantShower",2,ini,1.0);
     }
     gHades->getCurrentEvent()->
               addCategory(catShowerGeantRaw,fGeantShowCat,"Simul");

     printf("\n%s(%d,%d) matrix category created for HGeant input\n",
              fGeantShowCat->getClassName(),
              fGeantShowCat->getSize(0), fGeantShowCat->getSize(1));

  }
  if (!fInputFile) {
     t = NULL;
     return kTRUE;   // category exists, but no input file (called from HGeant)
  }

  if ((t=(TTree*)fInputFile->Get("T")) == NULL) return kFALSE;

  t->SetBranchAddress("HGeantShower",&fGeantShowCat); // connect SHOWER category
  t->SetBranchStatus("HGeantShower",kTRUE);
  fGeantShowCat->activateBranch(t,2);
  
  if (gHades->getOutputFile() != NULL) gHades->getOutputFile()->cd(); // !!!
  return kTRUE;
}


Bool_t HShowerGeantReader::execute(void) {
//  Read one entry from tree 
//
  if(t) {   // input tree does exist
     if(t->GetEntry(fEventId)==0) return kFALSE;  // read 1 entry from tree
  }

  fEventId++;

  return kTRUE;  // return type is Bool_t
}



 hshowergeantreader.cc:1
 hshowergeantreader.cc:2
 hshowergeantreader.cc:3
 hshowergeantreader.cc:4
 hshowergeantreader.cc:5
 hshowergeantreader.cc:6
 hshowergeantreader.cc:7
 hshowergeantreader.cc:8
 hshowergeantreader.cc:9
 hshowergeantreader.cc:10
 hshowergeantreader.cc:11
 hshowergeantreader.cc:12
 hshowergeantreader.cc:13
 hshowergeantreader.cc:14
 hshowergeantreader.cc:15
 hshowergeantreader.cc:16
 hshowergeantreader.cc:17
 hshowergeantreader.cc:18
 hshowergeantreader.cc:19
 hshowergeantreader.cc:20
 hshowergeantreader.cc:21
 hshowergeantreader.cc:22
 hshowergeantreader.cc:23
 hshowergeantreader.cc:24
 hshowergeantreader.cc:25
 hshowergeantreader.cc:26
 hshowergeantreader.cc:27
 hshowergeantreader.cc:28
 hshowergeantreader.cc:29
 hshowergeantreader.cc:30
 hshowergeantreader.cc:31
 hshowergeantreader.cc:32
 hshowergeantreader.cc:33
 hshowergeantreader.cc:34
 hshowergeantreader.cc:35
 hshowergeantreader.cc:36
 hshowergeantreader.cc:37
 hshowergeantreader.cc:38
 hshowergeantreader.cc:39
 hshowergeantreader.cc:40
 hshowergeantreader.cc:41
 hshowergeantreader.cc:42
 hshowergeantreader.cc:43
 hshowergeantreader.cc:44
 hshowergeantreader.cc:45
 hshowergeantreader.cc:46
 hshowergeantreader.cc:47
 hshowergeantreader.cc:48
 hshowergeantreader.cc:49
 hshowergeantreader.cc:50
 hshowergeantreader.cc:51
 hshowergeantreader.cc:52
 hshowergeantreader.cc:53
 hshowergeantreader.cc:54
 hshowergeantreader.cc:55
 hshowergeantreader.cc:56
 hshowergeantreader.cc:57
 hshowergeantreader.cc:58
 hshowergeantreader.cc:59
 hshowergeantreader.cc:60
 hshowergeantreader.cc:61
 hshowergeantreader.cc:62
 hshowergeantreader.cc:63
 hshowergeantreader.cc:64
 hshowergeantreader.cc:65
 hshowergeantreader.cc:66
 hshowergeantreader.cc:67
 hshowergeantreader.cc:68
 hshowergeantreader.cc:69
 hshowergeantreader.cc:70
 hshowergeantreader.cc:71
 hshowergeantreader.cc:72
 hshowergeantreader.cc:73
 hshowergeantreader.cc:74
 hshowergeantreader.cc:75
 hshowergeantreader.cc:76
 hshowergeantreader.cc:77
 hshowergeantreader.cc:78
 hshowergeantreader.cc:79
 hshowergeantreader.cc:80
 hshowergeantreader.cc:81
 hshowergeantreader.cc:82
 hshowergeantreader.cc:83
 hshowergeantreader.cc:84
 hshowergeantreader.cc:85
 hshowergeantreader.cc:86
 hshowergeantreader.cc:87
 hshowergeantreader.cc:88
 hshowergeantreader.cc:89