using namespace std;
#include <iostream>
#include <iomanip>
#include "hades.h"
#include "hparhadasciifileio.h"
#include "hspectrometer.h"
#include "hrichparset.h"
#include "hrichdetector.h"
#include "hrichthresholdpar.h"
ClassImp(HRichThresholdPar)
HRichThresholdPar::HRichThresholdPar(const Char_t* name,const Char_t* title,
const Char_t* context)
: HRichParSet(name,title,context) {
Int_t i;
for(i=0;i<6;i++){
fActiveSectors[i]=0;
}
}
HRichThresholdPar::~HRichThresholdPar()
{}
Bool_t HRichThresholdPar::defaultInit()
{
HRichDetector *pRichDet = (HRichDetector*)gHades->getSetup()->getDetector("Rich");
if (!pRichDet) return kFALSE;
fNSectors = pRichDet->getSectors();
for (Int_t k=0;k<6;k++){
if (pRichDet->getModule(k,0)){
fActiveSectors[k]=1;
}
fCalParVers[k] = -1;
fShift[k]=fMultiply_offset[k]=fMultiply_sigma[k] = -1.0;
}
printf("Rich threshold par default initialization finished\n");
return kTRUE;
}
void HRichThresholdPar::printThresholdPar()
{
for (Int_t i = 0;i<6; i++){
cout << "**********************************************" << endl;
cout << "Threshold parameters for the analysis in sector "<< i <<"!"<<endl;
cout << "cal par version: " << fCalParVers[i] << endl;
cout << "shift: " << fShift[i] << endl;
cout << "multiply_offset: " << fMultiply_offset[i] << endl;
cout << "multiply_sigma: " << fMultiply_sigma[i] << endl;
cout << "**********************************************" << endl;
}
}
Bool_t HRichThresholdPar::writeAscii(HParHadAsciiFileIo* pHadAsciiFile)
{
using namespace HadAsciiAuxiliaryFunctions;
if (!pHadAsciiFile) return kFALSE;
Bool_t status = kTRUE;
Char_t sectname[60];
try {
HAsciiRaw &mydata = *pHadAsciiFile->GetRawAscii();
mydata.SetSeparator('\t');
mydata.WriteSection("Rich Threshold Parameters Setup");
mydata.WriteKeywords(1, "nSectors");
mydata.SetWriteKeyTypes('i');
mydata.WriteRawLine(fNSectors);
for(Int_t sect = 0; sect < fNSectors; sect++) {
sprintf(sectname, "Rich Threshold Parameters: Sector %d", sect);
mydata.WriteSection(sectname);
mydata.WriteKeywords(4, "CalParVersion", "Shift", "Multiply_offset", "Multiply_sigma");
mydata.SetWriteKeyTypes('i', 'f', 'f', 'f');
mydata.WriteRawLine(fCalParVers[sect], fShift[sect], fMultiply_offset[sect], fMultiply_sigma[sect]);
}
}
catch (Bool_t ret) {
status = ret;
}
catch (...) {
status = kFALSE;
ErrorMsg(2,"HRichThresholdPar::writeAscii",1,"Unidentified exception catched.");
}
if (status)
ErrorMsg(0,"HRichThresholdPar::writeAscii",
1,"Container \'RichThresholdPar\' has been written to ASCII file.");
return status;
}
Bool_t HRichThresholdPar::initAscii(HParHadAsciiFileIo* pHadAsciiFile)
{
using namespace HadAsciiAuxiliaryFunctions;
if (!pHadAsciiFile) return kFALSE;
Bool_t status = kTRUE;
Char_t sectname[60];
try {
HAsciiRaw &mydata = *pHadAsciiFile->GetRawAscii();
cout << "got raw ascii" << endl;
mydata.SetActiveSection("Rich Threshold Parameters Setup");
cout << "Active Section OK" << endl;
mydata.SetReadKeyTypes('i');
mydata.ReadRawLine(0,&fNSectors);
cout << "number of detected sectors: " << fNSectors;
for(Int_t sect = 0; sect < fNSectors; sect++) {
sprintf(sectname, "Rich Threshold Parameters: Sector %d", sect);
mydata.SetActiveSection(sectname);
mydata.SetReadKeyTypes('i', 'f', 'f', 'f');
mydata.ReadRawLine(0,&fCalParVers[sect], &fShift[sect], &fMultiply_offset[sect], &fMultiply_sigma[sect]);
}
}
catch (Bool_t ret) {
status = ret;
}
catch (...) {
status = kFALSE;
ErrorMsg(2,"HRichThresholdPar::initAscii",1,"Unidentified exception catched.");
}
if (status)
ErrorMsg(0,"HRichThresholdPar::initAscii",
1,"Container \'RichThresholdPar\' has been read from ASCII file.");
return status;
}
void HRichThresholdPar::setShift(Int_t pSector,Float_t pShift){fShift[pSector]=pShift;}
void HRichThresholdPar::setMultiply_offset(Int_t pSector, Float_t pMultiply_offset){fMultiply_offset[pSector]=pMultiply_offset;}
void HRichThresholdPar::setMultiply_sigma(Int_t pSector, Float_t pMultiply_sigma){fMultiply_sigma[pSector]=pMultiply_sigma;}
void HRichThresholdPar::setCalParVers(Int_t pSector, Int_t pCalParVers){fCalParVers[pSector]=pCalParVers;}
Last change: Sat May 22 13:10:18 2010
Last generated: 2010-05-22 13:10
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.