G4ReplicatedSlice


Directory: source/geometry/divisions/include
File Name: G4ReplicatedSlice.hh






Class Description :

  
  
   G4ReplicatedSlice represents many touchable detector elements differing
   only in their positioning. The elements' positions are calculated by means
   of a simple linear formula.
   
   Division may occur along:
  
   o Cartesian axes (kXAxis,kYAxis,kZAxis)
  
     The divisions, of specified width have coordinates of
     form (-width*(nReplicas-1)*0.5+n*width,0,0) where n=0.. nReplicas-1
     for the case of kXAxis, and are unrotated.
  
   o Radial axis (cylindrical polar) (kRho)
  
     The divisions are cons/tubs sections, centred on the origin
     and are unrotated.
     They have radii of width*n+offset to width*(n+1)+offset
                        where n=0..nReplicas-1
  
   o Phi axis (cylindrical polar) (kPhi)
     The divisions are `phi sections' or wedges, and of cons/tubs form
     They have phi of offset+n*width to offset+(n+1)*width where
     n=0..nReplicas-1


Public members :

    
    G4ReplicatedSlice(const G4String& pName,
                            G4LogicalVolume* pLogical,
                            G4LogicalVolume* pMotherLogical,
                      const EAxis pAxis,
                      const G4int nReplicas,
                      const G4double width,
                      const G4double half_gap,
                      const G4double offset );
      // Constructor with number of divisions and width

    G4ReplicatedSlice(const G4String& pName,
                            G4LogicalVolume* pLogical,
                            G4LogicalVolume* pMotherLogical,
                      const EAxis pAxis,
                      const G4int nReplicas,
                      const G4double half_gap,
                      const G4double offset );
      // Constructor with number of divisions 

    G4ReplicatedSlice(const G4String& pName,
                            G4LogicalVolume* pLogical,
                            G4LogicalVolume* pMotherLogical,
                      const EAxis pAxis,
                      const G4double width,
                      const G4double half_gap,
                      const G4double offset );
      // Constructor with width


    virtual ~G4ReplicatedSlice();

    virtual G4bool IsMany() const;
    virtual G4int GetCopyNo() const;
    virtual void  SetCopyNo(G4int CopyNo);
    virtual G4bool IsReplicated() const;
    virtual G4VPVParameterisation* GetParameterisation() const;
    virtual void GetReplicationData( EAxis& axis,
                                     G4int& nReplicas,
                                     G4double& width,
                                     G4double& offset,
                                     G4bool& consuming ) const;
    EAxis  GetDivisionAxis() const;
    G4bool IsParameterised() const;