#include "hpiontrackerbeampar.h" //_HADES_CLASS_DESCRIPTION ///////////////////////////////////////////////////////////// // // HPionTrackerBeamPar // // Container class for PionTracker beam parameters // ///////////////////////////////////////////////////////////// #include "hparamlist.h" #include "TObjString.h" #include "TObjArray.h" #include #include #include #include using namespace std; ClassImp (HPionTrackerBeamPar) HPionTrackerBeamPar::HPionTrackerBeamPar(const Char_t * name, const Char_t * title, const Char_t * context) : HParCond (name, title, context) { clear(); } void HPionTrackerBeamPar::clear() { // clears the container } void HPionTrackerBeamPar::putParams(HParamList * l) { // add the parameters to the list for writing if (!l) return; vector& elements = beam.getElements(); TString all_elements=""; for(UInt_t i=0;iadd ("elements", (Text_t*)all_elements.Data()); l->add ("targetElementNum", ftargetElementNum); for(UInt_t i=0;iadd (Form("%s",elements[i].fName.Data()), all); } } Bool_t HPionTrackerBeamPar::getParams(HParamList * l) { // gets the parameters from the list (read from input) if (!l) return kFALSE; Char_t line[1000]; if (!l->fill ("elements" , (Text_t*)line,1000)) return kFALSE; TString all_elements=line; if (!l->fill ("targetElementNum", &ftargetElementNum)) return kFALSE; vector& elements = beam.getElements(); elements.clear(); beam.setTargetElementOnly(ftargetElementNum); TObjArray* ar = all_elements.Tokenize(","); if(ar) { for(Int_t i=0; iGetEntries();i++){ TString name = ((TObjString*)ar->At(i))->GetString(); TArrayD all; if (!l->fill (name.Data(), &all)) return kFALSE; HBeamElement e; e.fromLinearArray(all); e.fName = name; elements.push_back(e); } } if(ar) { ar->Delete() ; delete ar; } return kTRUE; } Bool_t HPionTrackerBeamPar::initBeamLine(TString filename,Int_t targetElementNum,Bool_t debug) { ftargetElementNum = targetElementNum; return beam.initBeamLine(filename,targetElementNum,debug); } void HPionTrackerBeamPar::createAsciiFile(TString filename) { ofstream fout; fout.open(filename.Data()); fout<<"##############################################################################"<& elements = beam.getElements(); TString all_elements=""; for(UInt_t i=0;i