]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSt345SlatSegmentationV2.cxx
Move to new mapping
[u/mrichter/AliRoot.git] / MUON / AliMUONSt345SlatSegmentationV2.cxx
index 5a6c8006bfd505041155ca3b74faac47428ce5e9..f5712ffc11dfed158e4c1d6d2fa01bde058382ce 100644 (file)
@@ -16,8 +16,8 @@
 /* $Id$ */
 
 #include "AliMUONSt345SlatSegmentationV2.h"
+#include "AliMUONConstants.h"
 
-#include "AliLog.h"
 #include "AliMpArea.h"
 #include "AliMpSlat.h"
 #include "AliMpSlatSegmentation.h"
 // Dpx, Dpy, Sector offer now to the clustering. That indeed should be
 // handled directly at the level of AliMpVSegmentation...
 #include "AliMpVPadIterator.h"
-#include "AliMUONSegmentationManager.h"
-#include "AliMUONConstants.h"
 
-#include "Riostream.h"
+#include "AliLog.h"
 
+#include "Riostream.h"
 #include "TClass.h"
 
 ClassImp(AliMUONSt345SlatSegmentationV2)
@@ -62,7 +61,9 @@ fYhit(FMAX)
 }
 
 //_____________________________________________________________________________
-AliMUONSt345SlatSegmentationV2::AliMUONSt345SlatSegmentationV2(Int_t detElemId, AliMpPlaneType bendingOrNonBending)
+AliMUONSt345SlatSegmentationV2::AliMUONSt345SlatSegmentationV2(
+                                   AliMpVSegmentation* segmentation,
+                                   Int_t detElemId, AliMpPlaneType bendingOrNonBending)
 : AliMUONVGeometryDESegmentation(),
 fDetElemId(detElemId),
 fPlaneType(bendingOrNonBending),
@@ -75,8 +76,12 @@ fYhit(FMAX)
   //
   // Normal ctor.
   //
-       
-       ReadMappingData();
+
+  fSlatSegmentation = dynamic_cast<AliMpSlatSegmentation*>(segmentation);
+  if (fSlatSegmentation)
+    fSlat = fSlatSegmentation->Slat();
+  else 
+    AliFatal("Wrong mapping segmentation type");
                
   AliDebug(1,Form("this=%p detElemId=%3d %s fSlatSegmentation=%p",this,detElemId,
                                                                        ( (bendingOrNonBending==kBendingPlane)?"Bending":"NonBending" ),
@@ -233,6 +238,17 @@ AliMUONSt345SlatSegmentationV2::GetDirection()
   return kDirUndefined;
 }
 
+//______________________________________________________________________________
+const AliMpVSegmentation*  
+AliMUONSt345SlatSegmentationV2::GetMpSegmentation() const
+{
+// Returns the mapping segmentation
+// (provides access to electronics info)
+
+  return fSlatSegmentation;
+}  
+
+
 //_____________________________________________________________________________
 void 
 AliMUONSt345SlatSegmentationV2::GetNParallelAndOffset(Int_t,Int_t,Int_t*,Int_t*)
@@ -403,9 +419,9 @@ AliMUONSt345SlatSegmentationV2::Neighbours(Int_t iX, Int_t iY, Int_t* Nlist,
        fSlatSegmentation->PadByIndices(AliMpIntPair(iX-fgIntOffset,iY-fgIntOffset),kTRUE);
        
   // Define the region to look into : a region slightly bigger
-  // than the pad itself (10% bigger), in order to catch first neighbours.
-//  AliMpArea area(pad.Position()+fSlat->Dimensions(),pad.Dimensions()*2.1); 
-  AliMpArea area(pad.Position(),pad.Dimensions()*2.1); 
+  // than the pad itself (5% bigger), in order to catch first neighbours.
+
+  AliMpArea area(pad.Position(),pad.Dimensions()*1.05); 
                
   AliMpVPadIterator* it = fSlatSegmentation->CreateIterator(area);
   it->First();
@@ -464,20 +480,6 @@ AliMUONSt345SlatSegmentationV2::Print(Option_t*) const
   << " fSlatSegmentation->Slat()=" << fSlatSegmentation->Slat() << endl;
 }
 
-//_____________________________________________________________________________
-void
-AliMUONSt345SlatSegmentationV2::ReadMappingData()
-{
-       fSlatSegmentation = dynamic_cast<AliMpSlatSegmentation*>
-  (AliMUONSegmentationManager::Segmentation(fDetElemId,fPlaneType));
-       
-  if (!fSlatSegmentation)
-       {
-               AliFatal("Wrong segmentation type encountered");
-       }
-  fSlat = fSlatSegmentation->Slat();
-}
-
 //_____________________________________________________________________________
 Int_t
 AliMUONSt345SlatSegmentationV2::Sector(Int_t ix, Int_t)
@@ -562,19 +564,3 @@ AliMUONSt345SlatSegmentationV2::SigGenInit(Float_t,Float_t,Float_t)
 {
   AliFatal("Not Implemented");
 }
-
-//_____________________________________________________________________________
-void
-AliMUONSt345SlatSegmentationV2::Streamer(TBuffer &R__b)
-{
-  if (R__b.IsReading()) 
-       {
-    AliMUONSt345SlatSegmentationV2::Class()->ReadBuffer(R__b, this);
-    ReadMappingData();
-  } 
-  else 
-       {
-    AliMUONSt345SlatSegmentationV2::Class()->WriteBuffer(R__b, this);
-  }
-}
-