Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4GeometrySampler.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // $Id$
28 //
29 // ----------------------------------------------------------------------
30 // Class G4GeometrySampler
31 //
32 // Class description:
33 // This class inherits from G4VSampler. It is used for scoring and
34 // importance sampling in the tracking (mass) geometry.
35 // See also the description in G4VSampler.hh.
36 
37 // Author: Michael Dressel (Michael.Dressel@cern.ch)
38 // ----------------------------------------------------------------------
39 #ifndef G4GeometrySampler_hh
40 #define G4GeometrySampler_hh G4GeometrySampler_hh
41 
42 #include "G4Types.hh"
43 #include "G4String.hh"
44 #include "G4VSampler.hh"
46 
49 //class G4ScoreConfigurator;
51 //class G4VGCellFinder;
52 
54 {
55 
56 public: // with description
57 
58  explicit G4GeometrySampler(G4VPhysicalVolume *worldvolume, const G4String &particlename);
59  virtual ~G4GeometrySampler();
60 
61  // virtual void PrepareScoring(G4VScorer *Scorer);
62  virtual void PrepareImportanceSampling(G4VIStore *istore,
64  *ialg);
65  virtual void PrepareWeightRoulett(G4double wsurvive,
66  G4double wlimit,
67  G4double isource);
68 
69  virtual void PrepareWeightWindow(G4VWeightWindowStore *wwstore,
71  G4PlaceOfAction placeOfAction);
72 
73  virtual void Configure();
74 
75  virtual void ClearSampling();
76  virtual G4bool IsConfigured() const;
77 
78  void SetParallel(G4bool paraflag);
79  void SetParticle(const G4String &particlename);
80 
81 private:
82 
85  operator=(const G4GeometrySampler &);
86 
87 private:
88 
89  G4String fParticleName;
90  G4VPhysicalVolume* fWorld;
91  G4ImportanceConfigurator *fImportanceConfigurator;
92  // G4ScoreConfigurator *fScoreConfigurator;
93  // G4VGCellFinder *fGCellFinder;
94  G4WeightCutOffConfigurator *fWeightCutOffConfigurator;
95  G4VIStore *fIStore;
96  G4WeightWindowConfigurator *fWeightWindowConfigurator;
97  G4VWeightWindowStore *fWWStore;
98  G4bool fIsConfigured;
99  G4Configurators fConfigurators;
100 
101  G4bool paraflag;
102 
103 };
104 
105 #endif
106