**************************************************************************/
/*
$Log$
+Revision 1.9 2000/11/06 09:20:43 morsch
+AliMUON delegates part of BuildGeometry() to AliMUONSegmentation using the
+Draw() method. This avoids code and parameter replication.
+
+Revision 1.8 2000/10/18 11:42:06 morsch
+- AliMUONRawCluster contains z-position.
+- Some clean-up of useless print statements during initialisations.
+
+Revision 1.7 2000/10/03 21:48:07 morsch
+Adopt to const declaration of some of the methods in AliSegmentation.
+
+Revision 1.6 2000/10/02 16:58:29 egangler
+Cleaning of the code :
+-> coding conventions
+-> void Streamers
+-> some useless includes removed or replaced by "class" statement
+
Revision 1.5 2000/07/13 16:19:44 fca
Mainly coding conventions + some small bug fixes
// owned by Chamber
//
AliMUON *pMUON = (AliMUON *) gAlice->GetModule("MUON");
- AliMUONChamber* iChamber=&(pMUON->Chamber(chamber));
+ fChamber=&(pMUON->Chamber(chamber));
// Initialise maximum number of pads in x ans y
- fNpx=(Int_t) (iChamber->ROuter()/fDpx+1);
- fNpy=(Int_t) (iChamber->ROuter()/fDpy+1);
+ fNpx=(Int_t) (fChamber->ROuter()/fDpx+1);
+ fNpy=(Int_t) (fChamber->ROuter()/fDpy+1);
// Initialize inner and outer radius of the sensitive region
- fRmin=iChamber->RInner();
- fRmax=iChamber->ROuter();
+ fRmin=fChamber->RInner();
+ fRmax=fChamber->ROuter();
fCorr=0;
-
+ fZ=fChamber->Z();
+ fId=chamber;
}
-Float_t AliMUONSegmentationV0::GetAnod(Float_t xhit)
+Float_t AliMUONSegmentationV0::GetAnod(Float_t xhit) const
{
// Returns for a hit position xhit the position of the nearest anode wire
Float_t wire= (xhit>0)? Int_t(xhit/fWireD)+0.5:Int_t(xhit/fWireD)-0.5;
fDpx=p1;
fDpy=p2;
}
+
void AliMUONSegmentationV0::
- GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+ GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
{
// Returns pad coordinates (ix,iy) for given real coordinates (x,y)
//
if (ix > fNpx) ix= fNpx;
if (ix < -fNpx) ix=-fNpx;
}
+
void AliMUONSegmentationV0::
-GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
{
// Returns real coordinates (x,y) for given pad coordinates (ix,iy)
//
}
Int_t AliMUONSegmentationV0::MorePads()
+{
// Stopping condition for the iterator over pads
//
// Are there more pads in the integration region ?
-{
+
if (fIx == fIxmax && fIy == fIymax) {
return 0;
} else {
GetPadI(x,y,fIxt,fIyt);
fIwt= (x>0) ? Int_t(x/fWireD)+1 : Int_t(x/fWireD)-1 ;
}
-
-Int_t AliMUONSegmentationV0::SigGenCond(Float_t x,Float_t y,Float_t z)
+
+Int_t AliMUONSegmentationV0::SigGenCond(Float_t x,Float_t y,Float_t z)
{
// Signal generation condition during stepping
// 0: don't generate signal
}
void AliMUONSegmentationV0::
-Neighbours(Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10])
+Neighbours(Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10])
{
// Returns list of next neighbours for given Pad (iX, iY)
//
Float_t AliMUONSegmentationV0::Distance2AndOffset(Int_t iX, Int_t iY, Float_t X, Float_t Y
, Int_t *dummy)
+{
// Returns the square of the distance between 1 pad
// labelled by its Channel numbers and a coordinate
-{
+
Float_t x,y;
GetPadC(iX,iY,x,y);
return (x-X)*(x-X) + (y-Y)*(y-Y);
}
-void AliMUONSegmentationV0::GiveTestPoints(Int_t &n, Float_t *x, Float_t *y)
+void AliMUONSegmentationV0::GiveTestPoints(Int_t &n, Float_t *x, Float_t *y) const
{
// Returns test point on the pad plane.
// Used during determination of the segmoid correction of the COG-method
y[0]=x[0];
}
-void AliMUONSegmentationV0::Draw(const char *)
+void AliMUONSegmentationV0::Draw(const char *) const
{
// Draws the segmentation zones
//