Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // Code developed by: 26 // Code developed by: 27 // S.Larsson 27 // S.Larsson 28 // 28 // 29 // ******************************** 29 // ******************************** 30 // * * 30 // * * 31 // * PurgMagEventAction.cc * 31 // * PurgMagEventAction.cc * 32 // * * 32 // * * 33 // ******************************** 33 // ******************************** 34 // 34 // >> 35 // $Id: PurgMagEventAction.cc,v 1.4 2006/06/29 16:06:13 gunter Exp $ >> 36 // GEANT4 tag $Name: geant4-08-01-patch-01 $ 35 // 37 // 36 38 37 //....oooOO0OOooo........oooOO0OOooo........oo 39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 38 40 39 #include "PurgMagEventAction.hh" 41 #include "PurgMagEventAction.hh" 40 42 41 #include "PurgMagRunAction.hh" 43 #include "PurgMagRunAction.hh" 42 44 43 #include "G4Event.hh" 45 #include "G4Event.hh" 44 #include "G4EventManager.hh" 46 #include "G4EventManager.hh" >> 47 #include "G4TrajectoryContainer.hh" >> 48 #include "G4Trajectory.hh" >> 49 #include "G4VVisManager.hh" >> 50 #include "Randomize.hh" >> 51 >> 52 #ifdef G4ANALYSIS_USE >> 53 #include"PurgMagAnalysisManager.hh" >> 54 #endif 45 55 46 //....oooOO0OOooo........oooOO0OOooo........oo 56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 47 57 48 PurgMagEventAction::PurgMagEventAction() << 58 PurgMagEventAction::PurgMagEventAction(PurgMagRunAction* run) 49 :drawFlag("all"),printModulo(10000) << 59 :PurgMagRun(run),drawFlag("all"),printModulo(10000) 50 {} 60 {} 51 61 52 //....oooOO0OOooo........oooOO0OOooo........oo 62 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 53 63 54 PurgMagEventAction::~PurgMagEventAction() 64 PurgMagEventAction::~PurgMagEventAction() 55 {} 65 {} 56 66 57 //....oooOO0OOooo........oooOO0OOooo........oo 67 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 58 68 59 void PurgMagEventAction::BeginOfEventAction(co 69 void PurgMagEventAction::BeginOfEventAction(const G4Event* evt) 60 { 70 { 61 G4int evtNb = evt->GetEventID(); 71 G4int evtNb = evt->GetEventID(); 62 if (evtNb%printModulo == 0) 72 if (evtNb%printModulo == 0) 63 G4cout << "\n---> Begin Of Event: " << evtN 73 G4cout << "\n---> Begin Of Event: " << evtNb << G4endl; 64 } 74 } 65 75 66 //....oooOO0OOooo........oooOO0OOooo........oo 76 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 67 77 68 void PurgMagEventAction::EndOfEventAction(cons << 78 void PurgMagEventAction::EndOfEventAction(const G4Event* evt) 69 { 79 { >> 80 if (G4VVisManager::GetConcreteInstance()) >> 81 { >> 82 G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer(); >> 83 G4int n_trajectories = 0; >> 84 if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); >> 85 >> 86 for (G4int i=0; i<n_trajectories; i++) >> 87 { >> 88 //G4cout<< "Iteration" << i <<G4endl; >> 89 G4Trajectory* trj = (G4Trajectory*)((*(evt->GetTrajectoryContainer()))[i]); >> 90 if (drawFlag == "all") >> 91 { >> 92 trj->DrawTrajectory(50); >> 93 } >> 94 else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) >> 95 { >> 96 trj->DrawTrajectory(50); >> 97 } >> 98 } >> 99 //save rndm status >> 100 if (PurgMagRun->GetRndmFreq() == 2) >> 101 { >> 102 CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); >> 103 G4int evtNb = evt->GetEventID(); >> 104 if (evtNb%printModulo == 0) >> 105 { >> 106 G4cout << "\n---> End of Event: " << evtNb << G4endl; >> 107 CLHEP::HepRandom::showEngineStatus(); >> 108 } >> 109 } >> 110 } 70 } 111 } 71 //....oooOO0OOooo........oooOO0OOooo........oo 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... >> 113 >> 114 >> 115 >> 116 >> 117 >> 118 >> 119 >> 120 >> 121 >> 122 >> 123 >> 124 >> 125 >> 126 >> 127 >> 128 >> 129 72 130