//
//______________________________________________________________________________
-Bool_t AliMUONGeometrySegmentation::Notify(Int_t detElemId) const
+Bool_t AliMUONGeometrySegmentation::OwnNotify(Int_t detElemId) const
{
// Updates current detection element and segmentation,
// and checks if they exist.
// Return direction with a constant pad size
// (Direction or coordinate where the resolution is the best)
- if (!Notify(detElemId)) return kDirUndefined;
+ if (!OwnNotify(detElemId)) return kDirUndefined;
return fCurrentSegmentation->GetDirection();
}
// CHECK
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->GetAnod(xhit);
}
// Returns pad coordinates (ix,iy) for given real coordinates (x,y)
// ---
- if (!Notify(detElemId)) return false;
-
+ if (!OwnNotify(detElemId)) return false;
+
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xg, yg, zg, xl, yl, zl);
// Transform from pad to real coordinates
// ---
- if (!Notify(detElemId)) return false;
+ if (!OwnNotify(detElemId)) return false;
if (!fCurrentSegmentation->HasPad(ix, iy)) return false;
// Get pad size in x
// ---
- if (!Notify(detElemId)) return 0.;
+ if (!OwnNotify(detElemId)) return 0.;
return fCurrentSegmentation->Dpx();
}
// Get pad size in y
// ---
- if (!Notify(detElemId)) return 0.;
+ if (!OwnNotify(detElemId)) return 0.;
return fCurrentSegmentation->Dpy();
}
// Pad size in x by sector
// ---
- if (!Notify(detElemId)) return 0.;
+ if (!OwnNotify(detElemId)) return 0.;
return fCurrentSegmentation->Dpx(isector);
}
// Pad size in x, y by Sector
// ---
- if (!Notify(detElemId)) return 0.;
+ if (!OwnNotify(detElemId)) return 0.;
return fCurrentSegmentation->Dpy(isector);
}
// Maximum number of Pads in x
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->Npx();
}
// Maximum number of Pads in y
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->Npy();
}
// From AliMUONGeometrySegmentationV01.
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->SetPad(ix, iy);
}
// outside the tracking program
// From AliMUONGeometrySegmentationV01.
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xghit, yghit, zghit, xl, yl, zl);
// Iterate over pads - initialiser
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xghit, yghit, zghit, xl, yl, zl);
// Iterate over pads - stepper
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->NextPad();
}
// Iterate over pads - condition
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->MorePads();
}
// labelled by its channel numbers and a coordinate
// ---
- if (!Notify(detElemId)) return 0.;
+ if (!OwnNotify(detElemId)) return 0.;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xg, yg, zg, xl, yl, zl);
// CHECK
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->GetNParallelAndOffset(ix, iy, nparallel, offset);
}
// Get next neighbours
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->Neighbours(ix, iy, nlist, xlist, ylist);
}
// Calculate sector from pad coordinates
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->Sector(ix, iy);
}
// Calculate sector from pad coordinates
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xg, yg, zg, xl, yl, zl);
// Current integration limits
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->IntegrationLimits(x1, x2, y1, y2);
}
// boundary between two wires.
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xg, yg, zg, xl, yl, zl);
// From AliMUONGeometrySegmentationV01
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
Float_t xl, yl, zl;
fCurrentDetElement->Global2Local(xg, yg, zg, xl, yl, zl);
}
//______________________________________________________________________________
-void AliMUONGeometrySegmentation::Draw(Int_t detElemId, const char* opt) const
+void AliMUONGeometrySegmentation::Draw(const char* opt)
+{
+// Draws the segmentation zones for all detElemId
+// ---
+
+ for (Int_t i=0; i<fDESegmentations->GetNofEntries(); i++) {
+ AliMUONVGeometryDESegmentation* segmentation
+ = (AliMUONVGeometryDESegmentation*)fDESegmentations->GetEntry(i);
+ segmentation->Draw(opt);
+ }
+}
+
+//______________________________________________________________________________
+void AliMUONGeometrySegmentation::Draw(Int_t detElemId, const char* opt)
{
-// Draw the segmentation zones.
-// (Called from AliMUON::BuildGeometry)
+// Draw the segmentation zones for a given detElemId.
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->Draw(opt);
}
// From AliMUONGeometrySegmentationV01
// ---
- if (!Notify(detElemId)) return;
+ if (!OwnNotify(detElemId)) return;
fCurrentSegmentation->SetCorrFunc(isec, func);
}
// From AliMUONGeometrySegmentationV01
// ---
- if (!Notify(detElemId)) return 0;
+ if (!OwnNotify(detElemId)) return 0;
return fCurrentSegmentation->CorrFunc(isec);
}