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 #include "RunAction.hh" 27 #include "EventAction.hh" 28 29 #include "G4UserRunAction.hh" 30 #include "G4GenericMessenger.hh" 31 #include "G4String.hh" 32 #include "G4AnalysisManager.hh" 33 #include <iostream> 34 35 //....oooOO0OOooo........oooOO0OOooo........oo 36 37 RunAction::RunAction(EventAction *eventAction) 38 : G4UserRunAction(), fEventAction(eventAct 39 fOutputFileDir("sim_HGCalTB_G4Standalone 40 41 fMessenger = 42 new G4GenericMessenger(this, "/HGCalTest 43 44 // randomizePrimary command 45 auto &fileNameCommand = fMessenger->DeclareP 46 G4String guidance = "Define output file loca 47 fileNameCommand.SetGuidance(guidance); 48 fileNameCommand.SetParameterName("filename", 49 fileNameCommand.SetDefaultValue("sim_HGCalTB 50 } 51 52 //....oooOO0OOooo........oooOO0OOooo........oo 53 54 RunAction::~RunAction() {} 55 56 //....oooOO0OOooo........oooOO0OOooo........oo 57 58 void RunAction::BeginOfRunAction(const G4Run * 59 // Create analysis manager 60 // The choice of analysis technology is done 61 auto analysisManager = G4AnalysisManager::In 62 analysisManager->SetDefaultFileType("root"); 63 G4cout << "Using " << analysisManager->GetTy 64 65 // Default settings 66 analysisManager->SetNtupleMerging(true); 67 analysisManager->SetVerboseLevel(1); 68 std::cout << "Output file is: " << fOutputFi 69 analysisManager->SetFileName(fOutputFileDir) 70 71 if (fEventAction) { 72 analysisManager->CreateNtuple("hits", "hit 73 analysisManager->CreateNtupleIColumn("even 74 analysisManager->CreateNtupleIColumn( 75 "pdgID", fEventAction->fPrimariesPDG); 76 analysisManager->CreateNtupleDColumn( 77 "beamEnergy", fEventAction->fPrimaries 78 analysisManager->CreateNtupleDColumn( 79 "beamX_cm", fEventAction->fPrimariesX) 80 analysisManager->CreateNtupleDColumn( 81 "beamY_cm", fEventAction->fPrimariesY) 82 analysisManager->CreateNtupleDColumn( 83 "beamZ_cm", fEventAction->fPrimariesZ) 84 analysisManager->CreateNtupleIColumn("sili 85 fEven 86 analysisManager->CreateNtupleDColumn("sili 87 fEven 88 analysisManager->CreateNtupleDColumn("sili 89 fEven 90 analysisManager->CreateNtupleDColumn("sili 91 fEven 92 analysisManager->CreateNtupleDColumn("sili 93 fEven 94 analysisManager->CreateNtupleDColumn("sili 95 fEven 96 analysisManager->CreateNtupleDColumn("sili 97 fEven 98 analysisManager->CreateNtupleDColumn("sili 99 fEven 100 analysisManager->CreateNtupleIColumn("sili 101 fEven 102 103 analysisManager->CreateNtupleIColumn("SiPM 104 fEven 105 analysisManager->CreateNtupleDColumn("SiPM 106 fEven 107 analysisManager->CreateNtupleDColumn("SiPM 108 fEven 109 analysisManager->CreateNtupleDColumn("SiPM 110 fEven 111 analysisManager->CreateNtupleDColumn("SiPM 112 fEven 113 analysisManager->CreateNtupleDColumn( 114 "SiPMHits_EdepNonIonizing_keV", fEvent 115 analysisManager->CreateNtupleDColumn("SiPM 116 fEven 117 analysisManager->CreateNtupleIColumn("SiPM 118 fEven 119 120 analysisManager->CreateNtupleDColumn( 121 "signalSum_HGCAL_GeV"); 122 analysisManager->CreateNtupleDColumn("COGZ 123 analysisManager->CreateNtupleIColumn("NHit 124 125 analysisManager->CreateNtupleDColumn( 126 "signalSum_AHCAL_GeV"); 127 analysisManager->CreateNtupleDColumn("COGZ 128 analysisManager->CreateNtupleIColumn("NHit 129 analysisManager->FinishNtuple(); 130 } 131 132 analysisManager->OpenFile(); 133 } 134 135 //....oooOO0OOooo........oooOO0OOooo........oo 136 137 void RunAction::EndOfRunAction(const G4Run *) 138 auto analysisManager = G4AnalysisManager::In 139 analysisManager->Write(); 140 analysisManager->CloseFile(); 141 } 142 143 //....oooOO0OOooo........oooOO0OOooo........oo 144