]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Adding option for ownership of slat
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Oct 2006 11:51:09 +0000 (11:51 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Oct 2006 11:51:09 +0000 (11:51 +0000)
- Use of new function AliMpTrigger:;GetLayerSegmentation(..)

MUON/mapping/AliMpTriggerSegmentation.cxx
MUON/mapping/AliMpTriggerSegmentation.h

index 4364c3bc3d2bf0adfef4a860cf121b4ab7977fa4..e2aefb7bd7963508bd7c43f7ed4ed6e32b2e0cfa 100644 (file)
@@ -25,7 +25,6 @@
 #include "AliMpMotifType.h"
 #include "AliMpPCB.h"
 #include "AliMpSlat.h"
-#include "AliMpSlatSegmentation.h"
 #include "AliMpTrigger.h"
 
 /// 
@@ -44,8 +43,9 @@ ClassImp(AliMpTriggerSegmentation)
 //_____________________________________________________________________________
 AliMpTriggerSegmentation::AliMpTriggerSegmentation() 
 : AliMpVSegmentation(),
-fkSlat(0),
-fNofStrips(0)
+  fkSlat(0),
+  fIsOwner(false),
+  fNofStrips(0)
 {
   //
   // Default ctor. Not to be used really.
@@ -54,9 +54,11 @@ fNofStrips(0)
 }
 
 //_____________________________________________________________________________
-AliMpTriggerSegmentation::AliMpTriggerSegmentation(const AliMpTrigger* slat) 
+AliMpTriggerSegmentation::AliMpTriggerSegmentation(
+                               const AliMpTrigger* slat, Bool_t own) 
 : AliMpVSegmentation(), 
   fkSlat(slat),
+  fIsOwner(own),
   fNofStrips(0)
 {
   //
@@ -88,6 +90,9 @@ AliMpTriggerSegmentation::~AliMpTriggerSegmentation()
   //
   // Dtor (empty).
   //
+
+  if ( fIsOwner ) delete fkSlat;
+
   AliDebug(1,Form("this=%p",this));                    
 }
 
@@ -182,9 +187,8 @@ AliMpTriggerSegmentation::PadByLocation(const AliMpIntPair& location,
   
   for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
   {
-    const AliMpSlat* slat = fkSlat->GetLayer(i);
-    AliMpSlatSegmentation seg(slat);
-    AliMpPad pi = seg.PadByLocation(location,kFALSE);
+    AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+    AliMpPad pi = seg->PadByLocation(location,kFALSE);
     if ( pi.IsValid() ) 
     {
       if ( !pad.IsValid() )
@@ -225,9 +229,8 @@ AliMpTriggerSegmentation::PadByIndices(const AliMpIntPair& indices,
   
   for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
   {
-    const AliMpSlat* slat = fkSlat->GetLayer(i);
-    AliMpSlatSegmentation seg(slat);
-    AliMpPad pi = seg.PadByIndices(indices,kFALSE);
+    AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+    AliMpPad pi = seg->PadByIndices(indices,kFALSE);
     if ( pi.IsValid() ) 
     {      
       if ( !pad.IsValid() )
@@ -267,9 +270,8 @@ AliMpTriggerSegmentation::PadByPosition(const TVector2& position,
   
   for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
   {
-    const AliMpSlat* slat = fkSlat->GetLayer(i);
-    AliMpSlatSegmentation seg(slat);
-    AliMpPad pi = seg.PadByPosition(position,kFALSE);
+    AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+    AliMpPad pi = seg->PadByPosition(position,kFALSE);
     if ( pi.IsValid() ) 
     {
       if ( !pad.IsValid() )
index 347cc74cc96c4bd70b1095f2c4ffdf1339920198..d369f2545d47c30daa37625ab4a1e45ef2960c37 100644 (file)
@@ -33,7 +33,7 @@ class AliMpTriggerSegmentation : public AliMpVSegmentation
 {
 public:
   AliMpTriggerSegmentation();
-  AliMpTriggerSegmentation(const AliMpTrigger* slat);
+  AliMpTriggerSegmentation(const AliMpTrigger* slat, Bool_t own = false);
   virtual ~AliMpTriggerSegmentation();
   
   virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
@@ -67,10 +67,11 @@ private:
   AliMpTriggerSegmentation(const AliMpTriggerSegmentation& right);
   AliMpTriggerSegmentation&  operator = (const AliMpTriggerSegmentation& right);
 
-  const AliMpTrigger* fkSlat; ///< Slat
+  const AliMpTrigger* fkSlat;  ///< Slat
+  Bool_t              fIsOwner;///< Trigger slat ownership     
   Int_t fNofStrips; ///< Number of strips in this slat
 
-  ClassDef(AliMpTriggerSegmentation,2) // Segmentation for slat trigger stations
+  ClassDef(AliMpTriggerSegmentation,3) // Segmentation for slat trigger stations
 };
 
 #endif