// : Author J.Markert //_HADES_CLASS_DESCRIPTION /////////////////////////////////////////////////////////////////////////////// // // HOnlineMdcCalibrationMon // /////////////////////////////////////////////////////////////////////////////// using namespace std; #include "honlinemdccalibrationmon.h" #include "honlinemdchistfiller.h" #include "honlinemdchistbooker.h" #include "hmdcdef.h" #include "hdebug.h" #include "hades.h" #include "hiterator.h" #include "hruntimedb.h" #include "hspectrometer.h" #include "hdetector.h" #include "hevent.h" #include "hcategory.h" #include "hmdcraw.h" #include "hmdcraweventheader.h" #include "hmdclookupgeom.h" #include "hmdclookupraw.h" #include "hmdcrawstruct.h" #include "hmdcgeomstruct.h" #include #include #include #include "TIterator.h" ClassImp(HOnlineMdcCalibrationMon) HOnlineMdcHistBooker* HOnlineMdcCalibrationMon::Histbooker=0; HOnlineMdcCalibrationMon::HOnlineMdcCalibrationMon(void) { // Default constructor calls the function setParContainers(). initVariables(); } HOnlineMdcCalibrationMon::HOnlineMdcCalibrationMon(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. It also calls the function setParContainers(). initVariables(); } HOnlineMdcCalibrationMon::~HOnlineMdcCalibrationMon(void) { // destructor deletes the iterator if (iterraw) delete iterraw; if (iterrawHeader) delete iterrawHeader; iterraw=0; iterrawHeader=0; } void HOnlineMdcCalibrationMon::initVariables() { // iterator+categories rawCat=0; rawCatHeader=0; iterraw=0; iterrawHeader=0; } void HOnlineMdcCalibrationMon::printStatus(){ cout << "************* HOnlineMdcCalibrationMon ******" << endl; cout << "******************************************" << endl; } void HOnlineMdcCalibrationMon::setParContainers() { // creates the parameter containers MdcLookupGeom/MdcLookupRaw/MdcTimeCut if they do not // exist and adds them to the list of parameter containers in the runtime // database Histbooker = HOnlineMdcHistBooker::getExObject(); if(!Histbooker) { Error("HOnlineMdcCalibrationMon::setParContainers()","ZERO POINTER FOR HMDCHISTBOOKER RECEIVED!"); exit(1); } } Bool_t HOnlineMdcCalibrationMon::init(void) { // creates the MdcRaw category and adds them to the current // event // creates an iterator which loops over all fired cells // calls the function setParContainers() Bool_t test=kFALSE; setParContainers(); test=getCategories(); printStatus(); fActive=kTRUE; return test; } Bool_t HOnlineMdcCalibrationMon::reinit(void) { Histbooker = HOnlineMdcHistBooker::getExObject(); fActive=kTRUE; return kTRUE; } Bool_t HOnlineMdcCalibrationMon::getCategories() { /* rawCatHeader=(HCategory*)(((HEvent*)(gHades->getCurrentEvent()))->getCategory(catMdcRawEventHeader)); if (!rawCatHeader) { Warning("HOnlineMdcCalibrationMon:init()","CATEGORY HMDCRAWEVENTHEADER IS NOT FILLED!"); }*/ rawCat=(HCategory*)(((HEvent*)(gHades->getCurrentEvent()))->getCategory(catMdcRaw)); if (!rawCat) { Warning("HOnlineMdcCalibrationMon:init()","CATEGORY HMDCRAW IS NOT FILLED!"); } if (rawCatHeader) { iterrawHeader =(HIterator *)((HCategory*)rawCatHeader)->MakeIterator("native"); } if (rawCat) { iterraw =(HIterator *)((HCategory*)rawCat)->MakeIterator("native"); } return kTRUE; } Int_t HOnlineMdcCalibrationMon::execute() { if(rawCat) { iterraw->Reset(); //########################## Fill RAW HISTS ################################## Histbooker->getMdcFiller()->fillCalibration(iterraw); } return 0; } Bool_t HOnlineMdcCalibrationMon::finalize() { return kTRUE; }