Removing AliMpSegFactory -> using AliMpSegmentation instead
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Oct 2006 11:45:25 +0000 (11:45 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Oct 2006 11:45:25 +0000 (11:45 +0000)
MUON/AliMUONDisplay.cxx
MUON/AliMUONRawWriter.h
MUON/AliMUONReconstructor.h
MUON/AliMUONTriggerCircuitNew.h
MUON/AliMUONTriggerElectronics.cxx
MUON/mapping/AliMpManuList.cxx

index 73f7a21..6242b82 100644 (file)
@@ -81,7 +81,7 @@
 #include "AliMUONTriggerSegmentationV2.h"
 
 #include "AliMpDEIterator.h"
-#include "AliMpSegFactory.h"
+#include "AliMpSegmentation.h"
 #include "AliMpSlatSegmentation.h"
 #include "AliMpSlat.h"
 #include "AliMpSectorSegmentation.h"
@@ -800,9 +800,6 @@ void AliMUONDisplay::DrawView(Float_t theta, Float_t phi, Float_t psi)
     = pMUON->GetGeometryTransformer();
   
   AliMUONSegmentation* segmentation = pMUON->GetSegmentation();
-  AliMpSegFactory segFactory;
-  // Mapping segmentation factory will be used only to create mapping
-       // segmentations if not present in the DE segmentations
   
   // Display MUON Chamber Geometry
   char nodeName[7];
@@ -815,7 +812,7 @@ void AliMUONDisplay::DrawView(Float_t theta, Float_t phi, Float_t psi)
       
       Int_t detElemId = it.CurrentDE();
       AliMpSectorSegmentation * seg =   
-        (AliMpSectorSegmentation *) segmentation->GetMpSegmentation(detElemId, 0);
+        (AliMpSectorSegmentation *) AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, 0);
       const AliMpSector * sector = seg->GetSector();
       
       // get sector measurements
@@ -858,12 +855,8 @@ void AliMUONDisplay::DrawView(Float_t theta, Float_t phi, Float_t psi)
 
       if (  segmentation->HasDE(detElemId) ) 
       {
-        const AliMpVSegmentation* seg = segmentation->GetMpSegmentation(detElemId, 0);
-        if (!seg) { 
-          // Create mapping segmentation if old trigger segmentation
-          // (not using mapping)
-          seg = segFactory.CreateMpSegmentation(detElemId, 0);
-        }        
+        const AliMpVSegmentation* seg 
+         = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, 0);
         if (seg) 
         {  
           Float_t deltax = seg->Dimensions().X();
@@ -911,9 +904,6 @@ void AliMUONDisplay::DrawView(Float_t theta, Float_t phi, Float_t psi)
     }
   }
   
-//   // Delete mapping segmentations created with factory
-//  segFactory.DeleteSegmentations();
-  
   //add clusters to the pad
   DrawClusters();
   DrawHits();
@@ -1087,7 +1077,9 @@ void AliMUONDisplay::LoadDigits(Int_t chamber, Int_t cathode)
 // check if trigger is using new or old segmentation
     Bool_t old = true;
     AliMUONSegmentation* segmentation = pMUON->GetSegmentation();
-    if ( segmentation->GetMpSegmentation(1100, cathode-1) ) old = false;
+    const AliMUONVGeometryDESegmentation* kdeSegmentation 
+      = segmentation->GetDESegmentation(1100, cathode-1);
+    if ( dynamic_cast<const AliMUONTriggerSegmentationV2*>(kdeSegmentation) ) old = false;
 
     if ( old  && chamber > 10) {
        if (chamber > 10) printf(">>> old segmentation for trigger \n");
@@ -1183,7 +1175,7 @@ void AliMUONDisplay::LoadDigits(Int_t chamber, Int_t cathode)
            if (color > 282) color = 282;
            
            const AliMpVSegmentation* seg = 
-               pMUON->GetSegmentation()->GetMpSegmentation(detElemId,cathode-1);
+               AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,cathode-1);
            
            AliMpPad pad = seg->PadByIndices(AliMpIntPair(ix,iy),kTRUE);
            
index f87a8f2..91bfeec 100644 (file)
@@ -26,7 +26,6 @@ class AliMUONBusStruct;
 class AliMUONGlobalTrigger;
 class AliMpBusPatch;
 class AliMUONTriggerCrateStore;
-class AliMpSegFactory;
 class TStopwatch;
 
 class AliMUONRawWriter : public TObject 
@@ -83,8 +82,6 @@ private:
   
   TStopwatch* fTimers;             //!< time watchers
   
-  AliMpSegFactory* fSegFactory;         //!< mapping segmentation factory
-  
   AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
   AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
 
index d776484..2b77cb1 100644 (file)
@@ -18,7 +18,6 @@ class TTask;
 class AliMUONDigitMaker;
 class AliMUONTriggerCrateStore;
 class TClonesArray;
-class AliMpSegFactory;
 class AliMUONGeometryTransformer;
 
 class AliMUONReconstructor: public AliReconstructor 
@@ -63,8 +62,6 @@ private:
 
     TClonesArray* fTriggerCircuit;   //!< trigger circuit
  
