ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$
// Revision of includes 07/05/2004
//
/// \ingroup geometry
/// \class AliMUONGeometryConstituent
/// \brief Helper class for definititon of an assembly of volumes.
///
/// \author Ivana Hrivnacova, IPN Orsay

#ifndef ALI_MUON_GEOMETRY_CONSTITUENT_H
#define ALI_MUON_GEOMETRY_CONSTITUENT_H

#include <TNamed.h>

class TGeoTranslation;
class TGeoRotation;
class TGeoCombiTrans;
class TObjArray;

class AliMUONGeometryConstituent : public TNamed
{
  public:
    AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
                         Int_t npar, Double_t* param); 
    AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
                         const TGeoTranslation& translation,
			 Int_t npar, Double_t* param); 
    AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
                         const TGeoTranslation& translation, 
	  	         const TGeoRotation& rotation,
			 Int_t npar, Double_t* param);
     AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
                         const TGeoCombiTrans& transform,
			 Int_t npar, Double_t* param);
   AliMUONGeometryConstituent();
    virtual ~AliMUONGeometryConstituent();

    // get methods
    Int_t                  GetCopyNo() const;  
    Int_t                  GetNpar() const;
    Double_t*              GetParam() const;
    const TGeoCombiTrans*  GetTransformation() const;

  protected:
    /// Not implemented
    AliMUONGeometryConstituent(const AliMUONGeometryConstituent& rhs);
    /// Not implemented
    AliMUONGeometryConstituent& operator = (const AliMUONGeometryConstituent& rhs);

  private:
    Int_t            fCopyNo;        ///< copy number
    Int_t            fNpar;          ///< number of shape parameters
    
    /// shape parameters
    Double_t*        fParam;         //[fNpar] shape parameters

    TGeoCombiTrans*  fTransformation;///< \brief the constituent transformation
                                     ///  wrt to the envelope
 
  ClassDef(AliMUONGeometryConstituent,1) // MUON chamber geometry base class
};

// inline functions

/// Return copy number
inline Int_t AliMUONGeometryConstituent::GetCopyNo() const
{ return fCopyNo; }  

/// Return number of shape parameters
inline Int_t AliMUONGeometryConstituent::GetNpar() const
{ return fNpar; }

/// Return the array of shape parameters
inline Double_t* AliMUONGeometryConstituent::GetParam() const
{ return fParam; }

/// Return the constituent transformation wrt to the envelope
inline const TGeoCombiTrans* AliMUONGeometryConstituent::GetTransformation() const 
{ return fTransformation; }

#endif //ALI_MUON_GEOMETRY_CONSTITUENT_H
 AliMUONGeometryConstituent.h:1
 AliMUONGeometryConstituent.h:2
 AliMUONGeometryConstituent.h:3
 AliMUONGeometryConstituent.h:4
 AliMUONGeometryConstituent.h:5
 AliMUONGeometryConstituent.h:6
 AliMUONGeometryConstituent.h:7
 AliMUONGeometryConstituent.h:8
 AliMUONGeometryConstituent.h:9
 AliMUONGeometryConstituent.h:10
 AliMUONGeometryConstituent.h:11
 AliMUONGeometryConstituent.h:12
 AliMUONGeometryConstituent.h:13
 AliMUONGeometryConstituent.h:14
 AliMUONGeometryConstituent.h:15
 AliMUONGeometryConstituent.h:16
 AliMUONGeometryConstituent.h:17
 AliMUONGeometryConstituent.h:18
 AliMUONGeometryConstituent.h:19
 AliMUONGeometryConstituent.h:20
 AliMUONGeometryConstituent.h:21
 AliMUONGeometryConstituent.h:22
 AliMUONGeometryConstituent.h:23
 AliMUONGeometryConstituent.h:24
 AliMUONGeometryConstituent.h:25
 AliMUONGeometryConstituent.h:26
 AliMUONGeometryConstituent.h:27
 AliMUONGeometryConstituent.h:28
 AliMUONGeometryConstituent.h:29
 AliMUONGeometryConstituent.h:30
 AliMUONGeometryConstituent.h:31
 AliMUONGeometryConstituent.h:32
 AliMUONGeometryConstituent.h:33
 AliMUONGeometryConstituent.h:34
 AliMUONGeometryConstituent.h:35
 AliMUONGeometryConstituent.h:36
 AliMUONGeometryConstituent.h:37
 AliMUONGeometryConstituent.h:38
 AliMUONGeometryConstituent.h:39
 AliMUONGeometryConstituent.h:40
 AliMUONGeometryConstituent.h:41
 AliMUONGeometryConstituent.h:42
 AliMUONGeometryConstituent.h:43
 AliMUONGeometryConstituent.h:44
 AliMUONGeometryConstituent.h:45
 AliMUONGeometryConstituent.h:46
 AliMUONGeometryConstituent.h:47
 AliMUONGeometryConstituent.h:48
 AliMUONGeometryConstituent.h:49
 AliMUONGeometryConstituent.h:50
 AliMUONGeometryConstituent.h:51
 AliMUONGeometryConstituent.h:52
 AliMUONGeometryConstituent.h:53
 AliMUONGeometryConstituent.h:54
 AliMUONGeometryConstituent.h:55
 AliMUONGeometryConstituent.h:56
 AliMUONGeometryConstituent.h:57
 AliMUONGeometryConstituent.h:58
 AliMUONGeometryConstituent.h:59
 AliMUONGeometryConstituent.h:60
 AliMUONGeometryConstituent.h:61
 AliMUONGeometryConstituent.h:62
 AliMUONGeometryConstituent.h:63
 AliMUONGeometryConstituent.h:64
 AliMUONGeometryConstituent.h:65
 AliMUONGeometryConstituent.h:66
 AliMUONGeometryConstituent.h:67
 AliMUONGeometryConstituent.h:68
 AliMUONGeometryConstituent.h:69
 AliMUONGeometryConstituent.h:70
 AliMUONGeometryConstituent.h:71
 AliMUONGeometryConstituent.h:72
 AliMUONGeometryConstituent.h:73
 AliMUONGeometryConstituent.h:74
 AliMUONGeometryConstituent.h:75
 AliMUONGeometryConstituent.h:76
 AliMUONGeometryConstituent.h:77
 AliMUONGeometryConstituent.h:78
 AliMUONGeometryConstituent.h:79
 AliMUONGeometryConstituent.h:80
 AliMUONGeometryConstituent.h:81
 AliMUONGeometryConstituent.h:82
 AliMUONGeometryConstituent.h:83
 AliMUONGeometryConstituent.h:84