#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 "hmdclookupgeom.h" #include "hmdclookupraw.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; struct mdcP { HOnlineMonHistAddon* hMdctime1Cal1 =0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrend = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendtemp = 0; HOnlineMonHistAddon* hMdccutstat = 0; HOnlineMonHistAddon* hMdccal1hits = 0; HOnlineMonHistAddon* hMdccal1hitstemp = 0; HOnlineMonHistAddon* hMdccal1hitstrend = 0; HOnlineMonHistAddon* hMdcrawError_Stat = 0 ; HOnlineMonHistAddon* hMdclayerS0M0 = 0; HOnlineMonHistAddon* hMdclayerS1M0 = 0; HOnlineMonHistAddon* hMdclayerS2M0 = 0; HOnlineMonHistAddon* hMdclayerS3M0 = 0; HOnlineMonHistAddon* hMdclayerS4M0 = 0; HOnlineMonHistAddon* hMdclayerS5M0 = 0; HOnlineMonHistAddon* hMdclayerS0M1 = 0; HOnlineMonHistAddon* hMdclayerS1M1 = 0; HOnlineMonHistAddon* hMdclayerS2M1 = 0; HOnlineMonHistAddon* hMdclayerS3M1 = 0; HOnlineMonHistAddon* hMdclayerS4M1 = 0; HOnlineMonHistAddon* hMdclayerS5M1 = 0; HOnlineMonHistAddon* hMdclayerS0M2 = 0; HOnlineMonHistAddon* hMdclayerS1M2 = 0; HOnlineMonHistAddon* hMdclayerS2M2 = 0; HOnlineMonHistAddon* hMdclayerS3M2 = 0; HOnlineMonHistAddon* hMdclayerS4M2 = 0; HOnlineMonHistAddon* hMdclayerS5M2 = 0; HOnlineMonHistAddon* hMdclayerS0M3 = 0; HOnlineMonHistAddon* hMdclayerS1M3 = 0; HOnlineMonHistAddon* hMdclayerS2M3 = 0; HOnlineMonHistAddon* hMdclayerS3M3 = 0; HOnlineMonHistAddon* hMdclayerS4M3 = 0; HOnlineMonHistAddon* hMdclayerS5M3 = 0; HOnlineMonHistAddon* hMdcmbotdc = 0; HOnlineMonHistAddon* hMdcmbotdcMissing = 0; HOnlineMonHistAddon* hMdctime1Mod0 = 0; HOnlineMonHistAddon* hMdctime1Mod1 = 0; HOnlineMonHistAddon* hMdctime1Mod2 = 0; HOnlineMonHistAddon* hMdctime1Mod3 = 0; HOnlineMonHistAddon* hMdctime2Mod0 = 0; HOnlineMonHistAddon* hMdctime2Mod1 = 0; HOnlineMonHistAddon* hMdctime2Mod2 = 0; HOnlineMonHistAddon* hMdctime2Mod3 = 0; HOnlineMonHistAddon* hMdctime12Mod0 = 0; HOnlineMonHistAddon* hMdctime12Mod1 = 0; HOnlineMonHistAddon* hMdctime12Mod2 = 0; HOnlineMonHistAddon* hMdctime12Mod3 = 0; HOnlineMonHistAddon* hMdctime1_12 = 0; HOnlineMonHistAddon* hMdctime1rawMod0 = 0; HOnlineMonHistAddon* hMdctime1rawMod1 = 0; HOnlineMonHistAddon* hMdctime1rawMod2 = 0; HOnlineMonHistAddon* hMdctime1rawMod3 = 0; HOnlineMonHistAddon* hMdctime2rawMod0 = 0; HOnlineMonHistAddon* hMdctime2rawMod1 = 0; HOnlineMonHistAddon* hMdctime2rawMod2 = 0; HOnlineMonHistAddon* hMdctime2rawMod3 = 0; HOnlineMonHistAddon* hMdctime12rawMod0 = 0; HOnlineMonHistAddon* hMdctime12rawMod1 = 0; HOnlineMonHistAddon* hMdctime12rawMod2 = 0; HOnlineMonHistAddon* hMdctime12rawMod3 = 0; HOnlineMonHistAddon* hMdctime1_12raw = 0; HOnlineMonHistAddon* hMdctime1_12rawMod0_mbo = 0; HOnlineMonHistAddon* hMdctime1_12rawMod1_mbo = 0; HOnlineMonHistAddon* hMdctime1_12rawMod2_mbo = 0; HOnlineMonHistAddon* hMdctime1_12rawMod3_mbo = 0; HOnlineMonHistAddon* hMdcMbo = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod0 = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod1 = 0 ; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod2 = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod3 = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod0temp = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod1temp = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod2temp = 0; HOnlineMonHistAddon* hMdctime1RawMeanTrendMod3temp = 0; HOnlineMonHistAddon* hMdcMboTrendMod0 = 0; HOnlineMonHistAddon* hMdcMboTrendMod1 = 0; HOnlineMonHistAddon* hMdcMboTrendMod2 = 0; HOnlineMonHistAddon* hMdcMboTrendMod3 = 0; HOnlineMonHistAddon* hMdcMboTrendCount = 0; HOnlineMonHistAddon* hMdcmbotdcCalib = 0; HOnlineMonHistAddon* hMdcmodtimestatCalibMod0 = 0; HOnlineMonHistAddon* hMdcmodtimestatCalibMod1 = 0; HOnlineMonHistAddon* hMdcmodtimestatCalibMod2 = 0; HOnlineMonHistAddon* hMdcmodtimestatCalibMod3 = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod0 = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod1 = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod2 = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod3 = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod0temp = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod1temp = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod2temp = 0; HOnlineMonHistAddon* hMdctime1Cal1MeanTrendMod3temp = 0; HOnlineMonHistAddon* hMdcTotMeanTrend = 0; HOnlineMonHistAddon* hMdcTotMeanTrendtemp = 0; HOnlineMonHistAddon* hMdcTotMeanNoiseTrend = 0; HOnlineMonHistAddon* hMdcTotMeanNoiseTrendtemp = 0; HOnlineMonHistAddon* hMdcTime1Trend = 0; HOnlineMonHistAddon* hMdcTime1Trendtemp = 0; HOnlineMonHistAddon* hMdcTotMean = 0; HOnlineMonHistAddon* hMdcTotMeantemp = 0; HOnlineMonHistAddon* hMdcTime1Mean = 0; HOnlineMonHistAddon* hMdcTime1Meantemp = 0; HOnlineMonHistAddon* hMdcWiresEventMean = 0; HOnlineMonHistAddon* hMdcWiresEventMeantemp = 0; HOnlineMonHistAddon* hMdcFiredWiresChamber = 0; HOnlineMonHistAddon* hMdcFiredWiresChambertemp = 0; HOnlineMonHistAddon* hMdcMboVsChamber = 0; HOnlineMonHistAddon* hMdcMboVsChamberCalibration = 0; HOnlineMonHistAddon* hMdcMboVsChamberMissing = 0; HOnlineMonHistAddon* hMdcDboVsChamber = 0; HOnlineMonHistAddon* hMdcTotVsChamber = 0; HOnlineMonHistAddon* hMdcTime1VsChamber = 0; HOnlineMonHistAddon* hMdcMboRateTrend = 0; HOnlineMonHistAddon* hMdcMboRateTrendtemp = 0; HOnlineMonHistAddon* hMdcWireDistr = 0; HOnlineMonHistAddon* hMdcWireVsLayer= 0; }; mdcP* p; Bool_t createHistMdc(TList& histpool){ mapHolder::setMap(mdcMap); // make mdcMap currentMap //####################### USER CODE ############################################## // define monitoring hists const Char_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 LEGEND#-1:-1:-1:-1:no" ,"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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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#1:10000000 LEGEND#0.90:0.98:0.98:0.5:L%i" ,"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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdcmbotdcMissing TITLE#Mdc_mbo_tdc ACTIVE#1 RESET#0 REFRESH#5000000 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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.98:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.98:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.98:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.98:0.5:S%i" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12 TITLE#t2-t1:t1 ACTIVE#1 RESET#1 REFRESH#5000 BIN#45:-50:400:100:0:500 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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod0 TITLE#MdcI_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#250:0:500: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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod1 TITLE#MdcII_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#250:0:500: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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod2 TITLE#MdcIII_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#250:0:500: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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"FORMAT#array TYPE#1F NAME#hMdctime12rawMod3 TITLE#MdcIV_time2-time1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#250:0:500: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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12raw TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#5000 BIN#64:0:2048:80:0:800 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12rawMod0_mbo TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#50000 BIN#64:0:2048:40:0:400 SIZE#6:16 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12rawMod1_mbo TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#50000 BIN#64:0:2048:40:0:400 SIZE#6:16 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12rawMod2_mbo TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#50000 BIN#64:0:2048:40:0:400 SIZE#6:16 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdctime1_12rawMod3_mbo TITLE#t2-t1:t1raw ACTIVE#1 RESET#1 REFRESH#50000 BIN#64:0:2048:40:0:400 SIZE#6:16 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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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#-99:-99 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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#-99:-99 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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#-99:-99 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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#-99:-99 LEGEND#0.90:0.98:0.99:0.5:S%i" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#trendarray TYPE#1F NAME#hMdcTotMeanTrend TITLE#ToT_mean_trend ACTIVE#1 RESET#0 REFRESH#500 BIN#100:-50000:0:0:0:0 SIZE#1:24 AXIS#previous_events:mean_time2-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:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTotMeanTrendtemp TITLE#ToT_trendtemp ACTIVE#1 RESET#1 REFRESH#50000 BIN#1000:0:1000:0:0:0 SIZE#1:24 AXIS#trend:mean_time2-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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#trendarray TYPE#1F NAME#hMdcTotMeanNoiseTrend TITLE#ToT_Noise_mean_trend ACTIVE#1 RESET#0 REFRESH#500 BIN#100:-50000:0:0:0:0 SIZE#1:24 AXIS#previous_events:mean_time2-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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTotMeanNoiseTrendtemp TITLE#ToT_Noise_trendtemp ACTIVE#1 RESET#1 REFRESH#50000 BIN#1000:0:1000:0:0:0 SIZE#1:24 AXIS#trend:mean_time2-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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#trendarray TYPE#1F NAME#hMdcTime1Trend TITLE#time1_mean_trend ACTIVE#1 RESET#0 REFRESH#500 BIN#100:-50000:0:0:0:0 SIZE#1:24 AXIS#previous_events: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#-99:-99 LEGEND#-1:-1:-1:-1:no " ,"FORMAT#array TYPE#1F NAME#hMdcTime1Trendtemp TITLE#Mdc_time1_trendtemp ACTIVE#1 RESET#1 REFRESH#50000 BIN#3000:0:3000:0:0:0 SIZE#1:24 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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTotMean TITLE#ToT_mean ACTIVE#1 RESET#0 REFRESH#500 BIN#144:0:144:0:0:0 SIZE#1:3 AXIS#no:mean_time2-time1_[ns]: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#20:400 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTotMeantemp TITLE#Mdc_ToT_All ACTIVE#1 RESET#1 REFRESH#5000 BIN#1000:0:1000:0:0:0 SIZE#3:144 AXIS#time2-time1_[ns]:no: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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTime1Mean TITLE#Time1_mean ACTIVE#1 RESET#0 REFRESH#500 BIN#144:0:144:0:0:0 SIZE#1:3 AXIS#no:mean_time1_[ns]: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcTime1Meantemp TITLE#Time1_mean ACTIVE#1 RESET#1 REFRESH#5000 BIN#5000:0:5000:0:0:0 SIZE#3:144 AXIS#time1_[ns]:no: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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcWiresEventMean TITLE#fired_wires_per_event ACTIVE#1 RESET#0 REFRESH#500 BIN#144:0:144:0:0:0 SIZE#1:3 AXIS#no:fired_wires_per_event: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcWiresEventMeantemp TITLE#fired_wires_per_event ACTIVE#1 RESET#1 REFRESH#5000 BIN#144:0:144:0:0:0 SIZE#2:3 AXIS#no:fired_wires_per_event: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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcFiredWiresChamber TITLE#fired_wires_distribution ACTIVE#1 RESET#0 REFRESH#500 BIN#200:0:200:0:0:0 SIZE#6:4 AXIS#fired_wires_per_event: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcFiredWiresChambertemp TITLE#fired_wires_distribution ACTIVE#1 RESET#1 REFRESH#5000 BIN#200:0:200:0:0:0 SIZE#6:4 AXIS#fired_wires_per_event: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdcMboVsChamber TITLE#Mbo_counts ACTIVE#1 RESET#1 REFRESH#5000 BIN#24:0:24:16:0:16 SIZE#1:3 AXIS#no:mbo:counts 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#mon TYPE#2F NAME#hMdcMboVsChamberCalibration TITLE#Mbo_Calibration_counts ACTIVE#1 RESET#1 REFRESH#5000 BIN#24:0:24:16:0:16 SIZE#0:0 AXIS#no:mbo:counts 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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#mon TYPE#2F NAME#hMdcMboVsChamberMissing TITLE#Mbo_per_plane_sector ACTIVE#1 RESET#0 REFRESH#5000000 BIN#24:0:24:16:0:16 SIZE#0:0 AXIS#no: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#2F NAME#hMdcDboVsChamber TITLE#DBO_counts ACTIVE#1 RESET#1 REFRESH#5000 BIN#24:0:24:96:0:96 SIZE#1:3 AXIS#no:no:counts DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#mon TYPE#2F NAME#hMdcTotVsChamber TITLE#ToT_per_chamber_Time1Cut ACTIVE#1 RESET#1 REFRESH#5000 BIN#24:0:24:300:0:300 SIZE#0:0 AXIS#no:time2-time1_[ns]: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#mon TYPE#2F NAME#hMdcTime1VsChamber TITLE#Time1_per_chamber_TotCut ACTIVE#1 RESET#1 REFRESH#5000 BIN#24:0:24:1000:0:1000 SIZE#0:0 AXIS#no:time1_[ns]: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 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#trendarray TYPE#1F NAME#hMdcMboRateTrend TITLE#MBO_rate_trend ACTIVE#1 RESET#0 REFRESH#500 BIN#100:-50000:0:0:0:0 SIZE#24:16 AXIS#previous_events:MBO-Hits/event_OK: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#-5:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcMboRateTrendtemp TITLE#MBO_rate_trendtemp ACTIVE#1 RESET#1 REFRESH#2000 BIN#1000:0:1000:0:0:0 SIZE#24:17 AXIS#trend:mean_Hits/MBO/event: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#-99:-99 LEGEND#-1:-1:-1:-1:no" ,"FORMAT#array TYPE#1F NAME#hMdcWireDistr TITLE#Mdc_Wire_Distribution ACTIVE#1 RESET#1 REFRESH#5000 BIN#210:0:210:0:0:0 SIZE#1:24 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 LEGEND#0.90:0.98:0.98:0.5:P%i" ,"FORMAT#mon TYPE#2F NAME#hMdcWireVsLayer TITLE#all_wire_counts ACTIVE#1 RESET#1 REFRESH#5000 BIN#144:0:144:200:0:200 SIZE#1:1 AXIS#no:wire:counts DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#0:0 LINE#0:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99 LEGEND#-1:-1:-1:-1:no" }; Int_t colorsSector[6] = {kRed,kBlue,kMagenta,kGreen+2,kBlack,kOrange-3}; Int_t colorsPlane[4] = {kOrange,kBlue,kMagenta,kGreen}; 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(Char_t*),hists,histpool); p = new mdcP(); p->hMdctime1Cal1 = get("hMdctime1Cal1"); p->hMdctime1Cal1MeanTrend = get("hMdctime1Cal1MeanTrend"); p->hMdctime1Cal1MeanTrendtemp = get("hMdctime1Cal1MeanTrendtemp"); p->hMdccutstat = get("hMdccutstat"); p->hMdccal1hits = get("hMdccal1hits"); p->hMdccal1hitstemp = get("hMdccal1hitstemp"); p->hMdccal1hitstrend = get("hMdccal1hitstrend"); p->hMdcrawError_Stat = get("hMdcrawError_Stat"); ; p->hMdclayerS0M0 = get("hMdclayerS0M0"); p->hMdclayerS1M0 = get("hMdclayerS1M0"); p->hMdclayerS2M0 = get("hMdclayerS2M0"); p->hMdclayerS3M0 = get("hMdclayerS3M0"); p->hMdclayerS4M0 = get("hMdclayerS4M0"); p->hMdclayerS5M0 = get("hMdclayerS5M0"); p->hMdclayerS0M1 = get("hMdclayerS0M1"); p->hMdclayerS1M1 = get("hMdclayerS1M1"); p->hMdclayerS2M1 = get("hMdclayerS2M1"); p->hMdclayerS3M1 = get("hMdclayerS3M1"); p->hMdclayerS4M1 = get("hMdclayerS4M1"); p->hMdclayerS5M1 = get("hMdclayerS5M1"); p->hMdclayerS0M2 = get("hMdclayerS0M2"); p->hMdclayerS1M2 = get("hMdclayerS1M2"); p->hMdclayerS2M2 = get("hMdclayerS2M2"); p->hMdclayerS3M2 = get("hMdclayerS3M2"); p->hMdclayerS4M2 = get("hMdclayerS4M2"); p->hMdclayerS5M2 = get("hMdclayerS5M2"); p->hMdclayerS0M3 = get("hMdclayerS0M3"); p->hMdclayerS1M3 = get("hMdclayerS1M3"); p->hMdclayerS2M3 = get("hMdclayerS2M3"); p->hMdclayerS3M3 = get("hMdclayerS3M3"); p->hMdclayerS4M3 = get("hMdclayerS4M3"); p->hMdclayerS5M3 = get("hMdclayerS5M3"); p->hMdcmbotdc = get("hMdcmbotdc"); p->hMdcmbotdcMissing = get("hMdcmbotdcMissing"); p->hMdctime1Mod0 = get("hMdctime1Mod0"); p->hMdctime1Mod1 = get("hMdctime1Mod1"); p->hMdctime1Mod2 = get("hMdctime1Mod2"); p->hMdctime1Mod3 = get("hMdctime1Mod3"); p->hMdctime2Mod0 = get("hMdctime2Mod0"); p->hMdctime2Mod1 = get("hMdctime2Mod1"); p->hMdctime2Mod2 = get("hMdctime2Mod2"); p->hMdctime2Mod3 = get("hMdctime2Mod3"); p->hMdctime12Mod0 = get("hMdctime12Mod0"); p->hMdctime12Mod1 = get("hMdctime12Mod1"); p->hMdctime12Mod2 = get("hMdctime12Mod2"); p->hMdctime12Mod3 = get("hMdctime12Mod3"); p->hMdctime1_12 = get("hMdctime1_12"); p->hMdctime1rawMod0 = get("hMdctime1rawMod0"); p->hMdctime1rawMod1 = get("hMdctime1rawMod1"); p->hMdctime1rawMod2 = get("hMdctime1rawMod2"); p->hMdctime1rawMod3 = get("hMdctime1rawMod3"); p->hMdctime2rawMod0 = get("hMdctime2rawMod0"); p->hMdctime2rawMod1 = get("hMdctime2rawMod1"); p->hMdctime2rawMod2 = get("hMdctime2rawMod2"); p->hMdctime2rawMod3 = get("hMdctime2rawMod3"); p->hMdctime12rawMod0 = get("hMdctime12rawMod0"); p->hMdctime12rawMod1 = get("hMdctime12rawMod1"); p->hMdctime12rawMod2 = get("hMdctime12rawMod2"); p->hMdctime12rawMod3 = get("hMdctime12rawMod3"); p->hMdctime1_12raw = get("hMdctime1_12raw"); p->hMdctime1_12rawMod0_mbo = get("hMdctime1_12rawMod0_mbo"); p->hMdctime1_12rawMod1_mbo = get("hMdctime1_12rawMod1_mbo"); p->hMdctime1_12rawMod2_mbo = get("hMdctime1_12rawMod2_mbo"); p->hMdctime1_12rawMod3_mbo = get("hMdctime1_12rawMod3_mbo"); p->hMdcMbo = get("hMdcMbo"); p->hMdctime1RawMeanTrendMod0 = get("hMdctime1RawMeanTrendMod0"); p->hMdctime1RawMeanTrendMod1 = get("hMdctime1RawMeanTrendMod1"); ; p->hMdctime1RawMeanTrendMod2 = get("hMdctime1RawMeanTrendMod2"); p->hMdctime1RawMeanTrendMod3 = get("hMdctime1RawMeanTrendMod3"); p->hMdctime1RawMeanTrendMod0temp = get("hMdctime1RawMeanTrendMod0temp"); p->hMdctime1RawMeanTrendMod1temp = get("hMdctime1RawMeanTrendMod1temp"); p->hMdctime1RawMeanTrendMod2temp = get("hMdctime1RawMeanTrendMod2temp"); p->hMdctime1RawMeanTrendMod3temp = get("hMdctime1RawMeanTrendMod3temp"); p->hMdcMboTrendMod0 = get("hMdcMboTrendMod0"); p->hMdcMboTrendMod1 = get("hMdcMboTrendMod1"); p->hMdcMboTrendMod2 = get("hMdcMboTrendMod2"); p->hMdcMboTrendMod3 = get("hMdcMboTrendMod3"); p->hMdcMboTrendCount = get("hMdcMboTrendCount"); p->hMdcmbotdcCalib = get("hMdcmbotdcCalib"); p->hMdcmodtimestatCalibMod0 = get("hMdcmodtimestatCalibMod0"); p->hMdcmodtimestatCalibMod1 = get("hMdcmodtimestatCalibMod1"); p->hMdcmodtimestatCalibMod2 = get("hMdcmodtimestatCalibMod2"); p->hMdcmodtimestatCalibMod3 = get("hMdcmodtimestatCalibMod3"); p->hMdctime1Cal1MeanTrendMod0 = get("hMdctime1Cal1MeanTrendMod0"); p->hMdctime1Cal1MeanTrendMod1 = get("hMdctime1Cal1MeanTrendMod1"); p->hMdctime1Cal1MeanTrendMod2 = get("hMdctime1Cal1MeanTrendMod2"); p->hMdctime1Cal1MeanTrendMod3 = get("hMdctime1Cal1MeanTrendMod3"); p->hMdctime1Cal1MeanTrendMod0temp = get("hMdctime1Cal1MeanTrendMod0temp"); p->hMdctime1Cal1MeanTrendMod1temp = get("hMdctime1Cal1MeanTrendMod1temp"); p->hMdctime1Cal1MeanTrendMod2temp = get("hMdctime1Cal1MeanTrendMod2temp"); p->hMdctime1Cal1MeanTrendMod3temp = get("hMdctime1Cal1MeanTrendMod3temp"); p->hMdcTotMeanTrend = get("hMdcTotMeanTrend"); p->hMdcTotMeanTrendtemp = get("hMdcTotMeanTrendtemp"); p->hMdcTotMeanNoiseTrend = get("hMdcTotMeanNoiseTrend"); p->hMdcTotMeanNoiseTrendtemp = get("hMdcTotMeanNoiseTrendtemp"); p->hMdcTime1Trend = get("hMdcTime1Trend"); p->hMdcTime1Trendtemp = get("hMdcTime1Trendtemp"); p->hMdcTotMean = get("hMdcTotMean"); p->hMdcTotMeantemp = get("hMdcTotMeantemp"); p->hMdcTime1Mean = get("hMdcTime1Mean"); p->hMdcTime1Meantemp = get("hMdcTime1Meantemp"); p->hMdcWiresEventMean = get("hMdcWiresEventMean"); p->hMdcWiresEventMeantemp = get("hMdcWiresEventMeantemp"); p->hMdcFiredWiresChamber = get("hMdcFiredWiresChamber"); p->hMdcFiredWiresChambertemp = get("hMdcFiredWiresChambertemp"); p->hMdcMboVsChamber = get("hMdcMboVsChamber"); p->hMdcMboVsChamberCalibration = get("hMdcMboVsChamberCalibration"); p->hMdcMboVsChamberMissing = get("hMdcMboVsChamberMissing"); p->hMdcDboVsChamber = get("hMdcDboVsChamber"); p->hMdcTotVsChamber = get("hMdcTotVsChamber"); p->hMdcTime1VsChamber = get("hMdcTime1VsChamber"); p->hMdcMboRateTrend = get("hMdcMboRateTrend"); p->hMdcMboRateTrendtemp = get("hMdcMboRateTrendtemp"); p->hMdcWireDistr = get("hMdcWireDistr"); p->hMdcWireVsLayer = get("hMdcWireVsLayer"); //----------------------- 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]"); TRegexp regTime1RawMeanTrendMod("hMdctime1RawMeanTrendMod[0123]"); HOnlineMonHistAddon* addon = p->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 == "hMdcTotMean" ) { TLegend* leg = new TLegend(0.74,0.78,0.98,0.93,"","brNDC"); leg->AddEntry(p->hMdcTotMean->getP(0,0),"uncut","lpf"); leg->AddEntry(p->hMdcTotMean->getP(0,1),"Time Cuts","lpf"); leg->AddEntry(p->hMdcTotMean->getP(0,2),"noise","lpf"); p->hMdcTotMean->setLegend(leg); if(p->hMdcWiresEventMean) p->hMdcWiresEventMean->setLegend(leg); if(p->hMdcTime1Mean) p->hMdcTime1Mean->setLegend(leg); } if( name == "hMdcTotMeanTrend" || name=="hMdcTime1Trend" || name == "hMdcTotMeanNoiseTrend"|| name == "hMdcWireDistr"){ TLegend* leg = new TLegend(0.86,0.95,0.98,0.75,"","brNDC"); leg->SetMargin(0.5); for(Int_t m = 0; m < 4; m ++){ for(Int_t s = 0; s < 6; s ++){ addon->getP(0,s+m*6)->SetLineColor(colorsPlane[m]-s); // leg->AddEntry(p->hMdcTotMeanTrend")->getP(0,s+m*6),Form("P%i S%i",m,s),"lpf"); } addon->getP(0,0+m*6)->SetLineWidth(3); leg->AddEntry(p->hMdcTotMeanTrend->getP(0,0+m*6),Form("P%i",m),"lpf"); } p->hMdcTotMeanTrend->setLegend(leg); p->hMdcTime1Trend->setLegend(leg); p->hMdcTotMeanNoiseTrend->setLegend(leg); p->hMdcWireDistr->setLegend(leg); } if( name == "hMdcMboRateTrend" ){ TLegend* leg = new TLegend(0.86,0.95,0.98,0.75,"","brNDC"); leg->SetMargin(0.5); for(Int_t m = 0; m < 4; m ++){ for(Int_t s = 0; s < 6; s ++){ addon->getP(s+m*6,16)->SetLineColor(kGray); for(Int_t mb = 0; mb < 16; mb ++){ addon->getP(s+m*6,mb)->SetLineColor(colorsPlane[m]-s); } } addon->getP(0+m*6,0)->SetLineWidth(3); leg->AddEntry(p->hMdcMboRateTrend->getP(0+m*6,0),Form("P%i",m),"lpf"); } p->hMdcMboRateTrend->setLegend(leg); } if(name == "hMdcTotMean" || name == "hMdcWiresEventMean" || name == "hMdcTime1Mean" ) { addon->getP(0,0)->SetLineColor(kBlack); addon->getP(0,1)->SetLineColor(kGreen+2); addon->getP(0,2)->SetLineColor(kOrange); for(Int_t i=0;i<24;i++){ addon->getP(0,3)->GetXaxis()->SetBinLabel(6*i+1,mdclabel[i]); } addon->getP(0,3)->GetXaxis()->SetLabelSize(0.05); addon->getP(0,3)->LabelsOption("v"); addon->getP(0,3)->SetTitleOffset(1.15,"X"); } if( name == "hMdcMboVsChamberCalibration" || name == "hMdcTotVsChamber" || name == "hMdcTime1VsChamber" || name == "hMdcWireVsLayer" ) { for(Int_t i=0;i<24;i++){ if(name == "hMdcWireVsLayer") addon->getP()->GetXaxis()->SetBinLabel(6*i+1,mdclabel[i]); else addon->getP()->GetXaxis()->SetBinLabel(i+1,mdclabel[i]); } addon->getP()->GetXaxis()->SetLabelSize(0.05); addon->getP()->LabelsOption("v"); addon->getP()->SetTitleOffset(1.15,"X"); } if(name == "hMdcMboVsChamber" || name == "hMdcDboVsChamber" ) { for(Int_t j=0;j<3;j++){ for(Int_t i=0;i<24;i++){ addon->getP(0,j)->GetXaxis()->SetBinLabel(i+1,mdclabel[i]); } for(Int_t i=0;i<16;i++){ if(name == "hMdcDboVsChamber" ) addon->getP(0,j)->GetYaxis()->SetBinLabel(6*i+1,Form("MB %i",i)); } addon->getP(0,j)->GetXaxis()->SetLabelSize(0.05); addon->getP(0,j)->LabelsOption("v"); addon->getP(0,j)->SetTitleOffset(1.15,"X"); TString newTitle = addon->getP(0,j)->GetTitle(); if(j==0) newTitle += "_all_Hits"; if(j==1) newTitle += "_real_Hits"; if(j==2) newTitle += "_Noise"; addon->getP(0,j)->SetTitle(newTitle); } } 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]); } } if(name(regTime1RawMeanTrendMod) != "") { for(Int_t s = 0; s < 6; s ++) { addon->getP(0,s)->SetLineColor(colorsSector[s]); } } } } // end loop map //------------------------------------------------------------------------- if(p->hMdcmbotdcMissing && p->hMdcmbotdc && p->hMdcMboVsChamberMissing) { HMdcLookupGeom* lookupgeom = (HMdcLookupGeom*)gHades->getRuntimeDb()->getContainer("MdcLookupGeom"); for(Int_t s = 0; s < 6; s ++){ for(Int_t m = 0; m < 4; m ++){ if(gHades->getSetup()->getDetector("Mdc")->getModule(s,m) == 0) continue; Int_t nMb = (*lookupgeom)[s][m].getSize(); for(Int_t mb = 0; mb < nMb; mb ++){ Int_t nTdc = (*lookupgeom)[s][m][mb].getSize(); if(nTdc < 0 ) continue; for(Int_t t = 0; t < nTdc/8; t ++){ for(Int_t ti = 0; ti < 8; ti ++){ Int_t c = (*lookupgeom)[s][m][mb][t*8+ti].getNCell(); Int_t l = (*lookupgeom)[s][m][mb][t*8+ti].getNLayer(); if(c < 0 || l < 0) { if(p->hMdcmbotdcMissing) p->hMdcmbotdcMissing->fill(s,m,mb,t); } } } // Fill missing Tdcs Int_t NmissTDC(0); for(Int_t t = nTdc; t < 96; t ++){ p->hMdcmbotdcMissing->fill(s,m,mb,t/8); NmissTDC++; } p->hMdcMboVsChamberMissing->getP()->SetBinContent(1+m*6+s,1+mb,NmissTDC/96); } // fill missing Mbos for(Int_t mb = nMb; mb < 16; mb ++){ /// no missing MBOs in DB all chambers have nMB = 16 ! } } } HOnlineMonStack* stack; for(Int_t s = 0; s < 6; s ++){ for(Int_t m = 0; m < 4; m ++){ stack = new HOnlineMonStack(Form("hMdcmbotdcStack[%i][%i]",s,m)); stack->addToStack(p->hMdcmbotdc->getP(s,m),"OPT#colz"); stack->addToStack(p->hMdcmbotdcMissing->getP(s,m),"MARKER#-1:-1:3.0 OPT#text"); stack->setLogZ(kTRUE); stack->setGridX(kTRUE); stack->setGridY(kTRUE); mapHolder::addStack(stack,histpool); } } HOnlineMonStack* stackMboReal; stackMboReal = new HOnlineMonStack("hMdcMboVsChamberStack"); stackMboReal->addToStack(p->hMdcMboVsChamber->getP(0,0),"OPT#colz"); stackMboReal->addToStack(p->hMdcMboVsChamberMissing->getP(),"MARKER#-1:-1:3.0 OPT#text"); stackMboReal->setLogZ(kTRUE); stackMboReal->setGridX(kTRUE); stackMboReal->setGridY(kTRUE); mapHolder::addStack(stackMboReal,histpool); HOnlineMonStack* stackMboCal; stackMboCal = new HOnlineMonStack("hMdcMboVsChamberCalibrationStack"); stackMboCal->addToStack(p->hMdcMboVsChamberCalibration->getP(),"OPT#colz"); stackMboCal->addToStack(p->hMdcMboVsChamberMissing->getP(),"MARKER#-1:-1:3.0 OPT#text"); stackMboCal->setLogZ(kTRUE); stackMboCal->setGridX(kTRUE); stackMboCal->setGridY(kTRUE); mapHolder::addStack(stackMboCal,histpool); for(Int_t s = 0; s < 6; s ++) { if(p->hMdctime12rawMod0) p->hMdctime12rawMod0->getP(0,s)->SetLineWidth(2); if(p->hMdctime12rawMod1) p->hMdctime12rawMod1->getP(0,s)->SetLineWidth(2); if(p->hMdctime12rawMod2) p->hMdctime12rawMod2->getP(0,s)->SetLineWidth(2); if(p->hMdctime12rawMod3) p->hMdctime12rawMod3->getP(0,s)->SetLineWidth(2); if(p->hMdctime1rawMod0) p->hMdctime1rawMod0->getP(0,s)->SetLineWidth(2); if(p->hMdctime1rawMod1) p->hMdctime1rawMod1->getP(0,s)->SetLineWidth(2); if(p->hMdctime1rawMod2) p->hMdctime1rawMod2->getP(0,s)->SetLineWidth(2); if(p->hMdctime1rawMod3) p->hMdctime1rawMod3->getP(0,s)->SetLineWidth(2); if(p->hMdctime2rawMod0) p->hMdctime2rawMod0->getP(0,s)->SetLineWidth(2); if(p->hMdctime2rawMod1) p->hMdctime2rawMod1->getP(0,s)->SetLineWidth(2); if(p->hMdctime2rawMod2) p->hMdctime2rawMod2->getP(0,s)->SetLineWidth(2); if(p->hMdctime2rawMod3) p->hMdctime2rawMod3->getP(0,s)->SetLineWidth(2); } } 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); // lookup Table: HMdcLookupRaw* flookupRaw=(HMdcLookupRaw*)gHades -> getRuntimeDb()->getContainer("MdcLookupRaw"); const Float_t TotMinCut[4][6] = { {40, 40, 40, 40, 40, 40}, {40, 40, 40, 40, 40, 40}, {30, 30, 30, 30, 30, 30}, {30, 30, 30, 30, 30, 30}, }; ///drift time cuts: const Float_t Cal1Time1Max[4][6] = { // active { 110, 110, 110, 110, 110, 110}, {150, 150, 150, 150, 150, 150}, {200, 200, 200, 200, 200, 200}, {200, 200, 200, 200, 200, 200} }; // const Float_t Cal1Time1Max[4][6] = { // inactive // { 50000, 50000, 50000, 50000, 50000, 50000}, // { 50000, 50000, 50000, 50000, 50000, 50000}, // { 50000, 50000, 50000, 50000, 50000, 50000}, // { 50000, 50000, 50000, 50000, 50000, 50000} // }; const Int_t TDCtoDBOmapping[12] = {0,1,0,1,2,3,2,3,4,5,4,5}; 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(p->hMdcrawError_Stat) { ((TH2*)p->hMdcrawError_Stat->getP(0,m))->Fill(s*16+mb,oepWordsToLinIndex[w],word); // ((TH2*)p->hMdcrawError_Stat->getP(0,m))->Fill(word); } } } } } } if(mdcRawCat) { HOnlineMonHistAddon* mhMdctime1rawMod[4] = { p->hMdctime1rawMod0, p->hMdctime1rawMod1, p->hMdctime1rawMod2, p->hMdctime1rawMod3 }; HOnlineMonHistAddon* mhMdctime2rawMod[4] = { p->hMdctime2rawMod0, p->hMdctime2rawMod1, p->hMdctime2rawMod2, p->hMdctime2rawMod3 }; HOnlineMonHistAddon* mhMdctime12rawMod[4] = { p->hMdctime12rawMod0, p->hMdctime12rawMod1, p->hMdctime12rawMod2, p->hMdctime12rawMod3 }; HOnlineMonHistAddon* hMdctime1_12rawMod_mbo[4] = { p->hMdctime1_12rawMod0_mbo, p->hMdctime1_12rawMod1_mbo, p->hMdctime1_12rawMod2_mbo, p->hMdctime1_12rawMod3_mbo }; HOnlineMonHistAddon* mhMdcmodtimestatCalib[4] = { p->hMdcmodtimestatCalibMod0, p->hMdcmodtimestatCalibMod1, p->hMdcmodtimestatCalibMod2, p->hMdcmodtimestatCalibMod3 }; HOnlineMonHistAddon* mhMdctime1RawMeanTrendMod[4] = { p->hMdctime1RawMeanTrendMod0, p->hMdctime1RawMeanTrendMod1, p->hMdctime1RawMeanTrendMod2, p->hMdctime1RawMeanTrendMod3 }; HOnlineMonHistAddon* mhMdctime1RawMeanTrendModtemp[4] = { p->hMdctime1RawMeanTrendMod0temp, p->hMdctime1RawMeanTrendMod1temp, p->hMdctime1RawMeanTrendMod2temp, p->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,time2; time1=raw->getTime(1); time2=raw->getTime(2); if(gHades->isReal()){ if(p->hMdcmbotdc) p->hMdcmbotdc ->getP(s,m)->Fill((Axis_t)mb,(Axis_t)((Int_t)(ch/8))); if(p->hMdcMboTrendCount) p->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(p->hMdctime1_12raw) p->hMdctime1_12raw->fill(s,m,time1,time1-time2); if(hMdctime1_12rawMod_mbo[m]) hMdctime1_12rawMod_mbo[m]->fill(s,mb,time1,time1-time2); if(p->hMdcMbo) p->hMdcMbo ->fill(0,m,s,mb); } //--------------------------- calibration -------------------------- if(gHades->isCalibration()){ if(p->hMdcmbotdcCalib) p->hMdcmbotdcCalib->getP(s,m)->Fill((Axis_t)mb,(Axis_t)((Int_t)(ch/8))); if(p->hMdcMboVsChamberCalibration) p->hMdcMboVsChamberCalibration->getP() ->Fill(s+6*m,mb); 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] = { p->hMdcMboTrendMod0, p->hMdcMboTrendMod1, p->hMdcMboTrendMod2, p->hMdcMboTrendMod3 }; if(mhMdcMboTrendMod[0] && mhMdcMboTrendMod[1] && mhMdcMboTrendMod[2] && mhMdcMboTrendMod[3] && p->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,p->hMdcMboTrendCount->getP()->GetBinContent(sec*4+mod+1)); } p->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] = { p->hMdctime1Cal1MeanTrendMod0, p->hMdctime1Cal1MeanTrendMod1, p->hMdctime1Cal1MeanTrendMod2, p->hMdctime1Cal1MeanTrendMod3 }; HOnlineMonHistAddon* mhMdctime1Cal1MeanTrendModtemp[4] = { p->hMdctime1Cal1MeanTrendMod0temp, p->hMdctime1Cal1MeanTrendMod1temp, p->hMdctime1Cal1MeanTrendMod2temp, p->hMdctime1Cal1MeanTrendMod3temp }; HOnlineMonHistAddon* mhMdctime1Mod[4] = { p->hMdctime1Mod0, p->hMdctime1Mod1, p->hMdctime1Mod2, p->hMdctime1Mod3 }; HOnlineMonHistAddon* mhMdctime2Mod[4] = { p->hMdctime2Mod0, p->hMdctime2Mod1, p->hMdctime2Mod2, p->hMdctime2Mod3 }; HOnlineMonHistAddon* mhMdctime12Mod[4] = { p->hMdctime12Mod0, p->hMdctime12Mod1, p->hMdctime12Mod2, p->hMdctime12Mod3 }; HOnlineMonHistAddon* mhMdclayer[6][4] = { {p->hMdclayerS0M0,p->hMdclayerS0M1,p->hMdclayerS0M2,p->hMdclayerS0M3 }, {p->hMdclayerS1M0,p->hMdclayerS1M1,p->hMdclayerS1M2,p->hMdclayerS1M3 }, {p->hMdclayerS2M0,p->hMdclayerS2M1,p->hMdclayerS2M2,p->hMdclayerS2M3 }, {p->hMdclayerS3M0,p->hMdclayerS3M1,p->hMdclayerS3M2,p->hMdclayerS3M3 }, {p->hMdclayerS4M0,p->hMdclayerS4M1,p->hMdclayerS4M2,p->hMdclayerS4M3 }, {p->hMdclayerS5M0,p->hMdclayerS5M1,p->hMdclayerS5M2,p->hMdclayerS5M3 } }; //----------------------------------------------------------------------- for(Int_t i = 0; i < mdcCal1Cat->getEntries(); i ++){ cal1 = (HMdcCal1*)mdcCal1Cat->getObject(i); if(cal1 && gHades->isReal()){ cal1->getAddress(s,m,l,c); time1 = cal1->getTime1(); time2 = cal1->getTime2(); // lookup mbo and tdc HMdcLookupRMod * flookupRMod = (flookupRaw) ? &(*flookupRaw)[s][m] :0; HMdcLookupLayer* fLay=&(*flookupRMod)[l]; HMdcLookupCell* fcell = &(*fLay)[c]; Int_t mb = fcell->getNMoth(); Int_t ch = fcell->getNChan(); if(p->hMdcMboVsChamber) { p->hMdcMboVsChamber ->getP(0,0) ->Fill(s+6*m,mb); if( (time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcMboVsChamber ->getP(0,1) ->Fill(s+6*m,mb); else p->hMdcMboVsChamber ->getP(0,2) ->Fill(s+6*m,mb); } if(p->hMdcDboVsChamber) { Int_t db = TDCtoDBOmapping[ch/8]; p->hMdcDboVsChamber ->getP(0,0) ->Fill(s+6*m,mb*6+db); if( (time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcDboVsChamber ->getP(0,1) ->Fill(s+6*m,mb*6+db); else p->hMdcDboVsChamber ->getP(0,2) ->Fill(s+6*m,mb*6+db); } // counting MBO Hits if(p->hMdcMboRateTrendtemp ) { p->hMdcMboRateTrendtemp->getP(s+6*m,mb)->Fill(1); p->hMdcMboRateTrendtemp->getP(1+6*m,16)->Fill(1); // counting Hits of all MBO in one plane (for calculating a mean for each plane) } p->hMdccal1hits ->getP()->Fill(m,s); p->hMdctime1Cal1MeanTrendtemp->getP()->Fill(time1); if(mhMdctime1Cal1MeanTrendModtemp[m]) mhMdctime1Cal1MeanTrendModtemp[m]->getP(0,s)->Fill(time1); if(p->hMdctime1Cal1) { p->hMdctime1Cal1->getP(0,0)->Fill(time1); p->hMdctime1Cal1->getP(0,1)->Fill(time2); } if(p->hMdccal1hitstemp) p->hMdccal1hitstemp->getP()->Fill(m,s); if(mhMdclayer[s][m]) mhMdclayer[s][m] ->getP(0,l)->Fill(c,pow(10,l)); if(p->hMdcWireDistr) p->hMdcWireDistr ->getP(0,s+6*m)->Fill(c); if(p->hMdcWireVsLayer) p->hMdcWireVsLayer->getP()->Fill(l+s*6+m*36,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(p->hMdctime1_12) p->hMdctime1_12->fill(s,m,time1,time2-time1); if(p->hMdcTotMeanTrendtemp) { if((time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcTotMeanTrendtemp->getP(0,s+m*6)->Fill(time2-time1); } if(p->hMdcTotMeanNoiseTrendtemp) { if((time2-time1) < TotMinCut[m][s] ) p->hMdcTotMeanNoiseTrendtemp->getP(0,s+m*6)->Fill(time2-time1); } if(p->hMdcTime1Trendtemp) { if((time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcTime1Trendtemp->getP(0,s+m*6)->Fill(time1); } if(p->hMdcTotMeantemp) { p->hMdcTotMeantemp->getP(0,l+s*6+m*36)->Fill(time2-time1); if((time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcTotMeantemp->getP(1,l+s*6+m*36)->Fill(time2-time1); if((time2-time1) < TotMinCut[m][s]) p->hMdcTotMeantemp->getP(2,l+s*6+m*36)->Fill(time2-time1); } if(p->hMdcTime1Meantemp) { p->hMdcTime1Meantemp->getP(0,l+s*6+m*36)->Fill(time1); if((time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s]) p->hMdcTime1Meantemp->getP(1,l+s*6+m*36)->Fill(time1); if((time2-time1) < TotMinCut[m][s] ) p->hMdcTime1Meantemp->getP(2,l+s*6+m*36)->Fill(time1); } if(p->hMdcWiresEventMeantemp) { p->hMdcWiresEventMeantemp->getP(0,0)->Fill(l+s*6+m*36); if((time2-time1) > TotMinCut[m][s] && time1 < Cal1Time1Max[m][s] ) p->hMdcWiresEventMeantemp->getP(0,1)->Fill(l+s*6+m*36); else p->hMdcWiresEventMeantemp->getP(0,2)->Fill(l+s*6+m*36); } if(p->hMdcFiredWiresChambertemp) { p->hMdcFiredWiresChambertemp->getP(s,m)->Fill(1); } if(p->hMdcTotVsChamber) { if ( time1 < Cal1Time1Max[m][s] ) p->hMdcTotVsChamber->getP()->Fill(s+m*6,time2-time1); } if(p->hMdcTime1VsChamber) { if ( (time2-time1) > TotMinCut[m][s] ) p->hMdcTime1VsChamber->getP()->Fill(s+m*6,time1); } } } // Eventcounter for plotting fired wires per event if(p->hMdcWiresEventMeantemp) { p->hMdcWiresEventMeantemp->getP(1,0)->Fill(1); } // Eventcounter for plotting MBO Hits per event trend if(p->hMdcMboRateTrendtemp) { p->hMdcMboRateTrendtemp->getP(0,16)->Fill(1); } //---------------Trend hists cal1---------------------------------- if(p->hMdctime1Cal1MeanTrend && p->hMdctime1Cal1MeanTrendtemp && evtCt%p->hMdctime1Cal1MeanTrend->getRefreshRate() == 0 && evtCt > 0){ p->hMdctime1Cal1MeanTrend->fill(p->hMdctime1Cal1MeanTrendtemp->getP()->GetMean()); p->hMdctime1Cal1MeanTrendtemp->getP()->Reset(); } if(p->hMdccal1hitstemp && p->hMdccal1hitstrend && evtCt%p->hMdccal1hitstrend->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ p->hMdccal1hitstrend->fill(sec,mod,p->hMdccal1hitstemp->getP()->GetBinContent(mod+1,sec+1)); p->hMdccal1hitstemp->getP()->SetBinContent(mod+1,sec+1,0); } } } if(p->hMdcMboRateTrendtemp && p->hMdcMboRateTrend && evtCt%p->hMdcMboRateTrend->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ Float_t MBORatePlaneMean ( ( (p->hMdcMboRateTrendtemp->getP(1+6*mod,16)->GetEntries())/(p->hMdcMboRateTrendtemp->getP(0,16)->GetEntries()))/(6*16) ); for(Int_t sec = 0; sec < 6; sec ++){ for(Int_t mbo = 0; mbo < 16; mbo ++){ if((p->hMdcMboRateTrendtemp->getP(0,16)->GetEntries()) ) { Float_t MBOrateOK(0); Float_t MBORate( (p->hMdcMboRateTrendtemp->getP(sec+6*mod,mbo)->GetEntries())/(p->hMdcMboRateTrendtemp->getP(0,16)->GetEntries())); MBORate = (MBORate-MBORatePlaneMean)/MBORatePlaneMean +1 ; if( ( mod==2 && sec==5 && mbo==7) // switched off MBO 0x2257 (frequent reinits) in jul/aug 2014 should not be visible || ( p->hMdcMboVsChamberMissing->getP()->GetBinContent(1+mod*6+sec,1+mbo) > 0 ) // in plane 0 only 14 MBO per chamber exist, so MBO 14, 15 in plane 0 should also not be visible here ) { MBOrateOK = 1 ; } // =1 means normal 100% of mean rate from the MBO else if ( MBORate < 0.1 ) { MBOrateOK = -3; }// = -3 will indicate an well visible low rate! else { MBOrateOK = MBORate; } // in usual case the rate is displayed normalized to the mean rate for each plane p->hMdcMboRateTrend->fill(sec+6*mod,mbo,MBOrateOK ); } } } } // p->hMdcMboRateTrendtemp->getP(0,16)-> Reset(); } if(p->hMdcTotMeanTrendtemp && p->hMdcTotMeanTrend && evtCt%p->hMdcTotMeanTrend->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ p->hMdcTotMeanTrend->fill(0,sec+6*mod,(p->hMdcTotMeanTrendtemp->getP(0,sec+6*mod)->GetMean()) ); p->hMdcTotMeanTrendtemp->getP(0,sec+6*mod)->Reset(); } } } if(p->hMdcTotMeanNoiseTrendtemp && p->hMdcTotMeanNoiseTrend && evtCt%p->hMdcTotMeanNoiseTrend->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ p->hMdcTotMeanNoiseTrend->fill(0,sec+6*mod,(p->hMdcTotMeanNoiseTrendtemp->getP(0,sec+6*mod)->GetMean()) ); p->hMdcTotMeanNoiseTrendtemp->getP(0,sec+6*mod)->Reset(); } } } if(p->hMdcTime1Trendtemp && p->hMdcTime1Trend && evtCt%p->hMdcTime1Trend->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ p->hMdcTime1Trend->fill(0,sec+6*mod,(p->hMdcTime1Trendtemp->getP(0,sec+6*mod)->GetMean()) ); p->hMdcTime1Trendtemp->getP(0,sec+6*mod)->Reset(); } } } if(p->hMdcTotMeantemp && p->hMdcTotMean && evtCt%p->hMdcTotMean->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ for(Int_t lay = 0; lay < 6; lay ++){ for(Int_t icut = 0; icut < 3; icut ++){ p->hMdcTotMean->getP(0,icut)->SetBinContent(1+lay+6*sec+36*mod,(p->hMdcTotMeantemp->getP(icut,lay+6*sec+36*mod)->GetMean()) ); p->hMdcTotMeantemp->getP(icut,lay+6*sec+36*mod)->Reset(); } } } } } if(p->hMdcTime1Meantemp && p->hMdcTime1Mean && evtCt%p->hMdcTime1Mean->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ for(Int_t lay = 0; lay < 6; lay ++){ for(Int_t icut = 0; icut < 3; icut ++){ p->hMdcTime1Mean->getP(0,icut)->SetBinContent(1+lay+6*sec+36*mod,(p->hMdcTime1Meantemp->getP(icut,lay+6*sec+36*mod)->GetMean()) ); p->hMdcTime1Meantemp->getP(icut,lay+6*sec+36*mod)->Reset(); } } } } } if(p->hMdcWiresEventMeantemp && p->hMdcWiresEventMean && evtCt%p->hMdcWiresEventMean->getRefreshRate() == 0 && evtCt > 0){ for(Int_t icut = 0; icut < 3; icut ++){ p->hMdcWiresEventMean->getP(0,icut)->Reset(); p->hMdcWiresEventMean->getP(0,icut)->Add(p->hMdcWiresEventMeantemp->getP(0,icut), 1.0/(p->hMdcWiresEventMeantemp->getP(1,0)->GetEntries())) ; p->hMdcWiresEventMeantemp->getP(0,icut)->Reset(); } p->hMdcWiresEventMeantemp->getP(1,0)->Reset(); // reset event counter } 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(); } } //------------------------------------------------------------- if(p->hMdcFiredWiresChambertemp && p->hMdcFiredWiresChamber && evtCt%p->hMdcFiredWiresChamber->getRefreshRate() == 0 && evtCt > 0){ for(Int_t mod = 0; mod < 4; mod ++){ for(Int_t sec = 0; sec < 6; sec ++){ p->hMdcFiredWiresChamber->getP(s,m)->Fill( p->hMdcFiredWiresChambertemp->getP(s,m)->GetEntries() ) ; p->hMdcFiredWiresChambertemp->getP(s,m)->Reset(); // reset wire counter after each event } } } //--------------- cut stat ----------------------------------- HMdcCutStat* cutstat = HMdcCutStat::getExObject(); if(cutstat && p->hMdccutstat) { if(evtCt%p->hMdccutstat->getRefreshRate() == 0 && evtCt > 0){ Int_t t1,t2,t1t2,wire,t1_t1t2,bump,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,&bump,&cutall,&allhits); if(allhits!=0){ p->hMdccutstat->getP(0,1)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-t1) /allhits); //3 p->hMdccutstat->getP(0,2)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-t1t2) /allhits); //5 p->hMdccutstat->getP(0,3)->SetBinContent(mod*6+sec+1,(Float_t)(allhits-cutall) /allhits); //4 p->hMdccutstat->getP(0,0)->SetBinContent(mod*6+sec+1,(Float_t)allhits/allhits); //2 } } } if(p->hMdccutstat->getResetable() == 1) cutstat->clear(); } } //------------------------------------------------------------- } //############################################################################### // do reset if needed mapHolder::resetHists(evtCt); return kTRUE; }