File indexing completed on 2025-11-03 09:03:10
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 #ifndef CloudParameterisation_h
0030 #define CloudParameterisation_h 1
0031 
0032 #include "globals.hh"
0033 #include "G4VPVParameterisation.hh"
0034 #include "G4ThreeVector.hh"
0035 #include <vector>
0036 
0037 class G4VPhysicalVolume;
0038 class G4Box;
0039 
0040 
0041 class G4Trd;
0042 class G4Trap;
0043 class G4Cons;
0044 class G4Orb;
0045 class G4Sphere;
0046 class G4Ellipsoid;
0047 class G4Torus;
0048 class G4Para;
0049 class G4Hype;
0050 class G4Tubs;
0051 class G4Polycone;
0052 class G4Polyhedra;
0053 
0054 class CloudParameterisation : public G4VPVParameterisation
0055 { 
0056   public:
0057   
0058     explicit CloudParameterisation(const std::vector<G4ThreeVector>& positions);
0059 
0060     virtual ~CloudParameterisation()=default;
0061    
0062     void ComputeTransformation (const G4int copyNo,
0063                                 G4VPhysicalVolume* physVol) const;
0064 
0065     void ComputeDimensions (G4Box&,const G4int,
0066                             const G4VPhysicalVolume*) const {}
0067     void ComputeDimensions (G4Trd&,const G4int,
0068                             const G4VPhysicalVolume*) const {}
0069     void ComputeDimensions (G4Trap&,const G4int,
0070                             const G4VPhysicalVolume*) const {}
0071     void ComputeDimensions (G4Cons&,const G4int,
0072                             const G4VPhysicalVolume*) const {}
0073     void ComputeDimensions (G4Tubs&,const G4int,
0074                             const G4VPhysicalVolume*) const {}
0075     void ComputeDimensions (G4Orb&,const G4int,
0076                             const G4VPhysicalVolume*) const {}
0077     void ComputeDimensions (G4Ellipsoid&,const G4int,
0078                             const G4VPhysicalVolume*) const {}
0079     void ComputeDimensions (G4Torus&,const G4int,
0080                             const G4VPhysicalVolume*) const {}
0081     void ComputeDimensions (G4Para&,const G4int,
0082                             const G4VPhysicalVolume*) const {}
0083     void ComputeDimensions (G4Hype&,const G4int,
0084                             const G4VPhysicalVolume*) const {}
0085     void ComputeDimensions (G4Polycone&,const G4int,
0086                             const G4VPhysicalVolume*) const {}
0087     void ComputeDimensions (G4Polyhedra&,const G4int,
0088                             const G4VPhysicalVolume*) const {}
0089     void ComputeDimensions (G4Sphere&,const G4int,
0090                             const G4VPhysicalVolume*) const {}
0091   private:
0092     std::vector<G4ThreeVector> fPositions;
0093 };
0094 #endif