//*-- AUTHOR : M. Sanchez (12.03.2001)
//*-- Modified : 12/03/2001 by M. Sanchez

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////
// HKickParRootFileIo
//
//  Class for KickPlane parameter input/output from/into ROOT file
//
//  It is derived from the base class HDetParRootFileIo and
//  inherits from it basic functions e.g. write(...)
//
// This class replaces the former class HMdcParFileIo.
/////////////////////////////////////////////////////////////
using namespace std;
#include "hkickparrootfileio.h"
#include "hparrootfileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hruntimedb.h"
#include "hkicktrackfpar.h"
#include "hkickplane.h"
#include "hkickplane2.h"
#include "hkickmatchpar.h"
#include "hrtmatchingpar.h"
#include "hrtfunctional.h"
#include "hmessagemgr.h"
#include <iostream> 
#include <iomanip>


 HKickParRootFileIo::HKickParRootFileIo(HParRootFile* f) : HDetParRootFileIo(f) {
  // constructor sets the name of the detector I/O "HKickParIo"
  fName="HKickParIo";
}

 HKickParRootFileIo::~HKickParRootFileIo() {
  // destructor
  if (modulesFound) {
    delete modulesFound;
    modulesFound=0;
  }
  if (initModules) {
    delete initModules;
    initModules=0;
  }
}


 Bool_t HKickParRootFileIo::init(HParSet* pPar,Int_t* set) {
  // initializes a container called by name, but only the modules
  // defined in the array 'set'
  // calls the special read function for this container
  // If it is called the first time it reads the setup found in the file
  //  if (!isActiv) readModules("Mdc");
  const Text_t* name=pPar->GetName();
  if (pFile) {
    if (strncmp(name,"KickPlaneMeta",strlen("KickPlaneMeta"))==0)
      return read((HKickPlane*)pPar);
    if (strncmp(name,"KickPlaneMDC3",strlen("KickPlaneMDC3"))==0)
      return read((HKickPlane*)pPar);
    if (strncmp(name,"KickPlane2MDC3",strlen("KickPlane2MDC3"))==0)
      return read((HKickPlane2*)pPar);
    if (strncmp(name,"KickPlane2Meta",strlen("KickPlane2Meta"))==0)
      return read((HKickPlane2*)pPar);
    if (strncmp(name,"KickTrackFPar",strlen("KickTrackFPar"))==0)
      return HDetParRootFileIo::read(pPar);
    if (strncmp(name,"RtSavGolPar",strlen("RtSavGolPar"))==0)
      return HDetParRootFileIo::read(pPar);
    if (strncmp(name,"KickMatchParMeta",strlen("KickMatchParMeta"))==0) 
      return read((HKickMatchPar *)pPar);
    if (strncmp(name,"KickMatchParMDC3",strlen("KickMatchParMDC3"))==0) 
      return read((HKickMatchPar *)pPar);
    if (strncmp(name,"RtMatchingParMDC3",strlen("RtMatchingParMDC3"))==0) 
      return read((HRtMatchingPar *)pPar);
    if (strncmp(name,"RtMatchingParMeta",strlen("RtMatchingParMeta"))==0) 
      return read((HRtMatchingPar *)pPar);
    if (strncmp(name,"RtData",strlen("RtData"))==0) 
      return read((HRtData *)pPar);
  }
  Warning("init","Initialization of %s not possible from ROOT file!n",name);
  return kFALSE;
}


 Bool_t HKickParRootFileIo::read(HKickPlane* pPar) {
  // reads and fills the container "KickPlane"

  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0)
  {
	pPar->setInputVersion(-1,inputNumber);
	return kFALSE;    // not in ROOT file
  }
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HKickPlane* r=(HKickPlane*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->readFrom(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

 Bool_t HKickParRootFileIo::read(HKickPlane2* pPar) {
  // reads and fills the container "KickPlane2"

  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0) return kFALSE;    // not in ROOT file
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HKickPlane2* r=(HKickPlane2*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->readFrom(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

 Bool_t HKickParRootFileIo::read(HKickTrackFPar* pPar) {
  // reads and fills the container "KickTrackFPar"
  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0)
  {
	pPar->setInputVersion(-1,inputNumber);
	return kFALSE;    // not in ROOT file
  }
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HKickTrackFPar* r=(HKickTrackFPar*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->readFrom(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

 Bool_t HKickParRootFileIo::read(HRtMatchingPar* pPar) {
  // reads and fills the container "KickTrackFPar"
  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0)
  {
	pPar->setInputVersion(-1,inputNumber);
	return kFALSE;    // not in ROOT file
  }
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HRtMatchingPar* r=(HRtMatchingPar*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->readFrom(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

 Bool_t HKickParRootFileIo::read(HKickMatchPar *pPar) {
  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0) return kFALSE;    // not in ROOT file
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HKickMatchPar* r=(HKickMatchPar*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->readFrom(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

 Bool_t HKickParRootFileIo::read(HRtData *pPar) {
  Text_t* name=(char*)pPar->GetName();
  Int_t version=findInputVersion(name);
  if (version<=0) return kFALSE;    // not in ROOT file
  if (pPar->getInputVersion(inputNumber)==version
        && pPar->getInputVersion(inputNumber)!=-1) return kTRUE;
  // needs reinitialization
  HRtData* r=(HRtData*)findContainer(name,version);
  Bool_t allFound=kTRUE;

  pPar->stealData(*r);

  pPar->setInputVersion(version,inputNumber);
  pPar->setChanged();
  if (allFound) gHades->getMsg()->infoB(10,HMessageMgr::DET_KICKPLANE,"HKickParRootFileIo","%s correctly initialized!",name);
  delete r;
  return allFound;
}

ClassImp(HKickParRootFileIo)













ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.