+ //
+ //if (harr[offs+4]) cout<<"Data size/ DDL entries: "<<((TH1*)harr[offs+4 ])->GetEntries()<< " mean: " << ((TH1*)harr[offs+4])->GetMean()<<endl;
+ //if (harr[offs+22]) cout<<"Data size/ LDC entries: "<<((TH1*)harr[offs+22])->GetEntries()<< " mean: " << ((TH1*)harr[offs+22])->GetMean()<<endl;
+ //
+ //online part
+ if(fkOnline) {
+ //Output of the DA
+ MonitorOCDBObjects(trCl);
+ //Monitor common mode values
+ MonitorCMValues(trCl);
+ //
+ Int_t gHistPositionOccupancyPerModule = 0;
+ Int_t gLayer = 0, gLadder = 0, gModule = 0;
+ //occupancy per module
+ for(Int_t iModule = 0; iModule < fgkSSDMODULES; iModule++) {
+ AliITSgeomTGeo::GetModuleId(iModule+500,gLayer,gLadder,gModule);
+ gHistPositionOccupancyPerModule = (gLayer == 5) ? ((gLadder - 1)*fgkSSDMODULESPERLADDERLAYER5 + gModule - 1) : ((gLadder - 1)*fgkSSDMODULESPERLADDERLAYER6 + gModule + fgkSSDMODULESLAYER5 - 1);
+ TH1* htmp = (TH1*)harr[offs+fSSDRawsCommonLevelOffset+gHistPositionOccupancyPerModule];
+ if (htmp) {
+ for(Int_t iBins = 1; iBins < fHistSSDRawSignalModule[iModule]->GetXaxis()->GetNbins(); iBins++) htmp->SetBinContent(iBins,fOccupancyMatrix[iModule][iBins-1]);
+ if(nSSDEventPerCycle != 0) htmp->Scale(100./nSSDEventPerCycle);
+ }//module loop
+ }
+ //
+ //occupancy per ladder
+ Int_t gHistPositionOccupancyPerLadder = 0;
+ Int_t lLadderLocationY = 0;
+ Double_t occupancy = 0.0, occupancyThreshold = 0.0, occupancyAverage = 0.0;
+ for(Int_t iModule = 0; iModule < fgkSSDMODULES; iModule++) {
+ AliITSgeomTGeo::GetModuleId(iModule+500,gLayer,gLadder,gModule);
+ //
+ gHistPositionOccupancyPerModule = (gLayer == 5) ? ((gLadder - 1)*fgkSSDMODULESPERLADDERLAYER5 + gModule - 1) : ((gLadder - 1)*fgkSSDMODULESPERLADDERLAYER6 + gModule + fgkSSDMODULESLAYER5 - 1);
+ gHistPositionOccupancyPerLadder = (gLayer == 5) ? 2*(gLadder - 1) : 2*(gLadder - 1 + fgkSSDLADDERSLAYER5);
+ //
+ TH1* htmpo = (TH1*)harr[offs+fSSDRawsCommonLevelOffset+gHistPositionOccupancyPerModule];
+ TH1* h1t = 0;
+ TH2* h2t = 0;
+ if (htmpo) {
+ //P-SIDE OCCUPANCY
+ occupancy = GetOccupancyModule(htmpo,0,0,0);
+ occupancyThreshold = GetOccupancyModule(htmpo,0,1,3);
+ occupancyAverage = GetOccupancyModule(htmpo,0,2,0);
+ if ( (h1t=(TH1*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+gHistPositionOccupancyPerLadder]) ) h1t->SetBinContent(gModule,occupancy);
+ lLadderLocationY = 3*gLadder; // sideP=1 sideN=0
+ if(gLayer == 5) {
+ //occupancy per module - no threshold
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancy);
+ //occupancy per module - threshold @ 3%
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+2]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancyThreshold);
+ //average occupancy per module
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+4]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancyAverage);
+ }
+ else if(gLayer == 6) {
+ //occupancy per module - no threshold
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+1]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancy);
+ //occupancy per module - threshold @ 3%
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+3]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancyThreshold);
+ //average occupancy per module
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+5]) ) h2t->SetBinContent(gModule,lLadderLocationY,occupancyAverage);
+ }
+ //
+ //N-SIDE OCCUPANCY
+ //
+ occupancy = GetOccupancyModule(htmpo,1,0,0);
+ occupancyThreshold = GetOccupancyModule(htmpo,1,1,3);
+ occupancyAverage = GetOccupancyModule(htmpo,1,2,0);
+ if ( (h1t=(TH1*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+gHistPositionOccupancyPerLadder+1]) ) h1t->SetBinContent(gModule,occupancy);
+ if(gLayer == 5) {
+ //occupancy per module - no threshold
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancy);
+ //occupancy per module - threshold @ 3%
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+2]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancyThreshold);
+ //average occupancy per module
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+4]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancyAverage);
+ }
+ else if(gLayer == 6) {
+ //occupancy per module - no threshold
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+1]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancy);
+ //occupancy per module - threshold @ 3%
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+3]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancyThreshold);
+ //average occupancy per module
+ if ( (h2t=(TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+5]) ) h2t->SetBinContent(gModule,lLadderLocationY-1,occupancyAverage);
+ }
+ } // htmpo
+ }//module loop
+ }//online flag for SSD
+ //
+ //TH2* h2tmp = (TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6];
+ //if (h2tmp) AliInfo(Form("Entries 2d occupancy no thres- lay 5: %d"),h2tmp->GetEntries());
+ //h2tmp = (TH2*)harr[offs+fSSDRawsCommonLevelOffset+fgkSSDMODULES+2*fgkSSDLADDERSLAYER5+2*fgkSSDLADDERSLAYER6+3];
+ //cout<<"entries 2d occupancy thres- lay 6: "<<h2tmp->GetEntries()<< " mean: " << h2tmp->GetMean() << endl; //Somehow the other occupancy maps do give nonzero values for GetMean() here
+ //
+ // TH1* h1tmp = (TH1*)harr[fGenRawsOffset[1]+4];
+ // if (h1tmp) cout<<"Data size/ DDL entries: "<<h1tmp->GetEntries()<< " mean: " << h1tmp->GetMean()<<endl;
+ //Reset of the raws
+ } // RS Loop over all trigger classes (+ global counter, -1)
+ //AliQAChecker::Instance()->Run( AliQAv1::kITS , task, list);
+ //
+ ResetRawsMonitoredObjects();
+ }//raw data end of cycle
+ //
+
+ //