Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 #ifdef USE_INFERENCE 27 # ifndef PAR04MLFASTSIMMODEL_HH 28 # define PAR04MLFASTSIMMODEL_HH 29 30 # include "G4VFastSimulationModel.hh" // f 31 32 # include <G4String.hh> // for G4String 33 # include <G4ThreeVector.hh> // for G4Thre 34 # include <G4Types.hh> // for G4bool, G4do 35 # include <memory> // for unique_ptr 36 # include <vector> // for vector 37 class G4FastSimHitMaker; 38 class G4FastStep; 39 class G4FastHit; 40 class G4FastTrack; 41 class G4ParticleDefinition; 42 class G4Region; 43 class Par04InferenceSetup; 44 45 /** 46 * @brief Inference for the fast simulation mo 47 * 48 * Parametrisation of electrons, positrons, an 49 * distributed according to ML inference. This 50 * triggers the inference, asks for values, an 51 * given positions. 52 * 53 **/ 54 55 class Par04MLFastSimModel : public G4VFastSimu 56 { 57 public: 58 Par04MLFastSimModel(G4String, G4Region*); 59 Par04MLFastSimModel(G4String); 60 ~Par04MLFastSimModel(); 61 /// There are no kinematics constraints. T 62 virtual G4bool ModelTrigger(const G4FastTr 63 /// Model is applicable to electrons, posi 64 virtual G4bool IsApplicable(const G4Partic 65 /// Take particle out of the full simulati 66 /// depositing all the energy). Calculate 67 /// from the NN model inference. 68 virtual void DoIt(const G4FastTrack&, G4Fa 69 70 private: 71 /// Inference model that is NN aware 72 Par04InferenceSetup* fInference; 73 /// Inference model that is NN aware 74 /// Helper class for creation of hits with 75 std::unique_ptr<G4FastSimHitMaker> fHitMak 76 std::unique_ptr<G4FastSimHitMaker> fParall 77 /// Vector of energy values 78 std::vector<G4double> fEnergies; 79 /// Vector of positions corresponding to e 80 /// model) 81 std::vector<G4ThreeVector> fPositions; 82 }; 83 # endif /* PAR04INFERENCEMODEL_HH */ 84 #endif 85