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 // G4HEPEvtInterface 27 // 28 // Class description: 29 // 30 // This is a concrete class of G4VPrimaryGener 31 // It reads an ASCII file which contains parti 32 // physics generator which supports a /HEPEVT/ 33 // 34 // The format of ASCII file must be equivalent 35 // Fortran code: 36 // 37 //******************************************** 38 // SUBROUTINE HEP2G4 39 //* 40 //* Output /HEPEVT/ event structure to G4HEPEv 41 //* 42 //******************************************** 43 // PARAMETER (NMXHEP=2000) 44 // COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHE 45 // >JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP 46 // DOUBLE PRECISION PHEP,VHEP 47 //* 48 // WRITE(6,*) NHEP 49 // DO IHEP=1,NHEP 50 // WRITE(6,10) 51 // > ISTHEP(IHEP),IDHEP(IHEP),JDAHEP(1,IH 52 // > PHEP(1,IHEP),PHEP(2,IHEP),PHEP(3,IHE 53 //10 FORMAT(I4,I10,I5,I5,4(1X,D15.8)) 54 // ENDDO 55 //* 56 // RETURN 57 // END 58 // 59 // The position and time of the primary intera 60 // corresponding set methods of G4VPrimaryGene 61 // zero will be set. 62 63 // Author: Makoto Asai, 1997 64 // ------------------------------------------- 65 #ifndef G4HEPEvtInterface_hh 66 #define G4HEPEvtInterface_hh 1 67 68 #include <fstream> 69 #include <vector> 70 71 #include "globals.hh" 72 #include "G4VPrimaryGenerator.hh" 73 #include "G4HEPEvtParticle.hh" 74 75 class G4PrimaryVertex; 76 class G4Event; 77 78 class G4HEPEvtInterface : public G4VPrimaryGen 79 { 80 public: 81 82 explicit G4HEPEvtInterface(const char* evf 83 // Constructor, "evfile" is the file name 84 85 ~G4HEPEvtInterface() override = default; 86 // Destructor 87 88 void GeneratePrimaryVertex(G4Event* evt) o 89 90 private: 91 92 G4int vLevel = 0; 93 G4String fileName; 94 std::ifstream inputFile; 95 std::vector<G4HEPEvtParticle*> HPlist; 96 }; 97 98 #endif 99