* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.5 2000/10/26 19:32:04 morsch
-Problem with iteration over y-pads for 2nd cathode corrected.
-
-Revision 1.4 2000/10/25 19:56:55 morsch
-Handle correctly slats with less than 3 segmentation zones.
-
-Revision 1.3 2000/10/22 16:56:32 morsch
-- Store chamber number as slat id.
-
-Revision 1.2 2000/10/18 11:42:06 morsch
-- AliMUONRawCluster contains z-position.
-- Some clean-up of useless print statements during initialisations.
-
-Revision 1.1 2000/10/06 08:59:03 morsch
-Segmentation classes for bending and non bending plane slat modules (A. de Falco, A. Morsch)
-
-*/
+/* $Id$ */
/////////////////////////////////////////////////////
// Segmentation classes for slat modules //
#include "AliRun.h"
#include "AliMUON.h"
#include <TMath.h>
-#include <iostream.h>
+#include <Riostream.h>
#include "AliMUONSegmentationV01.h"
AliMUONSegmentationSlatModule::AliMUONSegmentationSlatModule()
{
// Default constructor
- fNsec=4;
+ fNDiv = 0;
+ fDpxD = 0;
+}
+
+AliMUONSegmentationSlatModule::AliMUONSegmentationSlatModule(Int_t nsec)
+{
+// Non default constructor
+ fNsec = nsec;
fNDiv = new TArrayI(fNsec);
fDpxD = new TArrayF(fNsec);
(*fNDiv)[0]=(*fNDiv)[1]=(*fNDiv)[2]=(*fNDiv)[3]=0;
(*fDpxD)[0]=(*fDpxD)[1]=(*fDpxD)[2]=(*fDpxD)[3]=0;
}
+AliMUONSegmentationSlatModule::~AliMUONSegmentationSlatModule()
+{
+// Destructor
+ if (fNDiv) delete fNDiv;
+ if (fDpxD) delete fDpxD;
+}
+
void AliMUONSegmentationSlatModule::SetPcbBoards(Int_t n[4])
{
//
}
-Float_t AliMUONSegmentationSlatModule::Dpy(Int_t isec) const
+Float_t AliMUONSegmentationSlatModule::Dpy(Int_t /*isec*/) const
{
// Return y-strip width
x=y=0;
}
}
-
+//-------------------------------------------------------------------------
+void AliMUONSegmentationSlatModule::GetPadI(Float_t x, Float_t y , Float_t /*z*/, Int_t &ix, Int_t &iy)
+{
+ GetPadI(x, y, ix, iy);
+}
+//-------------------------------------------------------------------------
void AliMUONSegmentationSlatModule::
SetPad(Int_t ix, Int_t iy)
{
void AliMUONSegmentationSlatModule::
SetHit(Float_t x, Float_t y)
{
+// Set current hit
+//
fXhit = x;
fYhit = y;
}
-
-
+//----------------------------------------------------------
+void AliMUONSegmentationSlatModule::SetHit(Float_t xhit, Float_t yhit, Float_t /*zhit*/)
+{
+ SetHit(xhit, yhit);
+}
+//----------------------------------------------------------
void AliMUONSegmentationSlatModule::
FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy)
{
fIymin, fIymax, fYmin, fYmax, fNpyS[isec], fId, isec, Dpy(isec));
*/
}
-
+//----------------------------------------------------------------------
+void AliMUONSegmentationSlatModule::FirstPad(Float_t xhit, Float_t yhit, Float_t /*zhit*/, Float_t dx, Float_t dy)
+{
+ FirstPad(xhit, yhit, dx, dy);
+}
+//----------------------------------------------------------------------
void AliMUONSegmentationSlatModule::NextPad()
{
// Stepper for the iteration over pads
Int_t AliMUONSegmentationSlatModule::MorePads()
+{
// Stopping condition for the iterator over pads
//
// Are there more pads in the integration region
-{
return (fIx != -1 || fIy != -1);
}
void AliMUONSegmentationSlatModule::Init(Int_t chamber)
{
- printf("\n Initialise Segmentation SlatModule \n");
//
// Fill the arrays fCx (x-contour) and fNpxS (ix-contour) for each sector
// These arrays help in converting from real to pad co-ordinates and
// concentric circles as shown below
//
// PCB module size in cm
+ // printf("\n Initialise Segmentation SlatModule \n");
+
fDxPCB=40;
fDyPCB=40;
//
fNpy=nPyPCB;
fNpx=fNpxS[3];
//
- AliMUON *pMUON = (AliMUON *) gAlice->GetModule("MUON");
fId = chamber;
}