#ifndef RE04ParallelWorldParam_h #define RE04ParallelWorldParam_h 1 #include "globals.hh" #include "G4VPVParameterisation.hh" class G4VPhysicalVolume; class G4Material; // Dummy declarations to get rid of warnings ... class G4Box; class G4Trd; class G4Trap; class G4Cons; class G4Orb; class G4Sphere; class G4Ellipsoid; class G4Torus; class G4Para; class G4Hype; class G4Tubs; class G4Polycone; class G4Polyhedra; // // Parameterisation class for volumes in a parallel world // // - void ComputeTransformation(const G4int copyNo, // G4VPhysicalVolume *physVol) const // returns a transformation with the physical volume of the 2nd argument // according to copyNo. // copyNo = 0 : the volume is placed at (-10*cm,-10*cm,0*cm) // = 1 : the volume is placed at (10*cm,10*cm,0*cm) // - G4Material* ComputeMaterial(const G4int copyNo, // G4VPhysicalVolume* currentVol, // const G4VTouchable* parentTouch=0); // returns a material according to copyNo. // copyNo = 0 : water // = 1 : lead // class ParallelWorldParam : public G4VPVParameterisation { public: ParallelWorldParam(); ~ParallelWorldParam(); void ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const; virtual void ComputeDimensions( G4Box&, const G4int, const G4VPhysicalVolume* ) const {;} private: // Dummy declarations to get rid of warnings ... void ComputeDimensions (G4Trd&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Trap&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Cons&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Orb&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Sphere&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Ellipsoid&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Torus&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Para&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Hype&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Tubs&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Polycone&,const G4int, const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Polyhedra&,const G4int, const G4VPhysicalVolume*) const {} private: G4Material* fWater; G4Material* fPb; }; #endif