using namespace std;
#include "hpiontrackerparrootfileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hpiontrackerdetector.h"
#include "hparset.h"
#include "hpiontrackertrb3lookup.h"
#include "hpiontrackercalpar.h"
#include <iostream>
#include <iomanip>
ClassImp(HPionTrackerParRootFileIo)
HPionTrackerParRootFileIo::HPionTrackerParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f) {
  
  fName = "HPionTrackerParIo";
  Int_t n = gHades->getSetup()->getDetector("PionTracker")->getMaxModules();
  initModules = new TArrayI(n);
}
HPionTrackerParRootFileIo::~HPionTrackerParRootFileIo() {
  
  if (modulesFound) {
    delete modulesFound;
    modulesFound = 0;
  }
}
Bool_t HPionTrackerParRootFileIo::init(HParSet* pPar, Int_t* set) {
  
  
  
  
  if (!isActiv) readModules("PionTracker");
  const Text_t* name = pPar->GetName();
  if (NULL != pFile) {
    if (0 == strncmp(name, "PionTrackerTrb3Lookup", strlen("PionTrackerTrb3Lookup"))) {
      return HDetParRootFileIo::read(pPar);
    }
    if (0 == strncmp(name, "PionTrackerCalPar", strlen("PionTrackerCalPar"))) {
      return read((HPionTrackerCalPar*)pPar, set);
    }
  }
  Error("init(HParSet*,Int_t*)","Initialization of %s not possible from ROOT file",name);
  return kFALSE;
}
Bool_t HPionTrackerParRootFileIo::read(HPionTrackerCalPar* pPar, Int_t* set) {
  
  Text_t* name = (Char_t*)pPar->GetName();
  Int_t version = findInputVersion(name);
  if (version <= 0) {
    pPar->setInputVersion(-1, inputNumber);
    return kFALSE;    
  }
  if (pPar->getInputVersion(inputNumber) == version
      && pPar->getInputVersion(inputNumber) != -1) return kTRUE;
  
  pPar->clear();
  HPionTrackerCalPar* rPar = (HPionTrackerCalPar*)findContainer(name, version);
  Bool_t allFound = kTRUE;
  initModules->Reset();
  for (Int_t m = 0; m < pPar->getSize(); m++) {
    if (set[m]) {
      HPionTrackerCalParMod& r = (*rPar)[m];
      HPionTrackerCalParMod& p = (*pPar)[m];
      Int_t pModSize = p.getSize();
      if (pModSize && r.getSize() == pModSize) {
        for (Int_t c = 0; c < pModSize; c++) p[c].fill(r[c]);
        initModules->AddAt(m + 1, m);
      } else allFound = kFALSE;
    }
  }
  if (allFound) {
    pPar->setInputVersion(version, inputNumber);
    pPar->setChanged();
    cout << name << " initialized from ROOT file" << endl;
  }
  delete rPar;
  return allFound;
}
 hpiontrackerparrootfileio.cc:1  hpiontrackerparrootfileio.cc:2  hpiontrackerparrootfileio.cc:3  hpiontrackerparrootfileio.cc:4  hpiontrackerparrootfileio.cc:5  hpiontrackerparrootfileio.cc:6  hpiontrackerparrootfileio.cc:7  hpiontrackerparrootfileio.cc:8  hpiontrackerparrootfileio.cc:9  hpiontrackerparrootfileio.cc:10  hpiontrackerparrootfileio.cc:11  hpiontrackerparrootfileio.cc:12  hpiontrackerparrootfileio.cc:13  hpiontrackerparrootfileio.cc:14  hpiontrackerparrootfileio.cc:15  hpiontrackerparrootfileio.cc:16  hpiontrackerparrootfileio.cc:17  hpiontrackerparrootfileio.cc:18  hpiontrackerparrootfileio.cc:19  hpiontrackerparrootfileio.cc:20  hpiontrackerparrootfileio.cc:21  hpiontrackerparrootfileio.cc:22  hpiontrackerparrootfileio.cc:23  hpiontrackerparrootfileio.cc:24  hpiontrackerparrootfileio.cc:25  hpiontrackerparrootfileio.cc:26  hpiontrackerparrootfileio.cc:27  hpiontrackerparrootfileio.cc:28  hpiontrackerparrootfileio.cc:29  hpiontrackerparrootfileio.cc:30  hpiontrackerparrootfileio.cc:31  hpiontrackerparrootfileio.cc:32  hpiontrackerparrootfileio.cc:33  hpiontrackerparrootfileio.cc:34  hpiontrackerparrootfileio.cc:35  hpiontrackerparrootfileio.cc:36  hpiontrackerparrootfileio.cc:37  hpiontrackerparrootfileio.cc:38  hpiontrackerparrootfileio.cc:39  hpiontrackerparrootfileio.cc:40  hpiontrackerparrootfileio.cc:41  hpiontrackerparrootfileio.cc:42  hpiontrackerparrootfileio.cc:43  hpiontrackerparrootfileio.cc:44  hpiontrackerparrootfileio.cc:45  hpiontrackerparrootfileio.cc:46  hpiontrackerparrootfileio.cc:47  hpiontrackerparrootfileio.cc:48  hpiontrackerparrootfileio.cc:49  hpiontrackerparrootfileio.cc:50  hpiontrackerparrootfileio.cc:51  hpiontrackerparrootfileio.cc:52  hpiontrackerparrootfileio.cc:53  hpiontrackerparrootfileio.cc:54  hpiontrackerparrootfileio.cc:55  hpiontrackerparrootfileio.cc:56  hpiontrackerparrootfileio.cc:57  hpiontrackerparrootfileio.cc:58  hpiontrackerparrootfileio.cc:59  hpiontrackerparrootfileio.cc:60  hpiontrackerparrootfileio.cc:61  hpiontrackerparrootfileio.cc:62  hpiontrackerparrootfileio.cc:63  hpiontrackerparrootfileio.cc:64  hpiontrackerparrootfileio.cc:65  hpiontrackerparrootfileio.cc:66  hpiontrackerparrootfileio.cc:67  hpiontrackerparrootfileio.cc:68  hpiontrackerparrootfileio.cc:69  hpiontrackerparrootfileio.cc:70  hpiontrackerparrootfileio.cc:71  hpiontrackerparrootfileio.cc:72  hpiontrackerparrootfileio.cc:73  hpiontrackerparrootfileio.cc:74  hpiontrackerparrootfileio.cc:75  hpiontrackerparrootfileio.cc:76  hpiontrackerparrootfileio.cc:77  hpiontrackerparrootfileio.cc:78  hpiontrackerparrootfileio.cc:79  hpiontrackerparrootfileio.cc:80  hpiontrackerparrootfileio.cc:81  hpiontrackerparrootfileio.cc:82  hpiontrackerparrootfileio.cc:83  hpiontrackerparrootfileio.cc:84  hpiontrackerparrootfileio.cc:85  hpiontrackerparrootfileio.cc:86  hpiontrackerparrootfileio.cc:87  hpiontrackerparrootfileio.cc:88  hpiontrackerparrootfileio.cc:89  hpiontrackerparrootfileio.cc:90  hpiontrackerparrootfileio.cc:91  hpiontrackerparrootfileio.cc:92