ROOT logo
#include "hmdcgeantreader.h"
#include "hgeantmdc.h"
#include "hgeantmaxtrk.h"
#include "hmdcdef.h"
#include "hdebug.h"
#include "hades.h"
#include "hevent.h"
#include "hcategory.h"
#include "hdatasource.h"
#include "hmessagemgr.h"
#include "TDirectory.h"

//#include <iostream>
//#include <iomanip>
using namespace std;

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

//_HADES_CLASS_DESCRIPTION 
///////////////////////////////////////////////////
//  HMdcGeantReader for HGeant Root MDC branch
//
///////////////////////////////////////////////////

ClassImp(HMdcGeantReader)

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

HMdcGeantReader::~HMdcGeantReader(void) {
}


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

     gHades->getMsg()->info(10,HMessageMgr::DET_MDC,this->GetName(),
			    "%s(%d,%d,%d,%d) matrix category created for HGeant input",
			    fGeantMdcCat->getClassName(),
			    fGeantMdcCat->getSize(0), fGeantMdcCat->getSize(1),
			    fGeantMdcCat->getSize(2), fGeantMdcCat->getSize(3));

  }
  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("HGeantMdc",&fGeantMdcCat);   // connect to MDC category
  t->SetBranchStatus("HGeantMdc",kTRUE);
  fGeantMdcCat->activateBranch(t,2);
  
  if (gHades->getOutputFile() != NULL) gHades->getOutputFile()->cd(); // !!!
  return kTRUE;
}


Bool_t HMdcGeantReader::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
}



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