- for (Int_t iStrip = 0; iStrip < 16; ++iStrip) {
- // get pad from electronics
-
- Int_t offset = 0;
- if (cath && localBoard->GetSwitch(6)) offset = -8;
-
- AliMpPad pad = seg[cath]->PadByLocation(AliMpIntPair(iBoard,iStrip+offset),kFALSE);
-
- if (!pad.IsValid()) continue;
-
- xWidth = pad.Dimensions().X();
- yWidth = pad.Dimensions().Y();
- xcPad = sign * (pad.Position().X() + xOffsetLine);
- if(line==4) xcPad += 0.75 * sign * xWidthCol;
- ycPad = pad.Position().Y() + yOffsetLine;
-
- if(cath==iCath){
- x1 = xcPad - xWidth + kShiftX;
- y1 = ycPad - yWidth + kShiftY;
- x2 = xcPad + xWidth - kShiftX;
- y2 = ycPad + yWidth - kShiftY;
-
- if(!inputHisto){
- AddSortedPoint(x1, xAxisStrip, kResetValue);
- AddSortedPoint(x2, xAxisStrip, kResetValue);
-
- AddSortedPoint(y1, yAxisStrip, kResetValue);
- AddSortedPoint(y2, yAxisStrip, kResetValue);
- }
- else if(displayType==kDisplayStrips)
- FillBins(inputHisto, displayHisto, iBoard, iStrip, x1, x2, y1, y2, kShiftX, kShiftY, displayOpt);
- }
-
- if(cath==0){
- if(iStrip+offset==0) {
- x1b = xcPad - xWidth + kShiftEl;
- y1b = ycPad - yWidth + kShiftEl;
- }
- x2b = xcPad + xWidth - kShiftEl;
- y2b = ycPad + yWidth - kShiftEl;
- }
+ for (Int_t ibitxy = 0; ibitxy < 16; ++ibitxy) {
+ // get pad from electronics
+
+ Int_t offset = 0;
+ if (cath && localBoard->GetSwitch(AliMpLocalBoard::kZeroAllYLSB)) offset = -8;
+
+ AliMpPad pad = seg[cath]->PadByLocation(iBoard,ibitxy+offset,kFALSE);
+
+ if (!pad.IsValid()) continue;
+
+ xWidth = pad.GetDimensionX();
+ yWidth = pad.GetDimensionY();
+ xcPad = sign * (pad.GetPositionX() + xOffsetLine);
+ if(line==4) xcPad += 0.75 * sign * xWidthCol;
+ ycPad = pad.GetPositionY() + yOffsetLine;
+ nLocations = pad.GetNofLocations();
+ Int_t iStrip = pad.GetLocalBoardChannel(0);
+
+ if(cath==0){
+ if(iStrip==0) {
+ x1b = xcPad - xWidth + kShiftEl;
+ y1b = ycPad - yWidth + kShiftEl;
+ }
+ x2b = xcPad + xWidth - kShiftEl;
+ y2b = ycPad + yWidth - kShiftEl;
+ }
+
+ // For non-bending plane fill only the first board covered by the strip
+ // i.e. avoid filling many times the same information
+ if ( cath == 1 && pad.GetLocalBoardId(0) != iBoard ) continue;
+
+
+ if(cath==iCath){
+ x1 = xcPad - xWidth + kShiftX;
+ y1 = ycPad - yWidth + kShiftY;
+ x2 = xcPad + xWidth - kShiftX;
+ y2 = ycPad + yWidth - kShiftY;
+
+ if(!inputObject){
+ AddSortedPoint(x1, xAxisStrip, kResetValue);
+ AddSortedPoint(x2, xAxisStrip, kResetValue);
+
+ AddSortedPoint(y1, yAxisStrip, kResetValue);
+ AddSortedPoint(y2, yAxisStrip, kResetValue);
+ }
+ else if(displayType==kDisplayStrips)
+ FillBins(inputObject, displayHisto, iBoard, iStrip, x1, x2, y1, y2, kShiftX, kShiftY, displayOpt);
+ }
+