]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added deleting of DE segmentation objects in AliMUONFactoryV2 (Ivana)
authorcussonno <cussonno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Feb 2005 05:31:47 +0000 (05:31 +0000)
committercussonno <cussonno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Feb 2005 05:31:47 +0000 (05:31 +0000)
MUON/AliMUONFactory.cxx
MUON/AliMUONFactory.h
MUON/AliMUONFactoryV2.cxx
MUON/AliMUONFactoryV2.h

index 2de8215d0d7d3c2ab4113a4a2f2f0a765a5642ee..f4783ef26cea585322bd01dfe37e2ebd75540b48 100644 (file)
 
 ClassImp(AliMUONFactory)
 
+//__________________________________________________________________________
+AliMUONFactory::AliMUONFactory(const char* name)
+  : TNamed(name, ""),
+    fMUON(0),
+    fResponse0(0)
+{
+//
+}
+
 //__________________________________________________________________________
 AliMUONFactory::AliMUONFactory()
-  : TObject(),
+  : TNamed(),
     fMUON(0),
     fResponse0(0)
 {
@@ -45,7 +54,7 @@ AliMUONFactory::AliMUONFactory()
 
 //__________________________________________________________________________
 AliMUONFactory::AliMUONFactory(const AliMUONFactory& rhs)
-  : TObject(rhs)
+  : TNamed(rhs)
 {
 // Protected copy constructor
 
index b811d2859ec5f7c49540bd6b5c6ac925f90a8786..c220410219177ae4601b9c1222eafd302d6e567f 100644 (file)
 //  Factory for muon chambers, segmentations and response //
 ////////////////////////////////////////////////////////////
 
-#include <TObject.h>
+#include <TNamed.h>
 
 class AliMUON;
 class AliMUONResponseV0;
 
-class AliMUONFactory : public  TObject {
+class AliMUONFactory : public  TNamed {
 
   public:
+    AliMUONFactory(const char* name);
     AliMUONFactory();
     virtual ~AliMUONFactory();
     
index fd0df7c389df53d0515b457d9c0a1c69be889a48..1a7116e6e5fa038c91cc4fb2e56809b3d3fbe76d 100644 (file)
 ClassImp(AliMUONFactoryV2)
 
 //__________________________________________________________________________
-  AliMUONFactoryV2::AliMUONFactoryV2()
-    : AliMUONFactory(),
+  AliMUONFactoryV2::AliMUONFactoryV2(const char* name)
+    : AliMUONFactory(name),
       fMUON(0),
-      fResponse0(0)
+      fResponse0(0),
+      fDESegmentations(0)
 {
   // FactoryV2 inherite from Factory for switching in AliMUONv1::Init()
   // to be changed when old segmentation will be removed.
+
+  fDESegmentations = new TObjArray();
+  fDESegmentations->SetOwner(kTRUE);
+}
+
+//__________________________________________________________________________
+  AliMUONFactoryV2::AliMUONFactoryV2()
+    : AliMUONFactory(),
+      fMUON(0),
+      fResponse0(0),
+      fDESegmentations(0)
+{
+// Default constructor
 }
 
 //__________________________________________________________________________
@@ -62,7 +76,9 @@ AliMUONFactoryV2::AliMUONFactoryV2(const AliMUONFactoryV2& rhs)
 
 AliMUONFactoryV2::~AliMUONFactoryV2()
 {
-  //
+// Destructor
+
+  delete fDESegmentations;
 }
 
 //__________________________________________________________________________
@@ -127,6 +143,10 @@ void AliMUONFactoryV2::BuildStation1()
     = new AliMUONSt12QuadrantSegmentation(kStation1, kBendingPlane);
   AliMUONSt12QuadrantSegmentation* nonbendSt1
     = new AliMUONSt12QuadrantSegmentation(kStation1, kNonBendingPlane);
+  
+  // Add in the array (for safe deleting)  
+  fDESegmentations->Add(bendSt1);  
+  fDESegmentations->Add(nonbendSt1);  
 
   AliMUONGeometrySegmentation* segmentation[2];
 
@@ -179,6 +199,10 @@ void AliMUONFactoryV2::BuildStation2()
   AliMUONSt12QuadrantSegmentation* nonbendSt2
     = new AliMUONSt12QuadrantSegmentation(kStation2, kNonBendingPlane);
 
+  // Add in the array (for safe deleting)  
+  fDESegmentations->Add(bendSt2);  
+  fDESegmentations->Add(nonbendSt2);  
+
   AliMUONGeometrySegmentation* segmentation[2];
 
   for (Int_t chamber = 2; chamber < 4; chamber++) {
@@ -233,11 +257,13 @@ void AliMUONFactoryV2::BuildStation3()
   Int_t ndiv[4] ={ 4, 4, 2, 1};  // densities zones 
   for(Int_t i=0; i<4; i++) {
     slatsegB[i] = new AliMUONSt345SlatSegmentation(1);
+    fDESegmentations->Add(slatsegB[i]);  
     slatsegB[i]->SetPadSize(10.,0.5);
     slatsegB[i]->SetPadDivision(ndiv);
     slatsegB[i]->SetId(1); // Id elt ????
     slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
     slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
+    fDESegmentations->Add(slatsegNB[i]);  
     slatsegNB[i]->SetPadSize(0.713,10.); // Nbending
     slatsegNB[i]->SetPadDivision(ndiv);
     slatsegNB[i]->SetId(1);
@@ -372,11 +398,13 @@ void AliMUONFactoryV2::BuildStation4()
   Int_t ndiv[4] ={ 4, 4, 2, 1};  // densities zones 
   for(Int_t i = 0; i < 7; i++) {
     slatsegB[i] = new AliMUONSt345SlatSegmentation(1);
+    fDESegmentations->Add(slatsegB[i]);  
     slatsegB[i]->SetPadSize(10.,0.5);
     slatsegB[i]->SetPadDivision(ndiv);
     slatsegB[i]->SetId(1);
     slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
     slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
+    fDESegmentations->Add(slatsegNB[i]);  
     slatsegNB[i]->SetPadSize(0.713,10.); 
     slatsegNB[i]->SetPadDivision(ndiv);
     slatsegNB[i]->SetId(1);
@@ -578,11 +606,13 @@ void AliMUONFactoryV2::BuildStation5()
   Int_t ndiv[4] ={ 4, 4, 2, 1};  // densities zones 
   for(Int_t i = 0; i < 6; i++) {
     slatsegB[i] = new AliMUONSt345SlatSegmentation(1);
+    fDESegmentations->Add(slatsegB[i]);  
     slatsegB[i]->SetPadSize(10.,0.5);
     slatsegB[i]->SetPadDivision(ndiv);
     slatsegB[i]->SetId(1);
     slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
     slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
+    fDESegmentations->Add(slatsegNB[i]);  
     slatsegNB[i]->SetPadSize(0.713,10.); 
     slatsegNB[i]->SetPadDivision(ndiv);
     slatsegNB[i]->SetId(1);
@@ -768,6 +798,8 @@ void AliMUONFactoryV2::BuildStation6()
       for(Int_t i=0; i<9; i++) {
         trigSegX[i] = new AliMUONTriggerSegmentation(1);
         trigSegY[i] = new AliMUONTriggerSegmentation(0);
+        fDESegmentations->Add(trigSegX[i]);  
+        fDESegmentations->Add(trigSegY[i]);  
         trigSegX[i]->SetLineNumber(9-i);    
         trigSegY[i]->SetLineNumber(9-i);    
       }
index 24be4c242751b3b27fc86e789086280d1eb69398..d5541cd54a03862387b9ff2dfcbcf1adb1a92eb9 100644 (file)
@@ -23,6 +23,7 @@ class AliMUONResponseV0;
 class AliMUONFactoryV2 : public  AliMUONFactory {
 
   public:
+    AliMUONFactoryV2(const char* name);
     AliMUONFactoryV2();
     virtual ~AliMUONFactoryV2();
     
@@ -43,8 +44,9 @@ class AliMUONFactoryV2 : public  AliMUONFactory {
     void BuildStation6();
 
     // data members    
-    AliMUON*           fMUON;      // MUON detector 
-    AliMUONResponseV0* fResponse0; // default response 
+    AliMUON*           fMUON;           // MUON detector 
+    AliMUONResponseV0* fResponse0;      // default response 
+    TObjArray*         fDESegmentations;// DE segmentations
 
   ClassDef(AliMUONFactoryV2,0)  // MUON Factory for Chambers and Segmentation
 };