#pragma implementation
using namespace std;
#include <iostream>
#include <iomanip>
#include "hades.h"
#include "hspectrometer.h"
#include "hparhadasciifileio.h"
#include "hlocation.h"
#include "hspectrometer.h"
#include "hshowerparset.h"
#include "hshowercalpar.h"
#include "hshowerdetector.h"
#include "hshowerunpackparam.h"
#include "hshowersubidpar.h"
ClassImp(HShowerUnpackParam)
HShowerUnpackParam::HShowerUnpackParam(const Char_t* name,const Char_t* title,
const Char_t* context)
: HShowerParSet(name,title,context) {
m_nIsInit = kFALSE;
m_nUseThresholds = kFALSE;
for (Int_t i = 0; i < 18; m_nThresholds[i++]=0);
for (Int_t i = 0; i < 384; i++) {
m_nColumnsNumbers[i] = 0;
m_nRowsNumbers[i] = 0;
m_nModulesNumbers[i] = 0;
}
m_pSubIdArr = new TObjArray(12);
}
HShowerUnpackParam::~HShowerUnpackParam()
{
if (m_pSubIdArr) {
m_pSubIdArr->Delete();
delete m_pSubIdArr;
}
}
Bool_t HShowerUnpackParam::defaultInit() {
for (Int_t i = 0; i < 384; i++) {
m_nColumnsNumbers[i] = calcColumn(i);
m_nRowsNumbers[i] = calcRow(i);
m_nModulesNumbers[i] = calcModule(i);
}
m_nIsInit = kTRUE;
return kTRUE;
}
Bool_t HShowerUnpackParam::initAscii(HParHadAsciiFileIo* pHadAsciiFileIo) {
Bool_t status = kTRUE;
HShowerSubIdPar *pSubIdPar;
Int_t nNSubId;
Int_t subid[12];
printf("initialization of unpacker's parameters\n");
try {
HAsciiKey* pHAscii = pHadAsciiFileIo->GetKeyAscii();
HAsciiKey &mydata = *pHAscii;
mydata.SetActiveSection("Shower's subevents");
nNSubId = mydata.ReadInt("Subevents number");
mydata.ReadInt(subid, "Subevents", nNSubId);
for(Int_t i = 0; i < nNSubId; i++) {
pSubIdPar = new HShowerSubIdPar(subid[i]);
m_pSubIdArr->AddAt(pSubIdPar, subid[i] - 300);
pSubIdPar->initAscii(pHadAsciiFileIo);
}
printf("init: entries %d\n", m_pSubIdArr->GetEntries());
mydata.SetActiveSection("Shower Unpacker's Parameters");
m_nUseThresholds = mydata.ReadInt("Use thresholds");
mydata.ReadInt(m_nThresholds, "Unpacker thresholds");
mydata.ReadInt(m_nColumnsNumbers, "Columns numbers");
mydata.ReadInt(m_nRowsNumbers, "Rows numbers");
mydata.ReadInt(m_nModulesNumbers, "Modules numbers");
m_nIsInit = kTRUE;
}
catch (Bool_t ret) {
status = ret;
}
return status;
}
Bool_t HShowerUnpackParam::writeAscii(HParHadAsciiFileIo* pHadAsciiFileIo) {
Bool_t status = kTRUE;
HShowerSubIdPar *pSubIdPar[12];
Int_t nNSubId;
Int_t subid[12];
TIterator* iter;
iter = m_pSubIdArr->MakeIterator();
printf("write: entries %d\n", m_pSubIdArr->GetEntries());
try {
HAsciiKey* pHAscii = pHadAsciiFileIo->GetKeyAscii();
HAsciiKey &mydata = *pHAscii;
nNSubId = 0;
while ((pSubIdPar[nNSubId] = (HShowerSubIdPar*)iter->Next())){
subid[nNSubId] = pSubIdPar[nNSubId]->getSubID();
nNSubId++;
}
mydata.WriteSection("Shower's subevents");
mydata.WriteInt("Subevents number", nNSubId);
mydata.WriteInt("Subevents", nNSubId, subid);
for(Int_t i = 0; i < nNSubId; i++)
pSubIdPar[i]->writeAscii(pHadAsciiFileIo);
mydata.WriteSection("Shower Unpacker's Parameters");
mydata.SetNumInLine(9);
mydata.WriteInt("Use thresholds", m_nUseThresholds);
mydata.WriteInt("Unpacker thresholds*", 18, m_nThresholds);
mydata.SetNumInLine(12);
mydata.WriteInt("Columns numbers*", 384, m_nColumnsNumbers);
mydata.WriteInt("Rows numbers*", 384, m_nRowsNumbers);
mydata.WriteInt("Modules numbers*", 384, m_nModulesNumbers);
}
catch (Bool_t ret) {
status = ret;
}
delete iter;
return status;
}
HShowerSubIdPar* HShowerUnpackParam::getSubIdPar(Int_t nSubId) {
return (HShowerSubIdPar*)m_pSubIdArr->At(nSubId - 300);
}
Last change: Sat May 22 13:14:16 2010
Last generated: 2010-05-22 13:14
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.