// : Author J.Markert //_HADES_CLASS_DESCRIPTION /////////////////////////////////////////////////////////////////////////////// // // HOnlineTofinoMon // /////////////////////////////////////////////////////////////////////////////// using namespace std; #include "honlinetofinomon.h" #include "honlinetofinohistfiller.h" #include "honlinetofinohistbooker.h" #include "tofinodef.h" #include "showerdef.h" #include "hcategory.h" #include "htofinocal.h" #include "htofinoraw.h" #include "hdebug.h" #include "hades.h" #include "hiterator.h" #include "hruntimedb.h" #include "hspectrometer.h" #include "hdetector.h" #include "hevent.h" #include #include #include #include "TIterator.h" ClassImp(HOnlineTofinoMon) HOnlineTofinoHistBooker* HOnlineTofinoMon::tofinoHistbooker=0; HOnlineTofinoMon::HOnlineTofinoMon(void) { // Default constructor . initVariables(); } HOnlineTofinoMon::HOnlineTofinoMon(const Text_t* name,const Text_t* title) : HReconstructor(name,title) { // Constructor calls the constructor of class HReconstructor with the name // and the title as arguments. initVariables(); } HOnlineTofinoMon::~HOnlineTofinoMon(void) { // destructor deletes the iterator if (itercal) delete itercal; if (iterraw) delete iterraw; itercal=0; iterraw=0; itershow=0; } void HOnlineTofinoMon::initVariables() { // iterator+categories calCat =0; rawCat =0; showCat =0; itercal=0; iterraw=0; itershow=0; } void HOnlineTofinoMon::printStatus(){ cout << "************* HOnlineTofinoMon **************" << endl; cout << "******************************************" << endl; } void HOnlineTofinoMon::setParContainers() { tofinoHistbooker = HOnlineTofinoHistBooker::getExObject(); if(!tofinoHistbooker) { Error("HOnlineTofinoMon::setParContainers()","ZERO POINTER FOR HTOFINOTHISTBOOKER RECEIVED!"); exit(1); } } Bool_t HOnlineTofinoMon::init(void) { Bool_t test=kFALSE; setParContainers(); test=getCategories(); printStatus(); fActive=kTRUE; return test; } Bool_t HOnlineTofinoMon::reinit(void) { tofinoHistbooker = HOnlineTofinoHistBooker::getExObject(); tofinoHistbooker->printStatus(); fActive=kTRUE; return kTRUE; } Bool_t HOnlineTofinoMon::getCategories() { rawCat=(HCategory*)(((HEvent*)(gHades->getCurrentEvent()))->getCategory(catTofinoRaw)); if (!rawCat) { Warning("HOnlineTofinoMon:init()","CATEGORY HTOFINORAW IS NOT FILLED!"); } calCat=(HCategory*)(((HEvent*)(gHades->getCurrentEvent()))->getCategory(catTofinoCal)); if (!calCat) { Warning("HOnlineTofinoMon:init()","CATEGORY HTOFINOCAL IS NOT FILLED!"); } showCat=(HCategory*)(((HEvent*)(gHades->getCurrentEvent()))->getCategory(catShowerHitTof)); if (!showCat) { Warning("HOnlineTofinoMon:init()","CATEGORY HShowerHitTof IS NOT FILLED!"); } if (rawCat) { iterraw =(HIterator *)((HCategory*)rawCat)->MakeIterator("native"); } if (calCat) { itercal=(HIterator *)((HCategory*)calCat)->MakeIterator("native"); } if (showCat){ itershow=(HIterator *)((HCategory*)showCat)->MakeIterator("native"); } return kTRUE; } Int_t HOnlineTofinoMon::execute() { //tofinoHistbooker->resetActiveList(2,gHades->getEventCounter()); // if feature of incremental update should be used HTofinoRaw* raw=0; HTofinoCal* cal=0; if(rawCat) { tofinoHistbooker->getTofinoFiller()->fillRawCat(iterraw); iterraw->Reset(); //########################## Fill RAW HISTS ################################## while ((raw=(HTofinoRaw *)iterraw->Next())!=0) { tofinoHistbooker->getTofinoFiller()->fillRaw(raw); } } if(calCat) { itercal->Reset(); //######################### FIll CAL HISTS ################################## while ((cal=(HTofinoCal *)itercal->Next())!=0) { tofinoHistbooker->getTofinoFiller()->fillCal(cal); } //############################################################################ } if(showCat && calCat){ tofinoHistbooker->getTofinoFiller()->fillShowerTofino(itercal,itershow); } return 0; } Bool_t HOnlineTofinoMon::finalize() { return kTRUE; }