fixing small memory leak
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.h
index 1c51edc..e185b7d 100644 (file)
@@ -13,8 +13,6 @@
 // Modified: Yuri Kharlov (IHEP, Protvino)
 // 15 September 2000
 
-#include <assert.h> 
-
 // --- ROOT system ---
 #include "TObject.h"
 class TObjArray ;
@@ -25,166 +23,155 @@ class AliPHOSEMCAGeometry : public TObject {
 
 public: 
 
-           AliPHOSEMCAGeometry();
-           AliPHOSEMCAGeometry(const AliPHOSEMCAGeometry & cpv) {
-             // cpy ctor requested by Coding Convention but not yet needed
-             assert(0==1) ;
-           } 
-  virtual ~AliPHOSEMCAGeometry(void) {}
+  AliPHOSEMCAGeometry();
+  //Compiler-generated copy ctor and copy-assignment operator _ARE_ OK.
 
-  AliPHOSEMCAGeometry & operator = (const AliPHOSEMCAGeometry  & rvalue) {
-    // assignement operator requested by coding convention but not needed
-    assert(0==1) ;
-    return *this ; 
-  }
-
-  Float_t * GetStripHalfSize()   {return fStripHalfSize ;}
-  Float_t * GetAirCellHalfSize() {return fAirCellHalfSize ;}
-  Float_t * GetWrappedHalfSize() {return fWrappedHalfSize ;}
-  Float_t   GetAirGapLed() const {return fAirGapLed ;}
-  Float_t * GetCrystalHalfSize() {return fCrystalHalfSize ;}
-  Float_t * GetSupportPlateHalfSize() { return fSupportPlateHalfSize ;}
-  Float_t * GetSupportPlateInHalfSize() {return fSupportPlateInHalfSize ;}
-  Float_t   GetSupportPlateThickness(void)   const { return fSupportPlateThickness ; }    
-
-  Float_t * GetPreampHalfSize() {return fPreampHalfSize ;}
-  Float_t * GetAPDHalfSize(void) {return fPinDiodeHalfSize ; }
-  Float_t * GetOuterThermoParams(void) {return  fOuterThermoParams ; }
-  Float_t * GetCoolerHalfSize(void) {return fCoolerHalfSize ;}
-  Float_t * GetAirGapHalfSize(void) {return fAirGapHalfSize; }
-  Float_t * GetInnerThermoHalfSize(void) {return  fInnerThermoHalfSize ; }
-  Float_t * GetAlCoverParams() {return fAlCoverParams ; }
-  Float_t * GetFiberGlassHalfSize() {return fFiberGlassHalfSize ; }
-  Float_t * GetWarmAlCoverHalfSize() {return fWarmAlCoverHalfSize ;}
-  Float_t * GetWarmThermoHalfSize() {return fWarmThermoHalfSize ;}
-  Float_t * GetTSupport1HalfSize() {return fTSupport1HalfSize ;}
-  Float_t * GetTSupport2HalfSize() {return fTSupport2HalfSize ;}
-  Float_t * GetTCables1HalfSize() {return fTCables1HalfSize ; }
-  Float_t * GetTCables2HalfSize() {return fTCables2HalfSize ; }
-  Float_t   GetTSupportDist() {return fTSupportDist ; }
-  Float_t * GetFrameXHalfSize() {return fFrameXHalfSize ;}
-  Float_t * GetFrameZHalfSize() {return fFrameZHalfSize ;}
-  Float_t * GetFrameXPosition() {return fFrameXPosition ;}
-  Float_t * GetFrameZPosition() {return fFrameZPosition ;}
-  Float_t * GetFGupXHalfSize()  {return fFGupXHalfSize ; }
-  Float_t * GetFGupXPosition()  {return fFGupXPosition ; }
-  Float_t * GetFGupZHalfSize()  {return fFGupZHalfSize ; }
-  Float_t * GetFGupZPosition()  {return fFGupZPosition ; }
-  Float_t * GetFGlowXHalfSize()  {return fFGlowXHalfSize ; }
-  Float_t * GetFGlowXPosition()  {return fFGlowXPosition ; }
-  Float_t * GetFGlowZHalfSize()  {return fFGlowZHalfSize ; }
-  Float_t * GetFGlowZPosition()  {return fFGlowZPosition ; }
-  Float_t * GetFEEAirHalfSize()  {return fFEEAirHalfSize ; }
-  Float_t * GetFEEAirPosition()  {return fFEEAirPosition ; }
-  Float_t * GetEMCParams() {return fEMCParams ;}
-
-  Float_t    GetIPtoCrystalSurface(void)          const { 
-    return fIPtoCrystalSurface ; }
-  Float_t    GetIPtoOuterCoverDistance(void)      const { 
-    return fIPtoOuterCoverDistance ; }
-  Float_t    GetCrystalSize(Int_t index)  const {return 2.*fCrystalHalfSize[index] ; }
-
-  
-  Int_t     GetNCellsInStrip() const { return fNCellsInStrip;}
-  Int_t     GetNStripX()       const { return fNStripX ; }
-  Int_t     GetNStripZ()       const { return fNStripZ ; }
-  Int_t     GetNTSuppots()     const { return fNTSupports; }
-  Int_t     GetNPhi(void)      const { return fNPhi ; }
-  Int_t     GetNZ(void)        const { return fNZ ; }
+  virtual ~AliPHOSEMCAGeometry(void) {}
 
+  const Float_t * GetStripHalfSize()          const {return fStripHalfSize ;         }
+  Float_t   GetStripWallWidthOut()      const {return fStripWallWidthOut ;     }
+  const Float_t * GetAirCellHalfSize()        const {return fAirCellHalfSize ;       }
+  const Float_t * GetWrappedHalfSize()        const {return fWrappedHalfSize ;       }
+  Float_t   GetAirGapLed()              const {return fAirGapLed ;             }
+  const Float_t * GetCrystalHalfSize()        const {return fCrystalHalfSize ;       }
+  const Float_t * GetSupportPlateHalfSize()   const {return fSupportPlateHalfSize ;  }
+  const Float_t * GetSupportPlateInHalfSize() const {return fSupportPlateInHalfSize ;}
+  Float_t   GetSupportPlateThickness()  const { return fSupportPlateThickness ;}    
+
+  const Float_t * GetPreampHalfSize()         const {return fPreampHalfSize ;        }
+  const Float_t * GetAPDHalfSize()            const {return fPinDiodeHalfSize ;      }
+  const Float_t * GetOuterThermoParams()      const {return  fOuterThermoParams ;    }
+  const Float_t * GetCoolerHalfSize()         const {return fCoolerHalfSize ;        }
+  const Float_t * GetAirGapHalfSize()         const {return fAirGapHalfSize;         }
+  const Float_t * GetInnerThermoHalfSize()    const {return  fInnerThermoHalfSize ;  }
+  const Float_t * GetAlCoverParams()          const {return fAlCoverParams ;         }
+  const Float_t * GetFiberGlassHalfSize()     const {return fFiberGlassHalfSize ;    }
+  const Float_t * GetWarmAlCoverHalfSize()    const {return fWarmAlCoverHalfSize ;   }
+  const Float_t * GetWarmThermoHalfSize()     const {return fWarmThermoHalfSize ;    }
+  const Float_t * GetTSupport1HalfSize()      const {return fTSupport1HalfSize ;     }
+  const Float_t * GetTSupport2HalfSize()      const {return fTSupport2HalfSize ;     }
+  const Float_t * GetTCables1HalfSize()       const {return fTCables1HalfSize ;      }
+  const Float_t * GetTCables2HalfSize()       const {return fTCables2HalfSize ;      }
+  Float_t   GetTSupportDist()           const {return fTSupportDist ;          }
+  const Float_t * GetFrameXHalfSize()         const {return fFrameXHalfSize ;        }
+  const Float_t * GetFrameZHalfSize()         const {return fFrameZHalfSize ;        }
+  const Float_t * GetFrameXPosition()         const {return fFrameXPosition ;        }
+  const Float_t * GetFrameZPosition()         const {return fFrameZPosition ;        }
+  const Float_t * GetFGupXHalfSize()          const {return fFGupXHalfSize ;         }
+  const Float_t * GetFGupXPosition()          const {return fFGupXPosition ;         }
+  const Float_t * GetFGupZHalfSize()          const {return fFGupZHalfSize ;         }
+  const Float_t * GetFGupZPosition()          const {return fFGupZPosition ;         }
+  const Float_t * GetFGlowXHalfSize()         const {return fFGlowXHalfSize ;        }
+  const Float_t * GetFGlowXPosition()         const {return fFGlowXPosition ;        }
+  const Float_t * GetFGlowZHalfSize()         const {return fFGlowZHalfSize ;        }
+  const Float_t * GetFGlowZPosition()         const {return fFGlowZPosition ;        }
+  const Float_t * GetFEEAirHalfSize()         const {return fFEEAirHalfSize ;        }
+  const Float_t * GetFEEAirPosition()         const {return fFEEAirPosition ;        }
+  const Float_t * GetEMCParams()              const {return fEMCParams ;             }
+
+  Float_t    GetIPtoCrystalSurface()     const {return fIPtoCrystalSurface ;   }
+  Float_t    GetIPtoOuterCoverDistance() const {return fIPtoOuterCoverDistance;}
+  Float_t    GetCrystalSize(Int_t index) const {return 2.*fCrystalHalfSize[index] ; }
+
+  Int_t     GetNCellsXInStrip() const { return fNCellsXInStrip;}
+  Int_t     GetNCellsZInStrip() const { return fNCellsZInStrip;}
+  Int_t     GetNStripX()        const { return fNStripX ;      }
+  Int_t     GetNStripZ()        const { return fNStripZ ;      }
+  Int_t     GetNTSuppots()      const { return fNTSupports;    }
+  Int_t     GetNPhi()           const { return fNPhi ;         }
+  Int_t     GetNZ()             const { return fNZ ;           }
  
 private:
 
-  Float_t fStripHalfSize[3]   ;
-  Float_t fAirCellHalfSize[3] ;
-  Float_t fWrappedHalfSize[3] ;
-  Float_t fSupportPlateHalfSize[3] ;
-  Float_t fSupportPlateInHalfSize[3] ;
-  Float_t fCrystalHalfSize[3] ;
-  Float_t fAirGapLed ;
-  Float_t fStripWallWidthOut ; // Side to another strip  
-  Float_t fStripWallWidthIn ; 
-  Float_t fTyvecThickness ; 
-  Float_t fTSupport1HalfSize[3] ;
-  Float_t fTSupport2HalfSize[3] ;
-  Float_t fPreampHalfSize[3] ;
-  Float_t fPinDiodeHalfSize[3] ;              // Size of the PIN Diode 
-
-  Float_t fOuterThermoParams[4] ; 
-  Float_t fCoolerHalfSize[3] ; 
-  Float_t fAirGapHalfSize[3] ;
-  Float_t fInnerThermoHalfSize[3] ;
-  Float_t fAlCoverParams[4] ;
-  Float_t fFiberGlassHalfSize[3] ;
-
-
-  Float_t fInnerThermoWidthX ;
-  Float_t fInnerThermoWidthY ;
-  Float_t fInnerThermoWidthZ ;
-  Float_t fAirGapWidthX ;
-  Float_t fAirGapWidthY ;
-  Float_t fAirGapWidthZ ;
-  Float_t fCoolerWidthX ;
-  Float_t fCoolerWidthY ;
-  Float_t fCoolerWidthZ ;
-  Float_t fAlCoverThickness ;
-  Float_t fOuterThermoWidthXUp ;
-  Float_t fOuterThermoWidthXLow;
-  Float_t fOuterThermoWidthY ;
-  Float_t fOuterThermoWidthZ ;
-  Float_t fAlFrontCoverX  ;
-  Float_t fAlFrontCoverZ  ; 
-  Float_t fFiberGlassSup2X ;
-  Float_t fFiberGlassSup1X ; 
-  Float_t fFrameHeight ; 
-  Float_t fFrameThickness ; 
-  Float_t fAirSpaceFeeX ;
-  Float_t fAirSpaceFeeZ ;
-  Float_t fAirSpaceFeeY ;
-  Float_t fTCables2HalfSize[3] ; 
-  Float_t fTCables1HalfSize[3] ; 
-  Float_t fWarmUpperThickness ;
-  Float_t fWarmBottomThickness ;
-  Float_t fWarmAlCoverWidthX ;
-  Float_t fWarmAlCoverWidthY ;
-  Float_t fWarmAlCoverWidthZ ;
-  Float_t fWarmAlCoverHalfSize[3] ;
-  Float_t fWarmThermoHalfSize[3] ;
-  Float_t fFiberGlassSup1Y ;
-  Float_t fFiberGlassSup2Y ;
-  Float_t fTSupportDist ;
-  Float_t fTSupport1Thickness ;
-  Float_t fTSupport2Thickness ;
-  Float_t fTSupport1Width ;
-  Float_t fTSupport2Width ;
-  Float_t fFrameXHalfSize[3] ;
-  Float_t fFrameZHalfSize[3] ;
-  Float_t fFrameXPosition[3] ;
-  Float_t fFrameZPosition[3] ;
-  Float_t fFGupXHalfSize[3] ;
-  Float_t fFGupXPosition[3] ;
-  Float_t fFGupZHalfSize[3] ;
-  Float_t fFGupZPosition[3] ;
-  Float_t fFGlowXHalfSize[3] ;
-  Float_t fFGlowXPosition[3] ;
-  Float_t fFGlowZHalfSize[3] ;
-  Float_t fFGlowZPosition[3] ;
-  Float_t fFEEAirHalfSize[3] ;
-  Float_t fFEEAirPosition[3] ;
-  Float_t fEMCParams[4] ;
-  Float_t fIPtoOuterCoverDistance ;       // Distances from interaction point to outer cover 
-  Float_t fIPtoCrystalSurface ;           // Distances from interaction point to Xtal surface
-
-  Float_t fSupportPlateThickness ;        // Thickness of the Aluminium support plate for Strip   
-
-  Int_t  fNCellsInStrip ;
-  Int_t  fNStripX ;
-  Int_t  fNStripZ ;
-  Int_t  fNTSupports ;
-  Int_t  fNPhi ;                         // Number of crystal units in X (phi) direction
-  Int_t  fNZ ;                           // Number of crystal units in Z direction
-
-  ClassDef(AliPHOSEMCAGeometry,1)         // EMCA geometry class 
+  Float_t fStripHalfSize[3]   ;        // Strip unit size/2
+  Float_t fAirCellHalfSize[3] ;        // geometry parameter
+  Float_t fWrappedHalfSize[3] ;        // geometry parameter
+  Float_t fSupportPlateHalfSize[3] ;   // geometry parameter
+  Float_t fSupportPlateInHalfSize[3] ; // geometry parameter
+  Float_t fCrystalHalfSize[3] ;        // crystal size/2
+  Float_t fAirGapLed ;                 // geometry parameter
+  Float_t fStripWallWidthOut ;         // Side to another strip  
+  Float_t fStripWallWidthIn ;          // geometry parameter
+  Float_t fTyvecThickness ;            // geometry parameter
+  Float_t fTSupport1HalfSize[3] ;      // geometry parameter
+  Float_t fTSupport2HalfSize[3] ;      // geometry parameter
+  Float_t fPreampHalfSize[3] ;         // geometry parameter
+  Float_t fPinDiodeHalfSize[3] ;       // Size of the PIN Diode 
+
+  Float_t fOuterThermoParams[4] ;      // geometry parameter
+  Float_t fCoolerHalfSize[3] ;         // geometry parameter
+  Float_t fAirGapHalfSize[3] ;         // geometry parameter
+  Float_t fInnerThermoHalfSize[3] ;    // geometry parameter
+  Float_t fAlCoverParams[4] ;          // geometry parameter
+  Float_t fFiberGlassHalfSize[3] ;     // geometry parameter
+
+  Float_t fInnerThermoWidthX ;         // geometry parameter
+  Float_t fInnerThermoWidthY ;         // geometry parameter
+  Float_t fInnerThermoWidthZ ;         // geometry parameter
+  Float_t fAirGapWidthX ;              // geometry parameter
+  Float_t fAirGapWidthY ;              // geometry parameter
+  Float_t fAirGapWidthZ ;              // geometry parameter
+  Float_t fCoolerWidthX ;              // geometry parameter
+  Float_t fCoolerWidthY ;              // geometry parameter
+  Float_t fCoolerWidthZ ;              // geometry parameter
+  Float_t fAlCoverThickness ;          // geometry parameter
+  Float_t fOuterThermoWidthXUp ;       // geometry parameter
+  Float_t fOuterThermoWidthXLow;       // geometry parameter
+  Float_t fOuterThermoWidthY ;         // geometry parameter
+  Float_t fOuterThermoWidthZ ;         // geometry parameter
+  Float_t fAlFrontCoverX  ;            // geometry parameter
+  Float_t fAlFrontCoverZ  ;            // geometry parameter
+  Float_t fFiberGlassSup2X ;           // geometry parameter
+  Float_t fFiberGlassSup1X ;           // geometry parameter
+  Float_t fFrameHeight ;               // geometry parameter
+  Float_t fFrameThickness ;            // geometry parameter
+  Float_t fAirSpaceFeeX ;              // geometry parameter
+  Float_t fAirSpaceFeeZ ;              // geometry parameter
+  Float_t fAirSpaceFeeY ;              // geometry parameter
+  Float_t fTCables2HalfSize[3] ;       // geometry parameter
+  Float_t fTCables1HalfSize[3] ;       // geometry parameter
+  Float_t fWarmUpperThickness ;        // geometry parameter
+  Float_t fWarmBottomThickness ;       // geometry parameter
+  Float_t fWarmAlCoverWidthX ;         // geometry parameter
+  Float_t fWarmAlCoverWidthY ;         // geometry parameter
+  Float_t fWarmAlCoverWidthZ ;         // geometry parameter
+  Float_t fWarmAlCoverHalfSize[3] ;    // geometry parameter
+  Float_t fWarmThermoHalfSize[3] ;     // geometry parameter
+  Float_t fFiberGlassSup1Y ;           // geometry parameter
+  Float_t fFiberGlassSup2Y ;           // geometry parameter
+  Float_t fTSupportDist ;              // geometry parameter
+  Float_t fTSupport1Thickness ;        // geometry parameter
+  Float_t fTSupport2Thickness ;        // geometry parameter
+  Float_t fTSupport1Width ;            // geometry parameter
+  Float_t fTSupport2Width ;            // geometry parameter
+  Float_t fFrameXHalfSize[3] ;         // geometry parameter
+  Float_t fFrameZHalfSize[3] ;         // geometry parameter
+  Float_t fFrameXPosition[3] ;         // geometry parameter
+  Float_t fFrameZPosition[3] ;         // geometry parameter
+  Float_t fFGupXHalfSize[3] ;          // geometry parameter
+  Float_t fFGupXPosition[3] ;          // geometry parameter
+  Float_t fFGupZHalfSize[3] ;          // geometry parameter
+  Float_t fFGupZPosition[3] ;          // geometry parameter
+  Float_t fFGlowXHalfSize[3] ;         // geometry parameter
+  Float_t fFGlowXPosition[3] ;         // geometry parameter
+  Float_t fFGlowZHalfSize[3] ;         // geometry parameter
+  Float_t fFGlowZPosition[3] ;         // geometry parameter
+  Float_t fFEEAirHalfSize[3] ;         // geometry parameter
+  Float_t fFEEAirPosition[3] ;         // geometry parameter
+  Float_t fEMCParams[4] ;              // geometry parameter
+  Float_t fIPtoOuterCoverDistance ;    // Distances from interaction point to outer cover 
+  Float_t fIPtoCrystalSurface ;        // Distances from interaction point to Xtal surface
+
+  Float_t fSupportPlateThickness ;     // Thickness of the Aluminium support plate for Strip   
+
+  Int_t  fNCellsXInStrip ;             // Number of cells in a strip unit in X
+  Int_t  fNCellsZInStrip ;             // Number of cells in a strip unit in Z
+  Int_t  fNStripX ;                    // Number of strip units in X
+  Int_t  fNStripZ ;                    // Number of strip units in Z
+  Int_t  fNTSupports ;                 // geometry parameter
+  Int_t  fNPhi ;                       // Number of crystal units in X (phi) direction
+  Int_t  fNZ ;                         // Number of crystal units in Z direction
+  ClassDef(AliPHOSEMCAGeometry,1)      // EMCA geometry class 
 
 } ;