#include "hpiontrackerparasciifileio.h"
#include "hades.h"
#include "hspectrometer.h"
#include "hdetector.h"
#include "hpiontrackerdetector.h"
#include "hparset.h"
#include "hpiontrackertrb3lookup.h"
#include "hpiontrackercalpar.h"
#include "hpiontrackercalrunpar.h"
ClassImp (HPionTrackerParAsciiFileIo)
HPionTrackerParAsciiFileIo::HPionTrackerParAsciiFileIo (fstream * f) : HDetParAsciiFileIo (f)
{
fName = "HPionTrackerParIo";
}
Bool_t HPionTrackerParAsciiFileIo::init (HParSet * pPar, Int_t * set)
{
const Text_t * name = pPar->GetName();
if (NULL != pFile)
{
if (0 == strncmp (name, "PionTrackerTrb3Lookup", strlen ("PionTrackerTrb3Lookup")))
{
return readFile<HPionTrackerTrb3Lookup> ( (HPionTrackerTrb3Lookup *) pPar);
}
if (0 == strncmp (name, "PionTrackerCalPar", strlen ("PionTrackerCalPar")))
{
return read ( (HPionTrackerCalPar *) pPar, set);
}
Error ("init(HParSet*,Int_t*)",
"initialization of %s not possible from ASCII file!", name);
return kFALSE;
}
Error ("init(HParSet*,Int_t*)", "No input file open");
return kFALSE;
}
Int_t HPionTrackerParAsciiFileIo::write (HParSet * pPar)
{
if (NULL != pFile)
{
const Text_t * name = pPar->GetName();
if (0 == strncmp (name, "PionTrackerTrb3Lookup", strlen ("PionTrackerTrb3Lookup")))
{
return writeFile<HPionTrackerTrb3Lookup> ( (HPionTrackerTrb3Lookup *) pPar);
}
if (0 == strncmp (name, "PionTrackerCalPar", strlen ("PionTrackerCalPar")))
{
return writeFile<HPionTrackerCalPar> ( (HPionTrackerCalPar *) pPar);
}
if (0 == strncmp(name, "PionTrackerCalRunPar", strlen ("PionTrackerCalRunPar")))
{
return write((HPionTrackerCalRunPar*)pPar);
}
Error ("write(HParSet*)", "%s could not be written to ASCII file", name);
return -1;
}
Error ("write(HParSet*)", "No output file open");
return -1;
}
template<class T> Int_t HPionTrackerParAsciiFileIo::write(T* pPar)
{
pPar->putAsciiHeader(fHeader);
writeHeader(pPar->GetName(), pPar->getParamContext());
pPar->write(*pFile);
pFile->write(sepLine, strlen(sepLine));
pPar->setChanged(kFALSE);
return 1;
}
template<class T> Bool_t HPionTrackerParAsciiFileIo::read (T * pPar, Int_t * set)
{
const Text_t * name = pPar->GetName();
HDetector * det = gHades->getSetup()->getDetector ("PionTracker");
Int_t nSize = det->getMaxModules();
if (!findContainer (name)) return kFALSE;
pPar->clear();
const Int_t maxbuf = 155;
Text_t buf[maxbuf];
while (!pFile->eof())
{
pFile->getline (buf, maxbuf);
if (buf[0] == '#') break;
if (buf[0] != '/' && buf[0] != '\0') pPar->readline (buf, set);
}
Bool_t allFound = kTRUE;
for (Int_t i = 0; i < nSize; i++)
{
if (set[i])
{
if (set[i] == 999) set[i] = 1;
else allFound = kFALSE;
}
}
if (allFound)
{
pPar->setInputVersion (1, inputNumber);
pPar->setChanged();
Info ("readFile", "%s initialized from Ascii file", pPar->GetName());
}
return allFound;
}
hpiontrackerparasciifileio.cc:1 hpiontrackerparasciifileio.cc:2 hpiontrackerparasciifileio.cc:3 hpiontrackerparasciifileio.cc:4 hpiontrackerparasciifileio.cc:5 hpiontrackerparasciifileio.cc:6 hpiontrackerparasciifileio.cc:7 hpiontrackerparasciifileio.cc:8 hpiontrackerparasciifileio.cc:9 hpiontrackerparasciifileio.cc:10 hpiontrackerparasciifileio.cc:11 hpiontrackerparasciifileio.cc:12 hpiontrackerparasciifileio.cc:13 hpiontrackerparasciifileio.cc:14 hpiontrackerparasciifileio.cc:15 hpiontrackerparasciifileio.cc:16 hpiontrackerparasciifileio.cc:17 hpiontrackerparasciifileio.cc:18 hpiontrackerparasciifileio.cc:19 hpiontrackerparasciifileio.cc:20 hpiontrackerparasciifileio.cc:21 hpiontrackerparasciifileio.cc:22 hpiontrackerparasciifileio.cc:23 hpiontrackerparasciifileio.cc:24 hpiontrackerparasciifileio.cc:25 hpiontrackerparasciifileio.cc:26 hpiontrackerparasciifileio.cc:27 hpiontrackerparasciifileio.cc:28 hpiontrackerparasciifileio.cc:29 hpiontrackerparasciifileio.cc:30 hpiontrackerparasciifileio.cc:31 hpiontrackerparasciifileio.cc:32 hpiontrackerparasciifileio.cc:33 hpiontrackerparasciifileio.cc:34 hpiontrackerparasciifileio.cc:35 hpiontrackerparasciifileio.cc:36 hpiontrackerparasciifileio.cc:37 hpiontrackerparasciifileio.cc:38 hpiontrackerparasciifileio.cc:39 hpiontrackerparasciifileio.cc:40 hpiontrackerparasciifileio.cc:41 hpiontrackerparasciifileio.cc:42 hpiontrackerparasciifileio.cc:43 hpiontrackerparasciifileio.cc:44 hpiontrackerparasciifileio.cc:45 hpiontrackerparasciifileio.cc:46 hpiontrackerparasciifileio.cc:47 hpiontrackerparasciifileio.cc:48 hpiontrackerparasciifileio.cc:49 hpiontrackerparasciifileio.cc:50 hpiontrackerparasciifileio.cc:51 hpiontrackerparasciifileio.cc:52 hpiontrackerparasciifileio.cc:53 hpiontrackerparasciifileio.cc:54 hpiontrackerparasciifileio.cc:55 hpiontrackerparasciifileio.cc:56 hpiontrackerparasciifileio.cc:57 hpiontrackerparasciifileio.cc:58 hpiontrackerparasciifileio.cc:59 hpiontrackerparasciifileio.cc:60 hpiontrackerparasciifileio.cc:61 hpiontrackerparasciifileio.cc:62 hpiontrackerparasciifileio.cc:63 hpiontrackerparasciifileio.cc:64 hpiontrackerparasciifileio.cc:65 hpiontrackerparasciifileio.cc:66 hpiontrackerparasciifileio.cc:67 hpiontrackerparasciifileio.cc:68 hpiontrackerparasciifileio.cc:69 hpiontrackerparasciifileio.cc:70 hpiontrackerparasciifileio.cc:71 hpiontrackerparasciifileio.cc:72 hpiontrackerparasciifileio.cc:73 hpiontrackerparasciifileio.cc:74 hpiontrackerparasciifileio.cc:75 hpiontrackerparasciifileio.cc:76 hpiontrackerparasciifileio.cc:77 hpiontrackerparasciifileio.cc:78 hpiontrackerparasciifileio.cc:79 hpiontrackerparasciifileio.cc:80 hpiontrackerparasciifileio.cc:81 hpiontrackerparasciifileio.cc:82 hpiontrackerparasciifileio.cc:83 hpiontrackerparasciifileio.cc:84 hpiontrackerparasciifileio.cc:85 hpiontrackerparasciifileio.cc:86 hpiontrackerparasciifileio.cc:87 hpiontrackerparasciifileio.cc:88 hpiontrackerparasciifileio.cc:89 hpiontrackerparasciifileio.cc:90 hpiontrackerparasciifileio.cc:91 hpiontrackerparasciifileio.cc:92 hpiontrackerparasciifileio.cc:93 hpiontrackerparasciifileio.cc:94 hpiontrackerparasciifileio.cc:95 hpiontrackerparasciifileio.cc:96 hpiontrackerparasciifileio.cc:97 hpiontrackerparasciifileio.cc:98 hpiontrackerparasciifileio.cc:99 hpiontrackerparasciifileio.cc:100 hpiontrackerparasciifileio.cc:101 hpiontrackerparasciifileio.cc:102 hpiontrackerparasciifileio.cc:103 hpiontrackerparasciifileio.cc:104 hpiontrackerparasciifileio.cc:105 hpiontrackerparasciifileio.cc:106 hpiontrackerparasciifileio.cc:107 hpiontrackerparasciifileio.cc:108 hpiontrackerparasciifileio.cc:109 hpiontrackerparasciifileio.cc:110 hpiontrackerparasciifileio.cc:111 hpiontrackerparasciifileio.cc:112 hpiontrackerparasciifileio.cc:113 hpiontrackerparasciifileio.cc:114 hpiontrackerparasciifileio.cc:115 hpiontrackerparasciifileio.cc:116 hpiontrackerparasciifileio.cc:117 hpiontrackerparasciifileio.cc:118 hpiontrackerparasciifileio.cc:119 hpiontrackerparasciifileio.cc:120 hpiontrackerparasciifileio.cc:121 hpiontrackerparasciifileio.cc:122 hpiontrackerparasciifileio.cc:123 hpiontrackerparasciifileio.cc:124 hpiontrackerparasciifileio.cc:125 hpiontrackerparasciifileio.cc:126 hpiontrackerparasciifileio.cc:127 hpiontrackerparasciifileio.cc:128 hpiontrackerparasciifileio.cc:129 hpiontrackerparasciifileio.cc:130 hpiontrackerparasciifileio.cc:131 hpiontrackerparasciifileio.cc:132 hpiontrackerparasciifileio.cc:133 hpiontrackerparasciifileio.cc:134 hpiontrackerparasciifileio.cc:135 hpiontrackerparasciifileio.cc:136 hpiontrackerparasciifileio.cc:137 hpiontrackerparasciifileio.cc:138 hpiontrackerparasciifileio.cc:139