#ifndef HDETGEOMPAR_H
#define HDETGEOMPAR_H

#include "hgeomtransform.h"
#include "hparset.h"
#include "TNamed.h"
#include "TObjArray.h"

class HGeomCompositeVolume;
class HGeomShapes;

class HModGeomPar :  public TNamed {
protected:
  TString refName;                 // name of the reference module volume
  HGeomCompositeVolume* refVolume; //! pointer to the reference module volume
  HGeomTransform transform;        // lab transformation
public:
  HModGeomPar() {refVolume=0;}
  ~HModGeomPar() {refVolume=0;}
  HGeomCompositeVolume* getRefVolume() {return refVolume;} 
  HGeomTransform& getLabTransform() {return transform;}
  const Text_t* getRefName() const { return refName; }
  void setRefName(const Text_t* s);
  void clear();
  void print();
  void setVolume(HGeomCompositeVolume* p) {refVolume=p;}
  ClassDef(HModGeomPar,1) // Module level of the basic geometry container
};

class HDetGeomPar : public HParSet {
protected:
  TObjArray* modules;    // linear array of all modules (type HModGeomPar)
  TObjArray* refVolumes; // array of module types (type HGeomCompositeVolume)
  Int_t maxSectors;      // maximum number of sectors
  Int_t maxModules;      // maximum number of modules in a sector
  Int_t numComponents;   // number of components in a sector 
  HGeomShapes* shapes;   //! pointer to the shape classes
  Bool_t isFirstInit;    //! kTRUE before first initialization
public:
  HDetGeomPar(const Char_t* name="",const Char_t* title="",const Char_t* context="",
              const Char_t* detectorName="");
  virtual ~HDetGeomPar();
  Int_t getNumModules();
  Int_t getNumRefModules();
  Int_t getNumComponents() {return numComponents;}
  Int_t getMaxSectors() {return maxSectors;}  
  Int_t getMaxModules() {return maxModules;}
  Bool_t isFirstInitialization() {return isFirstInit;}
  void setNotFirstInit() {isFirstInit=kFALSE;}  
  HModGeomPar* getModule(const Int_t,const Int_t);
  HModGeomPar* getModule(const Int_t);
  void getSector(TObjArray*,const Int_t);
  HGeomCompositeVolume* getRefVolume(const Int_t);
  void addRefVolume(HGeomCompositeVolume*,const Int_t);
  virtual Bool_t init(HParIo*,Int_t*) {return kFALSE;}
  virtual Int_t write(HParIo*) {return kFALSE;}
  virtual void clear();
  virtual void printParam(); 
  virtual Int_t getSecNum(const TString&) {return -1;}
  virtual Int_t getModNumInMod(const TString&) {return -1;}
  virtual Int_t getModNumInComp(const TString&) {return -1;}
  virtual Int_t getCompNum(const TString&) {return -1;}
  HGeomShapes* getShapes() {return shapes;}
  ClassDef(HDetGeomPar,2) // basic geometry container of a detector
};

#endif /* !HDETGEOMPAR_H */


Last change: Sat May 22 12:54:35 2010
Last generated: 2010-05-22 12:54

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.