#include "TROOT.h"
#include "hshowercalparcalculator.h"
#include "hruntimedb.h"
#include "hevent.h"
#include "hspectrometer.h"
#include "hdetector.h"
#include "hshowerdetector.h"
#include "hcategory.h"
#include "hmatrixcatiter.h"
#include "hlocation.h"
#include "hshowerraw.h"
#include "hshowercalpar.h"
#include "hshowerhist.h"
#include "hdebug.h"
#include "hades.h"
#include "hiterator.h"
#include "showerdef.h"
#include "hshowerhistcell.h"
ClassImp(HShowerCalParCalculator)
HShowerCalParCalculator::HShowerCalParCalculator(const Text_t *name,const Text_t *title,
Int_t iMethod, Float_t fParam1, Float_t fParam2)
: HReconstructor(name,title)
{
clearAtBegin(iMethod, fParam1, fParam2);
}
HShowerCalParCalculator::HShowerCalParCalculator(Int_t iMethod,
Float_t fParam1, Float_t fParam2)
{
clearAtBegin(iMethod, fParam1, fParam2);
}
HShowerCalParCalculator::HShowerCalParCalculator(const Text_t *name,const Text_t *title,
const Text_t *nameOfMethod, Float_t fParam1,
Float_t fParam2)
: HReconstructor(name,title)
{
clearAtBegin(0, fParam1, fParam2);
setMethod(nameOfMethod);
}
HShowerCalParCalculator::~HShowerCalParCalculator(void)
{
if(fIter)
delete fIter;
}
void HShowerCalParCalculator::clearAtBegin(Int_t iMethod,
Float_t fParam1, Float_t fParam2)
{
m_pCalPar = NULL;
m_pCalParHist = NULL;
fIter = NULL;
m_loc.set(4, 0, 0, 0, 0);
m_zeroLoc.set(0);
m_fParam1 = fParam1;
m_fParam2 = fParam2;
setMethod(iMethod);
}
void HShowerCalParCalculator::setMethod(Int_t iMethod)
{
if(((m_iMethod = iMethod) < 0) || (m_iMethod >= HSHC_MAX))
{
gROOT->Error("HShowerCalParCalculator", "No such method: %d\n",
iMethod);
}
}
void HShowerCalParCalculator::setMethod(const Char_t* pName)
{
Int_t i;
for(i = 0; i < HSHC_MAX; i++)
{
if((g_cpstr_HSHC_Methods[i] == NULL)
|| (strcasecmp(pName, g_cpstr_HSHC_Methods[i]) != 0))
{
continue;
}
setMethod(i);
return;
}
gROOT->Error("HShowerCalParCalculator", "Unknown method: %s\n", pName);
}
const Char_t* HShowerCalParCalculator::getMethodName(void)
{
return g_cpstr_HSHC_Methods[m_iMethod];
}
void HShowerCalParCalculator::initCalPar()
{
HShowerDetector *pShowerDet = (HShowerDetector*)gHades->getSetup()
->getDetector("Shower");
HRuntimeDb* rtdb=gHades->getRuntimeDb();
m_pCalPar = rtdb->getContainer("ShowerCalPar");
if (m_pCalPar) {
((HShowerCalPar*)m_pCalPar)->
setSetup(pShowerDet->getShowerSectors(),
pShowerDet->getShowerModules(),
pShowerDet->getRows(),
pShowerDet->getColumns());
}
m_pCalParHist = rtdb->getContainer("ShowerHist");
if (m_pCalParHist) {
((HShowerHist*)m_pCalParHist)->
setSetup(pShowerDet->getShowerSectors(),
pShowerDet->getShowerModules(),
pShowerDet->getRows(),
pShowerDet->getColumns());
}
}
Bool_t HShowerCalParCalculator::init()
{
printf("initialization of shower calpar calculator\n");
m_nExecutes = 0;
HShowerDetector *pShowerDet = (HShowerDetector*)gHades->getSetup()
->getDetector("Shower");
m_pRawCat=gHades->getCurrentEvent()->getCategory(catShowerRaw);
if (!m_pRawCat) {
m_pRawCat=pShowerDet->buildCategory(catShowerRaw);
if (!m_pRawCat) return kFALSE;
else gHades->getCurrentEvent()
->addCategory(catShowerRaw, m_pRawCat, "Shower");
}
initCalPar();
fIter = (HIterator*)m_pRawCat->MakeIterator("native");
return kTRUE;
}
Bool_t HShowerCalParCalculator::reinit()
{
return kTRUE;
}
void HShowerCalParCalculator::setCalPar(HParSet *pCalPar)
{
if (m_pCalPar)
delete m_pCalPar;
m_pCalPar = pCalPar;
}
void HShowerCalParCalculator::setCalParHist(HParSet *pCalParHist)
{
if (m_pCalParHist)
delete m_pCalParHist;
m_pCalParHist = pCalParHist;
}
Bool_t HShowerCalParCalculator::finalize(void)
{
((HShowerHist*)getCalParHist())
->calculate(m_nExecutes, (HShowerCalPar*)getCalPar(),
m_iMethod, m_fParam1, m_fParam2);
m_pCalPar->setChanged();
if(m_pCalPar->getInputVersion(1) == -1)
{
if(m_pCalPar->getInputVersion(2) == -1)
{
m_pCalPar->setInputVersion(1, 1);
printf("No version. Set 1 to 1 -> %d",
m_pCalPar->getInputVersion(1));
}
else
{
printf("Change Input Version 2: %d ->",
m_pCalPar->getInputVersion(2));
m_pCalPar->setInputVersion(m_pCalPar->getInputVersion(2) + 1, 2);
printf(" %d\n", m_pCalPar->getInputVersion(2));
}
}
else
{
printf("Change Input Version 1: %d ->", m_pCalPar->getInputVersion(1));
m_pCalPar->setInputVersion(m_pCalPar->getInputVersion(1) + 1, 1);
printf(" %d\n", m_pCalPar->getInputVersion(1));
}
return kTRUE;
}
Int_t HShowerCalParCalculator::execute()
{
HShowerRaw *pRaw;
fIter->Reset();
while((pRaw = (HShowerRaw*)fIter->Next()))
{
m_loc[0]=pRaw->getSector();
m_loc[1]=pRaw->getModule();
m_loc[2]=pRaw->getRow();
m_loc[3]=pRaw->getCol();
((HShowerHist*)getCalParHist())->fill(m_loc, (Int_t)pRaw->getCharge());
}
m_nExecutes++;
return 0;
}
hshowercalparcalculator.cc:1 hshowercalparcalculator.cc:2 hshowercalparcalculator.cc:3 hshowercalparcalculator.cc:4 hshowercalparcalculator.cc:5 hshowercalparcalculator.cc:6 hshowercalparcalculator.cc:7 hshowercalparcalculator.cc:8 hshowercalparcalculator.cc:9 hshowercalparcalculator.cc:10 hshowercalparcalculator.cc:11 hshowercalparcalculator.cc:12 hshowercalparcalculator.cc:13 hshowercalparcalculator.cc:14 hshowercalparcalculator.cc:15 hshowercalparcalculator.cc:16 hshowercalparcalculator.cc:17 hshowercalparcalculator.cc:18 hshowercalparcalculator.cc:19 hshowercalparcalculator.cc:20 hshowercalparcalculator.cc:21 hshowercalparcalculator.cc:22 hshowercalparcalculator.cc:23 hshowercalparcalculator.cc:24 hshowercalparcalculator.cc:25 hshowercalparcalculator.cc:26 hshowercalparcalculator.cc:27 hshowercalparcalculator.cc:28 hshowercalparcalculator.cc:29 hshowercalparcalculator.cc:30 hshowercalparcalculator.cc:31 hshowercalparcalculator.cc:32 hshowercalparcalculator.cc:33 hshowercalparcalculator.cc:34 hshowercalparcalculator.cc:35 hshowercalparcalculator.cc:36 hshowercalparcalculator.cc:37 hshowercalparcalculator.cc:38 hshowercalparcalculator.cc:39 hshowercalparcalculator.cc:40 hshowercalparcalculator.cc:41 hshowercalparcalculator.cc:42 hshowercalparcalculator.cc:43 hshowercalparcalculator.cc:44 hshowercalparcalculator.cc:45 hshowercalparcalculator.cc:46 hshowercalparcalculator.cc:47 hshowercalparcalculator.cc:48 hshowercalparcalculator.cc:49 hshowercalparcalculator.cc:50 hshowercalparcalculator.cc:51 hshowercalparcalculator.cc:52 hshowercalparcalculator.cc:53 hshowercalparcalculator.cc:54 hshowercalparcalculator.cc:55 hshowercalparcalculator.cc:56 hshowercalparcalculator.cc:57 hshowercalparcalculator.cc:58 hshowercalparcalculator.cc:59 hshowercalparcalculator.cc:60 hshowercalparcalculator.cc:61 hshowercalparcalculator.cc:62 hshowercalparcalculator.cc:63 hshowercalparcalculator.cc:64 hshowercalparcalculator.cc:65 hshowercalparcalculator.cc:66 hshowercalparcalculator.cc:67 hshowercalparcalculator.cc:68 hshowercalparcalculator.cc:69 hshowercalparcalculator.cc:70 hshowercalparcalculator.cc:71 hshowercalparcalculator.cc:72 hshowercalparcalculator.cc:73 hshowercalparcalculator.cc:74 hshowercalparcalculator.cc:75 hshowercalparcalculator.cc:76 hshowercalparcalculator.cc:77 hshowercalparcalculator.cc:78 hshowercalparcalculator.cc:79 hshowercalparcalculator.cc:80 hshowercalparcalculator.cc:81 hshowercalparcalculator.cc:82 hshowercalparcalculator.cc:83 hshowercalparcalculator.cc:84 hshowercalparcalculator.cc:85 hshowercalparcalculator.cc:86 hshowercalparcalculator.cc:87 hshowercalparcalculator.cc:88 hshowercalparcalculator.cc:89 hshowercalparcalculator.cc:90 hshowercalparcalculator.cc:91 hshowercalparcalculator.cc:92 hshowercalparcalculator.cc:93 hshowercalparcalculator.cc:94 hshowercalparcalculator.cc:95 hshowercalparcalculator.cc:96 hshowercalparcalculator.cc:97 hshowercalparcalculator.cc:98 hshowercalparcalculator.cc:99 hshowercalparcalculator.cc:100 hshowercalparcalculator.cc:101 hshowercalparcalculator.cc:102 hshowercalparcalculator.cc:103 hshowercalparcalculator.cc:104 hshowercalparcalculator.cc:105 hshowercalparcalculator.cc:106 hshowercalparcalculator.cc:107 hshowercalparcalculator.cc:108 hshowercalparcalculator.cc:109 hshowercalparcalculator.cc:110 hshowercalparcalculator.cc:111 hshowercalparcalculator.cc:112 hshowercalparcalculator.cc:113 hshowercalparcalculator.cc:114 hshowercalparcalculator.cc:115 hshowercalparcalculator.cc:116 hshowercalparcalculator.cc:117 hshowercalparcalculator.cc:118 hshowercalparcalculator.cc:119 hshowercalparcalculator.cc:120 hshowercalparcalculator.cc:121 hshowercalparcalculator.cc:122 hshowercalparcalculator.cc:123 hshowercalparcalculator.cc:124 hshowercalparcalculator.cc:125 hshowercalparcalculator.cc:126 hshowercalparcalculator.cc:127 hshowercalparcalculator.cc:128 hshowercalparcalculator.cc:129 hshowercalparcalculator.cc:130 hshowercalparcalculator.cc:131 hshowercalparcalculator.cc:132 hshowercalparcalculator.cc:133 hshowercalparcalculator.cc:134 hshowercalparcalculator.cc:135 hshowercalparcalculator.cc:136 hshowercalparcalculator.cc:137 hshowercalparcalculator.cc:138 hshowercalparcalculator.cc:139 hshowercalparcalculator.cc:140 hshowercalparcalculator.cc:141 hshowercalparcalculator.cc:142 hshowercalparcalculator.cc:143 hshowercalparcalculator.cc:144 hshowercalparcalculator.cc:145 hshowercalparcalculator.cc:146 hshowercalparcalculator.cc:147 hshowercalparcalculator.cc:148 hshowercalparcalculator.cc:149 hshowercalparcalculator.cc:150 hshowercalparcalculator.cc:151 hshowercalparcalculator.cc:152 hshowercalparcalculator.cc:153 hshowercalparcalculator.cc:154 hshowercalparcalculator.cc:155 hshowercalparcalculator.cc:156 hshowercalparcalculator.cc:157 hshowercalparcalculator.cc:158 hshowercalparcalculator.cc:159 hshowercalparcalculator.cc:160 hshowercalparcalculator.cc:161 hshowercalparcalculator.cc:162 hshowercalparcalculator.cc:163 hshowercalparcalculator.cc:164 hshowercalparcalculator.cc:165 hshowercalparcalculator.cc:166 hshowercalparcalculator.cc:167 hshowercalparcalculator.cc:168 hshowercalparcalculator.cc:169 hshowercalparcalculator.cc:170 hshowercalparcalculator.cc:171 hshowercalparcalculator.cc:172 hshowercalparcalculator.cc:173 hshowercalparcalculator.cc:174 hshowercalparcalculator.cc:175 hshowercalparcalculator.cc:176 hshowercalparcalculator.cc:177 hshowercalparcalculator.cc:178 hshowercalparcalculator.cc:179 hshowercalparcalculator.cc:180 hshowercalparcalculator.cc:181 hshowercalparcalculator.cc:182 hshowercalparcalculator.cc:183 hshowercalparcalculator.cc:184 hshowercalparcalculator.cc:185 hshowercalparcalculator.cc:186 hshowercalparcalculator.cc:187 hshowercalparcalculator.cc:188 hshowercalparcalculator.cc:189 hshowercalparcalculator.cc:190 hshowercalparcalculator.cc:191 hshowercalparcalculator.cc:192 hshowercalparcalculator.cc:193 hshowercalparcalculator.cc:194 hshowercalparcalculator.cc:195 hshowercalparcalculator.cc:196 hshowercalparcalculator.cc:197 hshowercalparcalculator.cc:198 hshowercalparcalculator.cc:199 hshowercalparcalculator.cc:200 hshowercalparcalculator.cc:201 hshowercalparcalculator.cc:202 hshowercalparcalculator.cc:203 hshowercalparcalculator.cc:204 hshowercalparcalculator.cc:205 hshowercalparcalculator.cc:206 hshowercalparcalculator.cc:207 hshowercalparcalculator.cc:208 hshowercalparcalculator.cc:209 hshowercalparcalculator.cc:210 hshowercalparcalculator.cc:211 hshowercalparcalculator.cc:212 hshowercalparcalculator.cc:213 hshowercalparcalculator.cc:214 hshowercalparcalculator.cc:215 hshowercalparcalculator.cc:216 hshowercalparcalculator.cc:217 hshowercalparcalculator.cc:218 hshowercalparcalculator.cc:219 hshowercalparcalculator.cc:220 hshowercalparcalculator.cc:221 hshowercalparcalculator.cc:222 hshowercalparcalculator.cc:223 hshowercalparcalculator.cc:224 hshowercalparcalculator.cc:225 hshowercalparcalculator.cc:226 hshowercalparcalculator.cc:227 hshowercalparcalculator.cc:228 hshowercalparcalculator.cc:229 hshowercalparcalculator.cc:230 hshowercalparcalculator.cc:231 hshowercalparcalculator.cc:232 hshowercalparcalculator.cc:233 hshowercalparcalculator.cc:234 hshowercalparcalculator.cc:235 hshowercalparcalculator.cc:236 hshowercalparcalculator.cc:237 hshowercalparcalculator.cc:238 hshowercalparcalculator.cc:239 hshowercalparcalculator.cc:240 hshowercalparcalculator.cc:241 hshowercalparcalculator.cc:242 hshowercalparcalculator.cc:243 hshowercalparcalculator.cc:244 hshowercalparcalculator.cc:245 hshowercalparcalculator.cc:246 hshowercalparcalculator.cc:247 hshowercalparcalculator.cc:248 hshowercalparcalculator.cc:249 hshowercalparcalculator.cc:250 hshowercalparcalculator.cc:251 hshowercalparcalculator.cc:252 hshowercalparcalculator.cc:253 hshowercalparcalculator.cc:254 hshowercalparcalculator.cc:255 hshowercalparcalculator.cc:256 hshowercalparcalculator.cc:257 hshowercalparcalculator.cc:258 hshowercalparcalculator.cc:259 hshowercalparcalculator.cc:260 hshowercalparcalculator.cc:261 hshowercalparcalculator.cc:262 hshowercalparcalculator.cc:263 hshowercalparcalculator.cc:264 hshowercalparcalculator.cc:265 hshowercalparcalculator.cc:266 hshowercalparcalculator.cc:267