Always delete TObjArrays created by TString::Tokenize (Ruben)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryConstituent.cxx
index 9108d54..ae83785 100644 (file)
@@ -1,16 +1,36 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
 // $Id$
-//
+
+//-----------------------------------------------------------------------------
 // Class AliMUONGeometryConstituent
 // -----------------------------
 // Helper class for definititon of an assembly of volumes.
 // Author: Ivana Hrivnacova, IPN Orsay
 // 23/01/2004
+//-----------------------------------------------------------------------------
 
 #include <TGeoMatrix.h>
 
 #include "AliMUONGeometryConstituent.h"
+#include "AliLog.h"
 
+/// \cond CLASSIMP
 ClassImp(AliMUONGeometryConstituent)
+/// \endcond
 
 //______________________________________________________________________________
 AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name, 
@@ -18,8 +38,11 @@ AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name,
   : TNamed(name, name),
     fCopyNo(copyNo),
     fNpar(npar),
-    fParam(0)                             
+    fParam(0), 
+    fTransformation(0)                            
 {                                  
+/// Standard constructor for a constituent without translation & rotation
+
   // fTransformation = new TGeoCombiTrans(name);
            // would be nice to be so simple 
 
@@ -43,6 +66,8 @@ AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name,
     fParam(0),                            
     fTransformation(0) 
 {
+/// Standard constructor for a constituent with translation
+
   // Create the constituent transformation
   fTransformation = new TGeoCombiTrans(translation, TGeoRotation());
 
@@ -66,6 +91,8 @@ AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name,
     fParam(0),                            
     fTransformation(0) 
 {
+/// Standard constructor for a constituent with translation and rotation
+
   // Create the constituent transformation
   fTransformation = new TGeoCombiTrans(translation, rotation);
 
@@ -77,44 +104,46 @@ AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name,
 }
 
 //______________________________________________________________________________
-AliMUONGeometryConstituent::AliMUONGeometryConstituent()
-  : TNamed(),
-    fCopyNo(0),
-    fNpar(0),
+AliMUONGeometryConstituent::AliMUONGeometryConstituent(const TString& name, 
+                                   Int_t copyNo, 
+                                  const TGeoCombiTrans& transform, 
+                                  Int_t npar, Double_t* param)
+                                  
+  : TNamed(name, name),
+    fCopyNo(copyNo),
+    fNpar(npar),
     fParam(0),                            
     fTransformation(0) 
 {
-// Default constructor
-}
+/// Standard constructor for a constituent with translation and rotation
+/// defined via TGeoCombiTrans
 
+  // Create the constituent transformation
+  fTransformation = new TGeoCombiTrans(transform);
 
-//______________________________________________________________________________
-AliMUONGeometryConstituent::AliMUONGeometryConstituent(
-                                        const AliMUONGeometryConstituent& rhs)
-  : TNamed(rhs)
-{
-  Fatal("Copy constructor", 
-        "Copy constructor is not implemented.");
+  // Volume parameters
+  if (npar > 0) {
+    fParam = new Double_t[npar];
+    for (Int_t i=0; i<npar; i++) fParam[i] = param[i];
+  }  
 }
 
 //______________________________________________________________________________
-AliMUONGeometryConstituent::~AliMUONGeometryConstituent() 
+AliMUONGeometryConstituent::AliMUONGeometryConstituent()
+  : TNamed(),
+    fCopyNo(0),
+    fNpar(0),
+    fParam(0),                            
+    fTransformation(0) 
 {
-//
-  delete fTransformation;
-  delete [] fParam;
+/// Default constructor
 }
 
 //______________________________________________________________________________
-AliMUONGeometryConstituent& 
-AliMUONGeometryConstituent::operator = (const AliMUONGeometryConstituent& rhs) 
+AliMUONGeometryConstituent::~AliMUONGeometryConstituent() 
 {
-  // check assignement to self
-  if (this == &rhs) return *this;
+/// Destructor
 
-  Fatal("operator=", 
-        "Assignment operator is not implemented.");
-    
-  return *this;  
+  delete fTransformation;
+  delete [] fParam;
 }
-