#include "honlinemonhist.h" #include "honlinehistarray.h" #include "honlinetrendhist.h" #include "hcategory.h" #include "walldef.h" #include "hwallraw.h" #include "hwallhit.h" #include "hwallcal.h" #include "helpers.h" #include "TList.h" #include "TString.h" #include #include using namespace std; map < TString , HOnlineMonHistAddon* > wallMap; struct wallP { HOnlineMonHistAddon* hWallProf1 = 0; HOnlineMonHistAddon* hWallProf2 = 0; HOnlineMonHistAddon* hWallProf3 = 0; HOnlineMonHistAddon* hWallRawTime1 = 0; HOnlineMonHistAddon* hWallRawWidth1 = 0; HOnlineMonHistAddon* hWallHitTime = 0; HOnlineMonHistAddon* hWallHitCharge = 0; HOnlineMonHistAddon* hWallHitXY = 0; HOnlineMonHistAddon* hWallRawMult = 0; HOnlineMonHistAddon* hWallRawMultBySize = 0; HOnlineMonHistAddon* hWallRawMult_trend = 0; HOnlineMonHistAddon* hWallRawMultBySize_trend = 0; HOnlineMonHistAddon* hWallTimeSmall = 0; HOnlineMonHistAddon* hWallTimeMedium = 0; HOnlineMonHistAddon* hWallTimeLarge = 0; HOnlineMonHistAddon* hWallADCSmall = 0; HOnlineMonHistAddon* hWallADCMedium = 0; HOnlineMonHistAddon* hWallADCLarge = 0; HOnlineMonHistAddon* hWallLatchTimeSmall = 0; HOnlineMonHistAddon* hWallLatchTimeMedium = 0; HOnlineMonHistAddon* hWallLatchTimeLarge = 0; HOnlineMonHistAddon* hWallLatchADCSmall = 0; HOnlineMonHistAddon* hWallLatchADCMedium = 0; HOnlineMonHistAddon* hWallLatchADCLarge = 0; HOnlineMonHistAddon* hWallTimeRawCell = 0; HOnlineMonHistAddon* hWallWidthRawCell = 0; HOnlineMonHistAddon* hWallChargeRawCell = 0; HOnlineMonHistAddon* hWallTimeCalCell = 0; HOnlineMonHistAddon* hWallWidthCalCell = 0; HOnlineMonHistAddon* hWallChargeCalCell = 0; HOnlineMonHistAddon* hWallCellHits = 0; }; wallP* pW; Bool_t createHistWall(TList& histpool){ mapHolder::setMap(wallMap); // make wallMap currentMap //####################### USER CODE ############################################## // define monitoring hists const Char_t* hists[] = { "FORMAT#array TYPE#1F NAME#hWallProf1 TITLE#Raw_SmallCellHits ACTIVE#1 RESET#1 REFRESH#50000 BIN#144:0:144:0:0.0:0.0 SIZE#1:2 AXIS#CellNr:Nr_of_Hits:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#46:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hWallProf2 TITLE#Raw_MiddleCellHits ACTIVE#1 RESET#1 REFRESH#50000 BIN#64:144:208:0:0.0:0.0 SIZE#1:2 AXIS#CellNr:Nr_of_Hits:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#46:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hWallProf3 TITLE#Raw_LargeCellHits ACTIVE#1 RESET#1 REFRESH#50000 BIN#92:210:302:0:0.0:0.0 SIZE#1:2 AXIS#CellNr:Nr_of_Hits:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#46:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallRawTime1 TITLE#Raw_Time ACTIVE#1 RESET#1 REFRESH#50000 BIN#302:0.5:302.5:256:-1500.0:5000.0 SIZE#0:0 AXIS#CellNr:time_[channel]:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallRawWidth1 TITLE#Raw_Width ACTIVE#1 RESET#1 REFRESH#50000 BIN#302:0.5:302.5:256:0.0:5000.0 SIZE#0:0 AXIS#Fiber:width_[channel]:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallHitTime TITLE#Hit_Time ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:200:-400:200 SIZE#0:0 AXIS#Cell:Time:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallHitCharge TITLE#Hit_Charge ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:100:0:500 SIZE#0:0 AXIS#Cell:Charge:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallHitXY TITLE#Wall_XY ACTIVE#1 RESET#1 REFRESH#50000 BIN#120:-120:120:120:-120:120 SIZE#0:0 AXIS#X_cm:Y_cm:no DIR#no OPT#box,colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hWallRawMult TITLE#WallRawMult ACTIVE#1 RESET#1 REFRESH#50000 BIN#100:0.0:100.0:0:0:0 SIZE#1:4 AXIS#multiplicity: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#hWallRawMultBySize TITLE#WallRawMultBySize ACTIVE#1 RESET#1 REFRESH#50000 BIN#100:0.0:100.0:0:0:0 SIZE#1:3 AXIS#multiplicity: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#trendarray TYPE#1F NAME#hWallRawMult_trend TITLE#WallRawMultTrend ACTIVE#1 RESET#0 REFRESH#5000 BIN#25:0.0:25.0:0:0:0 SIZE#1:4 AXIS#trend:multiplicity:no DIR#no OPT#pl STATS#0 LOG#0:0:0 GRID#0:1 LINE#1:0 FILL#0:0 MARKER#1:20:0.5 RANGE#-99:-99" ,"FORMAT#trendarray TYPE#1F NAME#hWallRawMultBySize_trend TITLE#WallRawMultBySizeTrend ACTIVE#1 RESET#0 REFRESH#5000 BIN#25:0.0:25.0:0:0:0 SIZE#1:3 AXIS#trend:multiplicity:no DIR#no OPT#pl STATS#0 LOG#0:0:0 GRID#0:1 LINE#1:0 FILL#0:0 MARKER#1:20:0.5 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallTimeSmall TITLE#hWallTimeSmall ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:-500:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallTimeMedium TITLE#hWallTimeMedium ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:-500:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallTimeLarge TITLE#hWallTimeLarge ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:-500:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallADCSmall TITLE#hWallADCSmall ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallADCMedium TITLE#hWallADCMedium ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallADCLarge TITLE#hWallADCLarge ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchTimeSmall TITLE#hWallLatchTimeSmall ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:0:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchTimeMedium TITLE#hWallLatchTimeMedium ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:0:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchTimeLarge TITLE#hWallLatchTimeLarge ACTIVE#1 RESET#1 REFRESH#50000 BIN#1200:0:1200:0:0:0 SIZE#0:0 AXIS#Time:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchADCSmall TITLE#hWallLatchADCSmall ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchADCMedium TITLE#hWallLatchADCMedium ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#1F NAME#hWallLatchADCLarge TITLE#hWallLatchADCLarge ACTIVE#1 RESET#1 REFRESH#50000 BIN#600:0:600:0:0:0 SIZE#0:0 AXIS#ADC:counts:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#1:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallTimeRawCell TITLE#WallTimeRawCell ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:200:-1000:0 SIZE#0:0 AXIS#Cell:TimeRaw:no DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallWidthRawCell TITLE#WallWidthRawCell ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:50:0:500 SIZE#0:0 AXIS#Cell:WidthRaw:no DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallChargeRawCell TITLE#WallChargeRawCell ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:500:0:1000 SIZE#0:0 AXIS#Cell:WidthRaw:no DIR#no OPT#colz STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallTimeCalCell TITLE#WallTimeCalCell ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:500:0:50 SIZE#0:0 AXIS#Cell:TimeRaw:no DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#mon TYPE#2F NAME#hWallChargeCalCell TITLE#WallChargeCalCell ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:500:0:1000 SIZE#0:0 AXIS#Cell:WidthRaw:no DIR#no OPT#colz STATS#0 LOG#0:0:1 GRID#1:1 LINE#1:0 FILL#0:0 MARKER#0:0:0 RANGE#-99:-99" ,"FORMAT#array TYPE#1F NAME#hWallCellHits TITLE#WallCellHits ACTIVE#1 RESET#1 REFRESH#50000 BIN#305:0:305:0:0.0:0.0 SIZE#1:2 AXIS#CellNr:Nr_of_Hits:no DIR#no OPT#no STATS#0 LOG#0:0:0 GRID#1:1 LINE#1:0 FILL#46:0 MARKER#0:0:0 RANGE#-99:-99" }; //############################################################################### // create hists and add them to the pool mapHolder::createHists(sizeof(hists)/sizeof(Char_t*),hists,histpool); HOnlineMonHistAddon* addon=0; pW = new wallP(); pW->hWallProf1 = get("hWallProf1"); pW->hWallProf2 = get("hWallProf2"); pW->hWallProf3 = get("hWallProf3"); pW->hWallRawTime1 = get("hWallRawTime1"); pW->hWallRawWidth1 = get("hWallRawWidth1"); pW->hWallHitTime = get("hWallHitTime"); pW->hWallHitCharge = get("hWallHitCharge"); pW->hWallHitXY = get("hWallHitXY"); pW->hWallRawMult = get("hWallRawMult"); pW->hWallRawMultBySize = get("hWallRawMultBySize"); pW->hWallRawMult_trend = get("hWallRawMult_trend"); pW->hWallRawMultBySize_trend = get("hWallRawMultBySize_trend"); pW->hWallTimeSmall = get("hWallTimeSmall"); pW->hWallTimeMedium = get("hWallTimeMedium"); pW->hWallTimeLarge = get("hWallTimeLarge"); pW->hWallADCSmall = get("hWallADCSmall"); pW->hWallADCMedium = get("hWallADCMedium"); pW->hWallADCLarge = get("hWallADCLarge"); pW->hWallCellHits = get("hWallCellHits"); pW->hWallLatchTimeSmall = get("hWallLatchTimeSmall"); pW->hWallLatchTimeMedium = get("hWallLatchTimeMedium"); pW->hWallLatchTimeLarge = get("hWallLatchTimeLarge"); pW->hWallLatchADCSmall = get("hWallLatchADCSmall"); pW->hWallLatchADCMedium = get("hWallLatchADCMedium"); pW->hWallLatchADCLarge = get("hWallLatchADCLarge"); pW->hWallTimeRawCell = get("hWallTimeRawCell"); pW->hWallWidthRawCell = get("hWallWidthRawCell"); pW->hWallChargeRawCell = get("hWallChargeRawCell"); pW->hWallTimeCalCell = get("hWallTimeCalCell"); pW->hWallChargeCalCell = get("hWallChargeCalCell"); Int_t colorsSector[6] = {2, 4, 6, 8, 38, 46}; if(pW->hWallProf1) { pW->hWallProf1->getP(0,0)->SetFillColor(46); pW->hWallProf1->getP(0,1)->SetFillColor(38); } if(pW->hWallProf2) { pW->hWallProf2->getP(0,0)->SetFillColor(46); pW->hWallProf2->getP(0,1)->SetFillColor(38); } if(pW->hWallProf3) { pW->hWallProf3->getP(0,0)->SetFillColor(46); pW->hWallProf3->getP(0,1)->SetFillColor(38); } if(pW->hWallCellHits){ pW->hWallCellHits->getP(0,0)->SetFillColor(46); pW->hWallCellHits->getP(0,1)->SetFillColor(38); } if(pW->hWallTimeSmall) { pW->hWallTimeSmall->getP()->SetFillColor(2); } if(pW->hWallTimeMedium) { pW->hWallTimeMedium->getP()->SetFillColor(4); } if(pW->hWallTimeLarge) { pW->hWallTimeLarge->getP()->SetFillColor(6); } if(pW->hWallADCSmall) { pW->hWallADCSmall->getP()->SetFillColor(2); } if(pW->hWallADCMedium) { pW->hWallADCMedium->getP()->SetFillColor(4); } if(pW->hWallADCLarge) { pW->hWallADCLarge->getP()->SetFillColor(6); } if(pW->hWallRawMult ){ for(Int_t sec = 0; sec < 4; sec ++){ pW->hWallRawMult->getP(0,sec)->SetLineColor(colorsSector[sec]); } } if(pW->hWallRawMultBySize ){ for(Int_t size = 0; size < 3; size ++){ pW->hWallRawMultBySize->getP(0,size)->SetLineColor(colorsSector[size]); } } if((addon = pW->hWallRawMult_trend)){ for(Int_t sec = 0; sec < 4; sec ++){ addon->getP(0,sec)->SetLineColor(colorsSector[sec]); addon->getP(0,sec)->SetMarkerColor(colorsSector[sec]); } } if((pW->hWallRawMultBySize_trend)){ for(Int_t size = 0; size < 3; size ++){ pW->hWallRawMultBySize_trend->getP(0,size)->SetLineColor(colorsSector[size]); pW->hWallRawMultBySize_trend->getP(0,size)->SetMarkerColor(colorsSector[size]); } } //Dachi Code return kTRUE; } Bool_t fillHistWall(Int_t evtCt){ mapHolder::setMap(wallMap); // make wallMap currentMap //####################### USER CODE ############################################## // Fill Histograms // categorys to loop HCategory* wallRawCat = gHades->getCurrentEvent()->getCategory(catWallRaw); HCategory* wallHitCat = gHades->getCurrentEvent()->getCategory(catWallHit); HCategory* wallCalCat = gHades->getCurrentEvent()->getCategory(catWallCal); Int_t nLatchWord = 0; Bool_t latchRpc =kFALSE; Bool_t latchTof =kFALSE; Bool_t latchWall=kFALSE; nLatchWord = gHades->getCurrentEvent()->getHeader()->getTBit(); for(Int_t i=0;i<16;i++){ if(( nLatchWord & (1<getEntries(); i ++){ raw = (HWallRaw*)wallRawCat->getObject(i); if(raw){ if(raw->getNHits()<=0) continue;// will never happen //wallCellArr[4]++;// all cell = raw->getCell(); //I quarter -> 1-6;61-66 if (((cell >= 0 ) && (cell <= 5 )) || ((cell >= 12 ) && (cell <= 17)) || ((cell >= 24 ) && (cell <= 29)) || ((cell >= 36 ) && (cell <= 41)) || ((cell >= 48 ) && (cell <= 53)) || ((cell >= 60 ) && (cell <= 64))) wallCellArr[0]++; //II quarter -> 7-12;67-72 if (((cell >= 6 ) && (cell <= 11)) || ((cell >= 18 ) && (cell <= 23)) || ((cell >= 30 ) && (cell <= 35)) || ((cell >= 42 ) && (cell <= 47)) || ((cell >= 54 ) && (cell <= 59)) || ((cell >= 67 ) && (cell <= 71))) wallCellArr[1]++; //III quarter -> 73-78;133-138 if (((cell >= 72 ) && (cell <= 76)) || ((cell >= 84 ) && (cell <= 89)) || ((cell >= 96 ) && (cell <= 101)) || ((cell >= 108 ) && (cell <= 113)) || ((cell >= 120 ) && (cell <= 125)) || ((cell >= 132 ) && (cell <= 137))) wallCellArr[2]++; //IV quarter -> 79-84;139-144 if (((cell >= 79 ) && (cell <= 83)) || ((cell >= 90 ) && (cell <= 95)) || ((cell >= 102 ) && (cell <= 107)) || ((cell >= 114 ) && (cell <= 119)) || ((cell >= 126 ) && (cell <= 131)) || ((cell >= 138 ) && (cell <= 143))) wallCellArr[3]++; if (cell>=0 && cell < 144) wallGroupArr[0]++; if (cell>=144 && cell < 208) wallGroupArr[1]++; if (cell>=208 && cell < 305) wallGroupArr[2]++; if( pW->hWallProf1 ){ pW->hWallProf1->fill(0,0,cell); pW->hWallProf1->getP(0,1)->Fill(65,0.0025); pW->hWallProf1->getP(0,1)->Fill(66,0.0025); pW->hWallProf1->getP(0,1)->Fill(77,0.0025); pW->hWallProf1->getP(0,1)->Fill(78,0.0025); } if( pW->hWallProf2){ pW->hWallProf2->fill(0,0,cell); //hProf2->fill(0,1,144); } if( pW->hWallProf3){ pW->hWallProf3->fill(0,0,cell); pW->hWallProf3->getP(0,1)->Fill(217,0.01); pW->hWallProf3->getP(0,1)->Fill(218,0.01); pW->hWallProf3->getP(0,1)->Fill(219,0.01); pW->hWallProf3->getP(0,1)->Fill(229,0.01); pW->hWallProf3->getP(0,1)->Fill(282,0.01); pW->hWallProf3->getP(0,1)->Fill(292,0.01); pW->hWallProf3->getP(0,1)->Fill(293,0.01); pW->hWallProf3->getP(0,1)->Fill(294,0.01); } if(pW->hWallCellHits){ pW->hWallCellHits ->getP(0,0)->Fill(cell); pW->hWallCellHits ->getP(0,1)->Fill(65,0.0025); pW->hWallCellHits ->getP(0,1)->Fill(66,0.0025); pW->hWallCellHits ->getP(0,1)->Fill(77,0.0025); pW->hWallCellHits ->getP(0,1)->Fill(78,0.0025); pW->hWallCellHits ->getP(0,1)->Fill(208,0.003); pW->hWallCellHits ->getP(0,1)->Fill(209,0.003); pW->hWallCellHits ->getP(0,1)->Fill(217,0.005); pW->hWallCellHits ->getP(0,1)->Fill(218,0.005); pW->hWallCellHits ->getP(0,1)->Fill(219,0.005); pW->hWallCellHits ->getP(0,1)->Fill(229,0.01); pW->hWallCellHits ->getP(0,1)->Fill(282,0.01); pW->hWallCellHits ->getP(0,1)->Fill(292,0.005); pW->hWallCellHits ->getP(0,1)->Fill(293,0.005); pW->hWallCellHits ->getP(0,1)->Fill(294,0.005); pW->hWallCellHits ->getP(0,1)->Fill(302,0.003); pW->hWallCellHits ->getP(0,1)->Fill(303,0.003); } time = raw->getTime(1); width = raw->getWidth(1); charge = raw->getCharge(); if(pW->hWallTimeRawCell) pW->hWallTimeRawCell->getP()->Fill(cell,time); if(pW->hWallWidthRawCell) pW->hWallWidthRawCell->getP()->Fill(cell,width); if(pW->hWallChargeRawCell) pW->hWallChargeRawCell->getP()->Fill(cell,charge); } } // end raw loop if(pW->hWallRawMult){ for(Int_t j = 0; j < 4; j ++) { pW->hWallRawMult->fill(0,j,wallCellArr[j]); } } if(pW->hWallRawMultBySize){ for(Int_t j = 0; j < 3; j ++) { pW->hWallRawMultBySize->fill(0,j,wallGroupArr[j]); } } if(pW->hWallRawMult_trend && pW->hWallRawMult && evtCt%pW->hWallRawMult_trend->getRefreshRate() == 0 && evtCt > 0 ){ for(Int_t qtr = 0; qtr < 4; qtr ++) { pW->hWallRawMult_trend->fill(0,qtr,pW->hWallRawMult->getP(0,qtr)->GetMean()); } } if(pW->hWallRawMultBySize_trend && pW->hWallRawMultBySize && evtCt%pW->hWallRawMultBySize_trend->getRefreshRate() == 0 && evtCt > 0 ){ for(Int_t size = 0; size < 3; size ++) { pW->hWallRawMultBySize_trend->fill(0,size,pW->hWallRawMultBySize->getP(0,size)->GetMean()); } } } if(wallHitCat){ HWallHit* hit; Int_t cell; Float_t x,y,z,time,charge; for(Int_t i = 0; i < wallHitCat->getEntries(); i ++){ hit = (HWallHit*)wallHitCat->getObject(i); if(hit){ cell = hit->getCell(); time = hit->getTime(); charge = hit->getCharge(); hit->getXYZLab(x,y,z); x = x/10; y = y/10; if(pW->hWallHitXY ) pW->hWallHitXY ->getP()->Fill(x,y); if(pW->hWallHitTime ) pW->hWallHitTime ->getP()->Fill((Float_t)cell,time); if(pW->hWallHitCharge) pW->hWallHitCharge->getP()->Fill((Float_t)cell,charge); if(pW->hWallADCSmall&&pW->hWallTimeSmall){ if(cell<144){ pW->hWallADCSmall ->getP()->Fill(charge); pW->hWallTimeSmall ->getP()->Fill(time); } } if(pW->hWallADCMedium&&pW->hWallTimeMedium){ if(cell>143&&cell<210){ pW->hWallADCMedium ->getP()->Fill(charge); pW->hWallTimeMedium ->getP()->Fill(time); } } if(pW->hWallADCLarge&&pW->hWallTimeLarge){ if(cell>209){ pW->hWallADCLarge ->getP()->Fill(charge); pW->hWallTimeLarge ->getP()->Fill(time); } } if(latchWall){ if(pW->hWallLatchADCSmall&&pW->hWallLatchTimeSmall){ if(cell<144){ pW->hWallLatchADCSmall ->getP()->Fill(charge); pW->hWallLatchTimeSmall ->getP()->Fill(time); } } if(pW->hWallLatchADCMedium&&pW->hWallLatchTimeMedium){ if(cell>143&&cell<210){ pW->hWallLatchADCMedium ->getP()->Fill(charge); pW->hWallLatchTimeMedium ->getP()->Fill(time); } } if(pW->hWallLatchADCLarge&&pW->hWallLatchTimeLarge){ if(cell>209){ pW->hWallLatchADCLarge ->getP()->Fill(charge); pW->hWallLatchTimeLarge ->getP()->Fill(time); } } } } } } if(wallCalCat){ HWallCal* cal; Int_t cell; Float_t time, width, charge; for(Int_t i = 0; i < wallCalCat->getEntries(); i ++){ cal = (HWallCal*)wallCalCat->getObject(i); if(cal){ cell = cal->getCell(); time = cal->getTime(1); charge = cal->getAdc(1); if(pW->hWallTimeCalCell) pW->hWallTimeCalCell->getP()->Fill(cell,time); if(pW->hWallChargeCalCell) pW->hWallChargeCalCell->getP()->Fill(cell,charge); } } } //############################################################################### // do reset if needed mapHolder::resetHists(evtCt); return kTRUE; }