#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