#include "honlinemonhist.h" #include "honlinehistarray.h" #include "honlinetrendhist.h" #include "hmdccutstat.h" #include "hcategory.h" #include "hmdcdef.h" #include "hmdcraw.h" #include "hmdccal1.h" #include "hmdcoepstatusdata.h" #include "helpers.h" #include "TList.h" #include "TString.h" #include "TRegexp.h" #include #include using namespace std; map < TString , HOnlineMonHistAddon* > mdcMap; map oepWords; map oepWordsToLinIndex; Bool_t createHistMdc(TList& histpool){ mapHolder::setMap(mdcMap); // make mdcMap currentMap //####################### USER CODE ############################################## // define monitoring hists Text_t* hists[] = { "FORMAT#array TYPE#1F NAME#hMdctime1Cal1 TITLE#Mdc_timeCal1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#800:-100:700:0:0:0 SIZE#1:2 AXIS#time_[channel]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trend TYPE#1F NAME#hMdctime1Cal1MeanTrend TITLE#Mdc_time1Cal1MeanTrend ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#0:0 AXIS#trend:mean_time1[channel]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#50:70" ,"FORMAT#mon TYPE#1F NAME#hMdctime1Cal1MeanTrendtemp TITLE#time1Cal1MeanTrendtemp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:1200:0:0:0 SIZE#0:0 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdccutstat TITLE#Mdc_hcutstat ACTIVE#1 RESET#0 REFRESH#500 BIN#24:0:24:0:0:0 SIZE#1:4 AXIS#no:ratio:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hMdccal1hits TITLE#Mdc_hcal1hits ACTIVE#1 RESET#1 REFRESH#5000 BIN#8:0:4:12:0:6 SIZE#0:0 AXIS#module:sector:no DIR#no OPT#lego2 STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hMdccal1hitstemp TITLE#Mdc_hcal1hits ACTIVE#1 RESET#1 REFRESH#5000000 BIN#4:0:4:6:0:6 SIZE#0:0 AXIS#module:sector:counts DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdccal1hitstrend TITLE#Mdc_hcal1hits_trend ACTIVE#1 RESET#0 REFRESH#500 BIN#50:0:50:0:0:0 SIZE#6:4 AXIS#trend:multiplicity:no DIR#no OPT#p STATS#0 LOG#0:0:0 GRID#0:1 LINE#0:0 FILL#0:0 MARKER#1:20:0.5 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdcrawError_Stat TITLE#Mdc_Raw_Error_Stat ACTIVE#1 RESET#1 REFRESH#5000 BIN#96:0:96:10:0:10 SIZE#1:4 AXIS#:no:error_bit:no DIR#no OPT#COLZ STATS#0 LOG#0:0:1 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS0M0 TITLE#Mdc_layerS0M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS1M0 TITLE#Mdc_layerS1M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS2M0 TITLE#Mdc_layerS2M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS3M0 TITLE#Mdc_layerS3M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS4M0 TITLE#Mdc_layerS4M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS5M0 TITLE#Mdc_layerS5M0 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS0M1 TITLE#Mdc_layerS0M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS1M1 TITLE#Mdc_layerS1M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS2M1 TITLE#Mdc_layerS2M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS3M1 TITLE#Mdc_layerS3M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS4M1 TITLE#Mdc_layerS4M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS5M1 TITLE#Mdc_layerS5M1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS0M2 TITLE#Mdc_layerS0M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS1M2 TITLE#Mdc_layerS1M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS2M2 TITLE#Mdc_layerS2M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS3M2 TITLE#Mdc_layerS3M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS4M2 TITLE#Mdc_layerS4M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS5M2 TITLE#Mdc_layerS5M2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS0M3 TITLE#Mdc_layerS0M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS1M3 TITLE#Mdc_layerS1M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS2M3 TITLE#Mdc_layerS2M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS3M3 TITLE#Mdc_layerS3M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS4M3 TITLE#Mdc_layerS4M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdclayerS5M3 TITLE#Mdc_layerS5M3 ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:6 AXIS#wire:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdcmbotdc TITLE#Mdc_mbo_tdc ACTIVE#1 RESET#1 REFRESH#5000 BIN#16:0:16:12:0:12 SIZE#6:4 AXIS#mbo:tdc:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Mod0 TITLE#MdcI_time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Mod1 TITLE#MdcII_time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Mod2 TITLE#MdcIII_time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Mod3 TITLE#MdcIV_time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2Mod0 TITLE#MdcI_time2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time2_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2Mod1 TITLE#MdcII_time2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time2_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2Mod2 TITLE#MdcIII_time2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time2_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2Mod3 TITLE#MdcIV_time2 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-300:1000:0:0:0 SIZE#1:6 AXIS#time2_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12Mod0 TITLE#MdcI_time2-time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-50:400:0:0:0 SIZE#1:6 AXIS#time2-time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12Mod1 TITLE#MdcII_time2-time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-50:400:0:0:0 SIZE#1:6 AXIS#time2-time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12Mod2 TITLE#MdcIII_time2-time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-50:400:0:0:0 SIZE#1:6 AXIS#time2-time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12Mod3 TITLE#MdcIV_time2-time1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-50:400:0:0:0 SIZE#1:6 AXIS#time2-time1_[ns]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12 TITLE#t2-t1:t1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#225:-50:400:200:0:200 SIZE#6:4 AXIS#time1_[ns]:time2-time1_[ns]:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1rawMod0 TITLE#MdcI_time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1rawMod1 TITLE#MdcII_time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1rawMod2 TITLE#MdcIII_time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1rawMod3 TITLE#MdcIV_time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2rawMod0 TITLE#MdcI_time2raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2rawMod1 TITLE#MdcII_time2raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2rawMod2 TITLE#MdcIII_time2raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime2rawMod3 TITLE#MdcIV_time2raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod0 TITLE#MdcI_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2-time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod1 TITLE#MdcII_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2-time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod2 TITLE#MdcIII_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2-time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod3 TITLE#MdcIV_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:0:0:0 SIZE#1:6 AXIS#time2-time1_[ch]:counts:no DIR#no OPT#no STATS#0 LOG#0:1:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12raw TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#256:0:2048:200:0:400 SIZE#6:4 AXIS#time1_[ns]:time2-time1_[ns]:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdcMbo TITLE#Mbo_per_plane ACTIVE#1 RESET#1 REFRESH#5000 BIN#6:0:6:16:0:16 SIZE#1:4 AXIS#sector:mbo:no DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1RawMeanTrendMod0 TITLE#Mdc_time1RawMeanTrendMod0 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#0:2000" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1RawMeanTrendMod1 TITLE#Mdc_time1RawMeanTrendMod1 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#0:2000" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1RawMeanTrendMod2 TITLE#Mdc_time1RawMeanTrendMod2 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#0:2000" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1RawMeanTrendMod3 TITLE#Mdc_time1RawMeanTrendMod3 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#0:2000" ,"FORMAT#array TYPE#1F NAME#hMdctime1RawMeanTrendMod0temp TITLE#time1RawMeanTrendMod0temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:2000:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1RawMeanTrendMod1temp TITLE#time1RawMeanTrendMod1temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1000:0:2000:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1RawMeanTrendMod2temp TITLE#time1RawMeanTrendMod2temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1000:0:2000:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1RawMeanTrendMod3temp TITLE#time1RawMeanTrendMod3temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1000:0:2000:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdcMboTrendMod0 TITLE#Mbo_counts_per_plane ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdcMboTrendMod1 TITLE#Mbo_counts_per_plane ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdcMboTrendMod2 TITLE#Mbo_counts_per_plane ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdcMboTrendMod3 TITLE#Mbo_counts_per_plane ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hMdcMboTrendCount TITLE#Mbo_counts_per_plane ACTIVE#1 RESET#0 REFRESH#50000 BIN#24:0:24:0:0:0 SIZE#0:0 AXIS#trend:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#2F NAME#hMdcmbotdcCalib TITLE#Mdc_mbo_tdc_calib ACTIVE#1 RESET#1 REFRESH#5000 BIN#16:0:16:12:0:12 SIZE#6:4 AXIS#mbo:tdc:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdcmodtimestatCalibMod0 TITLE#Mdc_Mod_timestat_calib ACTIVE#1 RESET#1 REFRESH#5000 BIN#8:0:8:0:0:0 SIZE#1:6 AXIS#timeN:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdcmodtimestatCalibMod1 TITLE#Mdc_Mod_timestat_calib ACTIVE#1 RESET#1 REFRESH#5000 BIN#8:0:8:0:0:0 SIZE#1:6 AXIS#timeN:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdcmodtimestatCalibMod2 TITLE#Mdc_Mod_timestat_calib ACTIVE#1 RESET#1 REFRESH#5000 BIN#8:0:8:0:0:0 SIZE#1:6 AXIS#timeN:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdcmodtimestatCalibMod3 TITLE#Mdc_Mod_timestat_calib ACTIVE#1 RESET#1 REFRESH#5000 BIN#8:0:8:0:0:0 SIZE#1:6 AXIS#timeN:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1Cal1MeanTrendMod0 TITLE#Mdc_time1Cal1MeanTrendMod0 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#20:100" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1Cal1MeanTrendMod1 TITLE#Mdc_time1Cal1MeanTrendMod1 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#20:100" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1Cal1MeanTrendMod2 TITLE#Mdc_time1Cal1MeanTrendMod2 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#50:180" ,"FORMAT#trendarray TYPE#1F NAME#hMdctime1Cal1MeanTrendMod3 TITLE#Mdc_time1Cal1MeanTrendMod3 ACTIVE#1 RESET#0 REFRESH#500 BIN#100:0:100:0:0:0 SIZE#1:6 AXIS#trend:mean_time1[ns]:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#2:0 FILL#0:0 MARKER#0:0:0 RANGE#50:180" ,"FORMAT#array TYPE#1F NAME#hMdctime1Cal1MeanTrendMod0temp TITLE#time1Cal1MeanTrendMod0temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:1200:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Cal1MeanTrendMod1temp TITLE#time1Cal1MeanTrendMod1temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:1200:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Cal1MeanTrendMod2temp TITLE#time1Cal1MeanTrendMod2temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:1200:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hMdctime1Cal1MeanTrendMod3temp TITLE#time1Cal1MeanTrendMod3temp ACTIVE#1 RESET#1 REFRESH#5000 BIN#1200:0:1200:0:0:0 SIZE#1:6 AXIS#no:no:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" }; Int_t colorsSector[6] = {2,4,6,8,38,46}; Int_t styleModule [4] = {20,21,22,23}; Int_t colorsCuts [4] = {3,5,4,2}; const Char_t *mdclabel[24] = { "I1","I2","I3","I4","I5","I6", "II1","II2","II3","II4","II5","II6", "III1","III2","III3","III4","III5","III6", "IV1","IV2","IV3","IV4","IV5","IV6" }; /* status 03.09.2010 Name Code Content Note Basic Information 0x00 "Bit 15 - 0: Internal trigger number, Bit 16: Short MBO, Bit 17: Long MBO, Bit 18: CMS active" Token Missing 0x01 "Bit 23 - 0: Number of missing token" 1 Phys. Triggers 0x02 "Bit 23 - 0: Number of received triggers" 1 Calib. Triggers 0x03 "Bit 23 - 0: Number of received calibration triggers" 1 Discarded Hit 1 0x04 "Bit 23 - 0: Number of discarded hit 1 words from TDC due to threshold setting" 1 Discarded Hit 0 0x05 "Bit 23 - 0: Number of discarded hit 0 words from TDC due to threshold setting" 1 Discarded Words 0x06 "Bit 23 - 0: Number of discarded words due to limit of words per event" 1 Truncated Events 0x07 "Bit 23 - 0: Number of truncated events due to limit of words per event" 1 Single Hit 1 0x08 "Bit 23 - 0: Number of single, double or triple hit 1" 1 Single Hit 0 0x09 "Bit 23 - 0: Number of single, double or triple hit 0" 1 Retransmit Req. 0x0A "Bit 11 - 0: Number of retransmit requests sent, Bit 23 - 12: Number of retransmit requests received" 1 Dummy Word 0x1E "Dummy data word. Sent in every event when selected by CCR2 Bit 22 (see table 39). Bit 23 - 16: Lower 8 bit of trigger number. Bit 11 - 0: Word counter" Debug Word 0x1F "Debug word. Sent in every event when selected by CCR2 Bit 30 (see table 39). Bit 15 - 0: Trigger number" MDC status words. Note 1: is reset when CCR0 Bit 5 is set. In the 0xE-event, the relative counter value since the last 0xE-event is shown. The status words 0x00 to 0x1D are also available in the address range 0x9100 to 0x911D. Here, the absolute counter value is read */ //oepWords[0x00] = "Basic"; oepWords[0x01] = "miss. Tok"; oepWords[0x02] = ""; //"phys. Trig"; oepWords[0x03] = "cal. Trig"; oepWords[0x04] = "disc. Hit1"; oepWords[0x05] = "disc. Hit0"; oepWords[0x06] = "disc. word"; oepWords[0x07] = "trunc. Ev"; oepWords[0x08] = "single Hit1"; oepWords[0x09] = "single Hit0"; //oepWords[0x0A] = "trans Req"; //oepWords[0x01E] = "dummy word"; //oepWords[0x01F] = "debug word"; //oepWordsToLinIndex[0x00] = 0; oepWordsToLinIndex[0x01] = 0; //oepWordsToLinIndex[0x02] = 1; oepWordsToLinIndex[0x03] = 1; oepWordsToLinIndex[0x04] = 2; oepWordsToLinIndex[0x05] = 3; oepWordsToLinIndex[0x06] = 4; oepWordsToLinIndex[0x07] = 5; oepWordsToLinIndex[0x08] = 6; oepWordsToLinIndex[0x09] = 7; //oepWordsToLinIndex[0x0A] = 9; //oepWordsToLinIndex[0x01E] = 10; //oepWordsToLinIndex[0x01F] = 11; //############################################################################### // create hists and add them to the pool mapHolder::createHists(sizeof(hists)/sizeof(Text_t*),hists,histpool); //----------------------- CUSTOMIZING HISTS-------------------------------- TRegexp regLayer ("hMdclayerS[012345]M[0123]"); TRegexp regTimeStatCalib ("hMdcmodtimestatCalibMod[0123]"); TRegexp regTimeMod ("hMdctime[12]+Mod[0123]"); TRegexp regTimeRawMod ("hMdctime[12]+rawMod[0123]"); TRegexp regMboTrendMod ("hMdcMboTrendMod[0123]"); TRegexp regTime1MeanTrendMod("hMdctime1Cal1MeanTrendMod[0123]"); HOnlineMonHistAddon* addon = get("hMdcrawError_Stat"); if(addon){ for(Int_t m = 0; m < 4; m ++){ for(Int_t s = 0; s < 6; s ++){ addon->getP(0,m)->GetXaxis()->SetBinLabel(s*16+1,Form("s%i",s)); //for(Int_t mb = 0; mb < 16; mb ++){ // addon->getP(0,m)->GetXaxis()->SetBinLabel(s*16+mb+1,Form("s%mb%i",s,mb)); //} } for(map< Int_t, TString>::iterator it = oepWords.begin(); it != oepWords.end(); ++it){ TString tmp = (*it).second; addon->getP(0,m)->GetYaxis()->SetBinLabel(oepWordsToLinIndex[(*it).first] + 1,Form("%s",tmp.Data())); } addon->getP(0,m)->LabelsOption("v"); } } for( map< TString, HOnlineMonHistAddon*>::iterator iter = mdcMap.begin(); iter != mdcMap.end(); ++iter ) { TString name = (*iter).first; addon = (*iter).second; if(addon){ if( name == "hMdctime1Cal1"){ addon->getP(0,0)->SetLineColor(1); addon->getP(0,1)->SetLineColor(2); } if(name == "hMdccutstat") { addon->getP(0,0)->SetFillColor(colorsCuts[0]); addon->getP(0,1)->SetFillColor(colorsCuts[1]); addon->getP(0,2)->SetFillColor(colorsCuts[2]); addon->getP(0,3)->SetFillColor(colorsCuts[3]); for(Int_t i=0;i<24;i++){ addon->getP(0,4)->GetXaxis()->SetBinLabel(i+1,mdclabel[i]); } addon->getP(0,4)->GetXaxis()->SetLabelSize(0.05); addon->getP(0,4)->LabelsOption("v"); addon->getP(0,4)->SetTitleOffset(1.15,"X"); } if(name == "hMdccal1hitstrend") { for(Int_t s = 0; s < 6; s ++){ for(Int_t m = 0; m < 4; m ++){ addon->getP(s,m)->SetMarkerColor(colorsSector[s]); addon->getP(s,m)->SetMarkerStyle(styleModule[m]); } } } if(name(regLayer) != "") { for(Int_t s = 0; s < 6; s ++){ addon->getP(0,s)->SetLineColor(colorsSector[s]); } } if(name(regTimeStatCalib) != "") { const Char_t *timelabel[8] = {"1","2","3","4","5","6","0","<0"}; for(Int_t s = 0; s < 6; s ++){ addon->getP(0,s)->SetLineColor(colorsSector[s]); for(Int_t l = 0; l < 8; l ++){ addon->getP(0,s)->GetXaxis()->SetBinLabel(l+1,timelabel[l]); addon->getP(0,s)->GetXaxis()->SetLabelSize(0.055); } } } if(name(regTimeMod) != "") { for(Int_t s = 0; s < 6; s ++) { addon->getP(0,s)->SetLineColor(colorsSector[s]); } } if(name(regTimeRawMod) != "") { for(Int_t s = 0; s < 6; s ++) { addon->getP(0,s)->SetLineColor(colorsSector[s]); } } if(name(regMboTrendMod) != "") { for(Int_t s = 0; s < 6; s ++){ addon->getP(0,s)->SetLineColor(colorsSector[s]); } } if(name(regTime1MeanTrendMod) != "") { for(Int_t s = 0; s < 6; s ++) { addon->getP(0,s)->SetLineColor(colorsSector[s]); } } } } // end loop map //------------------------------------------------------------------------- return kTRUE; } Bool_t fillHistMdc(Int_t evtCt){ mapHolder::setMap(mdcMap); // make mdcMap currentMap //####################### USER CODE ############################################## // Fill Histograms // categorys to loop HCategory* mdcCal1Cat = gHades->getCurrentEvent()->getCategory(catMdcCal1); HCategory* mdcRawCat = gHades->getCurrentEvent()->getCategory(catMdcRaw); HCategory* mdcOepStatCat = gHades->getCurrentEvent()->getCategory(catMdcOepStatus); if(mdcOepStatCat) { Int_t word,s,m,mb; HMdcOepStatusData *oepStat; for(Int_t i = 0; i < mdcOepStatCat->getEntries(); i ++) { oepStat = (HMdcOepStatusData*)mdcOepStatCat->getObject(i); if(oepStat) { for(Int_t w = 0; w < 32; w++){ map::iterator iter = oepWords.find(w); if( iter == oepWords.end() ) continue; // code not in the list of filled codes word = oepStat->getStatusWord(w); if(word > 0){ s = oepStat->getSector(); m = oepStat->getModule(); mb = oepStat->getMbo(); if(get("hMdcrawError_Stat")) ((TH2*)get("hMdcrawError_Stat")->getP(0,m))->Fill(s*16+mb,oepWordsToLinIndex[w],word); } } } } } if(mdcRawCat) { HOnlineMonHistAddon* mhMdctime1rawMod[4] = { get("hMdctime1rawMod0"), get("hMdctime1rawMod1"), get("hMdctime1rawMod2"), get("hMdctime1rawMod3") }; HOnlineMonHistAddon* mhMdctime2rawMod[4] = { get("hMdctime2rawMod0"), get("hMdctime2rawMod1"), get("hMdctime2rawMod2"), get("hMdctime2rawMod3") }; HOnlineMonHistAddon* mhMdctime12rawMod[4] = { get("hMdctime12rawMod0"), get("hMdctime12rawMod1"), get("hMdctime12rawMod2"), get("hMdctime12rawMod3") }; HOnlineMonHistAddon* mhMdcmodtimestatCalib[4] = { get("hMdcmodtimestatCalibMod0"), get("hMdcmodtimestatCalibMod1"), get("hMdcmodtimestatCalibMod2"), get("hMdcmodtimestatCalibMod3") }; HOnlineMonHistAddon* mhMdctime1RawMeanTrendMod[4] = { get("hMdctime1RawMeanTrendMod0"), get("hMdctime1RawMeanTrendMod1"), get("hMdctime1RawMeanTrendMod2"), get("hMdctime1RawMeanTrendMod3") }; HOnlineMonHistAddon* mhMdctime1RawMeanTrendModtemp[4] = { get("hMdctime1RawMeanTrendMod0temp"), get("hMdctime1RawMeanTrendMod1temp"), get("hMdctime1RawMeanTrendMod2temp"), get("hMdctime1RawMeanTrendMod3temp") }; Int_t s,m,mb,ch; HMdcRaw* raw; for(Int_t i = 0; i < mdcRawCat->getEntries(); i ++) { raw = (HMdcRaw*)mdcRawCat->getObject(i); if(raw) { raw->getAddress(s,m,mb,ch); Float_t time1=raw->getTime(1); Float_t time2=raw->getTime(2); if(get("hMdcmbotdc")) get("hMdcmbotdc") ->getP(s,m)->Fill((Axis_t)mb,(Axis_t)((Int_t)(ch/8))); if(get("hMdcMboTrendCount")) get("hMdcMboTrendCount") ->getP()->Fill(s*4+m); if(mhMdctime1RawMeanTrendModtemp[m]) mhMdctime1RawMeanTrendModtemp[m]->getP(0,s)->Fill(time1); if(mhMdctime1rawMod [m]) mhMdctime1rawMod [m] ->getP(0,s)->Fill(time1); if(mhMdctime2rawMod [m]) mhMdctime2rawMod [m] ->getP(0,s)->Fill(time2); if(mhMdctime12rawMod[m]) mhMdctime12rawMod[m] ->getP(0,s)->Fill(time1-time2); if(get("hMdctime1_12raw")) get("hMdctime1_12raw")->fill(s,m,time1,time1-time2); if(get("hMdcMbo")) get("hMdcMbo") ->fill(0,m,s,mb); //--------------------------- calibration -------------------------- if(gHades->isCalibration()){ if(get("hMdcmbotdcCalib")) get("hMdcmbotdcCalib")->getP(s,m)->Fill((Axis_t)mb,(Axis_t)((Int_t)(ch/8))); if(mhMdcmodtimestatCalib[m]) { for(Int_t i = 0; i < 6; i++) { if (raw->getTime(i+1) > 0){ mhMdcmodtimestatCalib[m]->getP(0,s)->Fill(i);} else if (raw->getTime(i+1) == 0){ mhMdcmodtimestatCalib[m]->getP(0,s)->Fill(6);} else { mhMdcmodtimestatCalib[m]->getP(0,s)->Fill(7);} } } } //------------------------------------------------------------------ } } // end raw loop //---------------Trend hists raw---------------------------------- HOnlineMonHistAddon* mhMdcMboTrendMod[4] = { get("hMdcMboTrendMod0"), get("hMdcMboTrendMod1"), get("hMdcMboTrendMod2"), get("hMdcMboTrendMod3") }; if(mhMdcMboTrendMod[0] && mhMdcMboTrendMod[1] && mhMdcMboTrendMod[2] && mhMdcMboTrendMod[3] && get("hMdcMboTrendCount") ){ for(Int_t sec = 0; sec < 6; sec ++){ for(Int_t mod = 0; mod < 4; mod ++){ if(evtCt%mhMdcMboTrendMod[mod]->getRefreshRate() == 0 && evtCt > 0){ mhMdcMboTrendMod[mod]->fill(0,sec,get("hMdcMboTrendCount")->getP()->GetBinContent(sec*4+mod+1)); } get("hMdcMboTrendCount")->getP()->SetBinContent(sec*4+mod+1,0); } } } for(Int_t mod = 0; mod < 4; mod ++){ if( !mhMdctime1RawMeanTrendMod[mod] || !mhMdctime1RawMeanTrendModtemp[mod]) continue; if(evtCt%mhMdctime1RawMeanTrendMod[mod]->getRefreshRate() != 0 && evtCt > 0) continue; for(Int_t sec = 0; sec < 6; sec ++){ mhMdctime1RawMeanTrendMod[mod]->fill(0,sec,mhMdctime1RawMeanTrendModtemp[mod]->getP(0,sec)->GetMean()); mhMdctime1RawMeanTrendModtemp[mod]->getP(0,sec)->Reset(); } } //------------------------------------------------------------- } if(mdcCal1Cat){ HMdcCal1* cal1; Int_t s,m,l,c; s=m=l=c=0; Float_t time1,time2; //------------------------ group hists for easy filling ----------------- HOnlineMonHistAddon* mhMdctime1Cal1MeanTrendMod[4] = { get("hMdctime1Cal1MeanTrendMod0"), get("hMdctime1Cal1MeanTrendMod1"), get("hMdctime1Cal1MeanTrendMod2"), get("hMdctime1Cal1MeanTrendMod3") }; HOnlineMonHistAddon* mhMdctime1Cal1MeanTrendModtemp[4] = { get("hMdctime1Cal1MeanTrendMod0temp"), get("hMdctime1Cal1MeanTrendMod1temp"), get("hMdctime1Cal1MeanTrendMod2temp"), get("hMdctime1Cal1MeanTrendMod3temp") }; HOnlineMonHistAddon* mhMdctime1Mod[4] = { get("hMdctime1Mod0"), get("hMdctime1Mod1"), get("hMdctime1Mod2"), get("hMdctime1Mod3") }; HOnlineMonHistAddon* mhMdctime2Mod[4] = { get("hMdctime2Mod0"), get("hMdctime2Mod1"), get("hMdctime2Mod2"), get("hMdctime2Mod3") }; HOnlineMonHistAddon* mhMdctime12Mod[4] = { get("hMdctime12Mod0"), get("hMdctime12Mod1"), get("hMdctime12Mod2"), get("hMdctime12Mod3") }; HOnlineMonHistAddon* mhMdclayer[6][4] = { {get("hMdclayerS0M0"),get("hMdclayerS0M1"),get("hMdclayerS0M2"),get("hMdclayerS0M3") }, {get("hMdclayerS1M0"),get("hMdclayerS1M1"),get("hMdclayerS1M2"),get("hMdclayerS1M3") }, {get("hMdclayerS2M0"),get("hMdclayerS2M1"),get("hMdclayerS2M2"),get("hMdclayerS2M3") }, {get("hMdclayerS3M0"),get("hMdclayerS3M1"),get("hMdclayerS3M2"),get("hMdclayerS3M3") }, {get("hMdclayerS4M0"),get("hMdclayerS4M1"),get("hMdclayerS4M2"),get("hMdclayerS4M3") }, {get("hMdclayerS5M0"),get("hMdclayerS5M1"),get("hMdclayerS5M2"),get("hMdclayerS5M3") } }; //----------------------------------------------------------------------- for(Int_t i = 0; i < mdcCal1Cat->getEntries(); i ++){ cal1 = (HMdcCal1*)mdcCal1Cat->getObject(i); if(cal1){ cal1->getAddress(s,m,l,c); time1 = cal1->getTime1(); time2 = cal1->getTime2(); get("hMdccal1hits") ->getP()->Fill(m,s); get("hMdctime1Cal1MeanTrendtemp")->getP()->Fill(time1); if(mhMdctime1Cal1MeanTrendModtemp[m]) mhMdctime1Cal1MeanTrendModtemp[m]->getP(0,s)->Fill(time1); if(get("hMdctime1Cal1")) { get("hMdctime1Cal1")->getP(0,0)->Fill(time1); get("hMdctime1Cal1")->getP(0,1)->Fill(time2); } if(get("hMdccal1hitstemp")) get("hMdccal1hitstemp")->getP()->Fill(m,s); if(mhMdclayer[s][m]) mhMdclayer[s][m] ->getP(0,l)->Fill(c); if(mhMdctime1Mod[m]) mhMdctime1Mod[m] ->getP(0,s)->Fill(time1); if(mhMdctime2Mod[m]) mhMdctime2Mod[m] ->getP(0,s)->Fill(time2); if(mhMdctime12Mod[m]) mhMdctime12Mod[m] ->getP(0,s)->Fill(time2-time1); if(get("hMdctime1_12")) get("hMdctime1_12")->fill(s,m,time1,time2-time1); } } //---------------Trend hists cal1---------------------------------- if(get("hMdctime1Cal1MeanTrend") && get("hMdctime1Cal1MeanTrendtemp") && evtCt%get("hMdctime1Cal1MeanTrend")->getRefreshRate() == 0 && evtCt > 0){ get("hMdctime1Cal1MeanTrend")->fill(get("hMdctime1Cal1MeanTrendtemp")->getP()->GetMean()); get("hMdctime1Cal1MeanTrendtemp")->getP()->Reset(); } if(get("hMdccal1hitstemp") && get("hMdccal1hitstrend") && evtCt%get("hMdccal1hitstrend")->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ get("hMdccal1hitstrend")->fill(sec,mod,get("hMdccal1hitstemp")->getP()->GetBinContent(mod+1,sec+1)); get("hMdccal1hitstemp")->getP()->SetBinContent(mod+1,sec+1,0); } } } for(Int_t mod = 0; mod < 4; mod ++){ if( !mhMdctime1Cal1MeanTrendMod[mod] || !mhMdctime1Cal1MeanTrendModtemp[mod]) continue; if(evtCt%mhMdctime1Cal1MeanTrendMod[mod]->getRefreshRate() != 0 && evtCt > 0) continue; for(Int_t sec = 0; sec < 6; sec ++){ mhMdctime1Cal1MeanTrendMod[mod]->fill(0,sec,mhMdctime1Cal1MeanTrendModtemp[mod]->getP(0,sec)->GetMean()); mhMdctime1Cal1MeanTrendModtemp[mod]->getP(0,sec)->Reset(); } } //------------------------------------------------------------- //--------------- cut stat ----------------------------------- HMdcCutStat* cutstat = HMdcCutStat::getExObject(); if(cutstat && get("hMdccutstat")) { if(evtCt%get("hMdccutstat")->getRefreshRate() == 0 && evtCt > 0){ Int_t t1,t2,t1t2,wire,t1_t1t2,cutall,allhits; for(Int_t mod = 0; mod < 4; mod ++) { for(Int_t sec = 0; sec < 6; sec ++) { cutstat->getCal1StatCut(sec,mod,&t1,&t2,&t1t2,&wire,&t1_t1t2,&cutall,&allhits); if(allhits!=0){ get("hMdccutstat")->getP(0,1)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-t1) /allhits); //3 get("hMdccutstat")->getP(0,2)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-t1t2) /allhits); //5 get("hMdccutstat")->getP(0,3)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-cutall) /allhits); //4 get("hMdccutstat")->getP(0,0)->SetBinContent(mod*6+sec+1,(Float_t)allhits/allhits); //2 } } } if(get("hMdccutstat")->getResetable() == 1) cutstat->clear(); } } //------------------------------------------------------------- } //############################################################################### // do reset if needed mapHolder::resetHists(evtCt); return kTRUE; }