Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

GeoShieldGroup.h

Go to the documentation of this file.
00001 
00002 //
00003 // GeoShieldGroup
00004 //
00005 // GeoShieldGroup is a helper class used by GeoGeometry to manage one
00006 // group of detector shield planes
00007 //
00008 // Author:  S. Kasahara 10/05
00009 //
00011 
00012 #ifndef GEOSHIELDGROUP_H
00013 #define GEOSHIELDGROUP_H
00014 
00015 #include <list>
00016 #include "GeoShield.h" // for enumerated group type
00017 
00018 class GeoGeometry; // stores reference to creator
00019 
00020 class GeoShieldGroup : public TObject {
00021 
00022   friend class GeoShield; // constructs GeoShieldGroup
00023   
00024  public:
00025 
00026   // Constructors/Destructors
00027   GeoShieldGroup():fGeoGeometry(0),fGroup(GeoShield::kUnknown),
00028                    fPoints(),fVolumes(){} // def ctor
00029   virtual ~GeoShieldGroup();
00030       
00031   // State testing methods
00032   std::list<const TGeoVolume*> GetListOfVolumes() const { return fVolumes; }
00033       
00034   virtual void Print(Option_t* option="") const;
00035 
00036   // State changing methods
00037 
00038   // add volume to group list, volume is NOT adopted
00039   void AddVolume(const TGeoVolume* volume, const UgliDbiSteelPln* stRow); 
00040 
00041  protected:
00042 
00043   // Normal constructor
00044   GeoShieldGroup(GeoGeometry* geo, GeoShield::EGroupType grp);
00045   void BuildNode(TGeoVolume* hallVol);
00046   
00047  private:
00048 
00049   // Disable copy and assignment ctor by making them private and w/no imp
00050   GeoShieldGroup(const GeoShieldGroup& that);
00051   GeoShieldGroup& operator=(const GeoShieldGroup& that);
00052   
00053   // data members
00054   GeoGeometry* fGeoGeometry; 
00055   GeoShield::EGroupType fGroup; // group type
00056   Double_t fPoints[2][3];  // points defining cnrs of bounding box shape
00057   // volumes belonging to this grp, TGeoVolumes are not owned
00058   std::list<const TGeoVolume*> fVolumes; 
00059   
00060   ClassDef(GeoShieldGroup,1)
00061 };
00062 
00063 #endif // GEOSHIELDGROUP_H

Generated on Mon Feb 15 11:06:45 2010 for loon by  doxygen 1.3.9.1