-    AliMpSegFactory* fSegFactory;        //!< Mapping segmentation factory
-
     AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
 
   ClassDef(AliMUONReconstructor, 0)   // class for the MUON reconstruction
index 6106ed7..4d17f2a 100644 (file)
@@ -20,7 +20,6 @@
 
 class TObjArray;
 class AliMUONTriggerCrateStore;
-class AliMpSegFactory;
 class AliMUONGeometryTransformer;
 
 class AliMUONTriggerCircuitNew : public TObject 
@@ -50,7 +49,6 @@ public:
   //  void dump(const char* what, const Float_t* array, Int_t size);
   //  void dump(const char* what, const Int_t* array, Int_t size);
   
-  void  SetSegFactory(AliMpSegFactory* segFactory) {fSegFactory = segFactory;}
   void  SetTransformer(const AliMUONGeometryTransformer* transformer) {fTransformer = transformer;}
 
 private:
@@ -79,8 +77,6 @@ private:
   Float_t fYpos11[31];         ///< Y position of X strips in MC11
   Float_t fYpos21[63];         ///< Y position of X strips in MC21
 
-  AliMpSegFactory* fSegFactory; //!< Mapping segmentation factory
-
   const AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
 
   ClassDef(AliMUONTriggerCircuitNew,1) // Trigger Circuit class
index 5dae125..727e783 100644 (file)
@@ -38,6 +38,7 @@
 #include "AliMUONCalibrationData.h"
 #include "AliMUONVCalibParam.h"
 
+#include "AliMpSegmentation.h"
 #include "AliMpVSegmentation.h"
 
 #include "AliLog.h"
@@ -152,7 +153,7 @@ void AliMUONTriggerElectronics::FeedM()
              Int_t cathode    = mdig->Cathode();
 
              const AliMpVSegmentation *seg = 
-               ((AliMUON*)gAlice->GetDetector("MUON"))->GetSegmentation()->GetMpSegmentation(detElemId,cathode);
+               AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,cathode);
 
              Int_t ix = mdig->PadX(), iy = mdig->PadY();
                                
index 7995d61..489b401 100644 (file)
@@ -19,7 +19,7 @@
 
 #include "AliMpDEIterator.h"
 #include "AliMpDEManager.h"
-#include "AliMpSegFactory.h"
+#include "AliMpSegmentation.h"
 #include "AliMpStationType.h"
 #include "AliMpVSegmentation.h"
 #include "TArrayI.h"
@@ -38,15 +38,6 @@ ClassImp(AliMpManuList)
 /// \endcond
 
 //_____________________________________________________________________________
-AliMpSegFactory* segFactory()
-{
-  // FIXME: how to get this from elsewhere to insure we're not creating 
-  // a ton of them...
-  static AliMpSegFactory* sf = new AliMpSegFactory();
-  return sf;
-}
-
-//_____________________________________________________________________________
 AliMpManuList::AliMpManuList()
 {
   /// ctor
@@ -64,8 +55,9 @@ AliMpManuList::DoesChannelExist(Int_t detElemId, Int_t manuID, Int_t manuChannel
 {
   /// Whether a given (detElemId,manuID,manuChannel) combination is a valid one
   
-  AliMpVSegmentation* seg = 
-    segFactory()->CreateMpSegmentationByElectronics(detElemId,manuID);
+  const AliMpVSegmentation* seg = 
+    AliMpSegmentation::Instance()
+      ->GetMpSegmentationByElectronics(detElemId,manuID);
   if (!seg) return kFALSE;
   
   if ( seg->PadByLocation(AliMpIntPair(manuID,manuChannel),kFALSE).IsValid() )
@@ -101,7 +93,8 @@ AliMpManuList::ManuList()
     {
       for ( Int_t cath = 0; cath <=1 ; ++cath )
       {
-        AliMpVSegmentation* seg = segFactory()->CreateMpSegmentation(detElemId,cath);
+        const AliMpVSegmentation* seg 
+         = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,cath);
         
         TArrayI manus;
         
@@ -125,8 +118,9 @@ AliMpManuList::NumberOfChannels(Int_t detElemId, Int_t manuId)
   /// Returns the number of channels in that manuID. Answer should be <=64
   /// whatever happens.
   
-  AliMpVSegmentation* seg = 
-    segFactory()->CreateMpSegmentationByElectronics(detElemId,manuId);
+  const AliMpVSegmentation* seg = 
+    AliMpSegmentation::Instance()
+      ->GetMpSegmentationByElectronics(detElemId,manuId);
   Int_t n(0);
   for ( Int_t i = 0; i < 64; ++i )
   {
@@ -144,7 +138,8 @@ AliMpManuList::NumberOfManus(Int_t detElemId)
   Int_t n(0);
   for ( Int_t i = 0; i < 2; ++i )
   {
-    AliMpVSegmentation* seg = segFactory()->CreateMpSegmentation(detElemId,i);
+    const AliMpVSegmentation* seg 
+      = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,i);
     TArrayI manus;
     seg->GetAllElectronicCardIDs(manus);
     n += manus.GetSize();