00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // 00027 // $Id: EventAction.hh,v 1.1 2010-10-18 15:56:17 maire Exp $ 00028 // GEANT4 tag $Name: not supported by cvs2svn $ 00029 // 00030 // 00031 00032 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00033 00034 #include "MyTrackingAction.hh" 00035 00036 #include "G4Track.hh" 00037 #include "G4ThreeVector.hh" 00038 #include "G4VProcess.hh" 00039 00040 #include "MyAnalysisSvc.hh" 00041 00042 MyTrackingAction::MyTrackingAction() 00043 { } 00044 00045 void MyTrackingAction::PreUserTrackingAction(const G4Track* aTrack) { 00046 MyAnalysisSvc::GetMyAnalysisSvc()->PreUserTrackingAction(aTrack); 00047 00048 // G4String processName; 00049 // const G4VProcess* process = aTrack->GetCreatorProcess(); 00050 // if (process) { 00051 // processName = process->GetProcessName(); 00052 // } 00053 // else{ 00054 // processName = "NULL"; 00055 // } 00056 // G4int trackID= aTrack->GetTrackID(); //G4 track ID of current track. 00057 // G4int ptid = aTrack->GetParentID(); //parent G4 track ID of current track. 00058 // G4int pid = aTrack->GetParticleDefinition()->GetPDGEncoding(); 00059 // G4double globalT=aTrack->GetGlobalTime();//Time since the event in which the track belongs is created 00060 // G4ThreeVector mom_3vec = aTrack->GetMomentum(); 00061 // G4double mom = mom_3vec.mag(); 00062 // 00063 // std::cout<<"Begin of track "<<trackID<<std::endl; 00064 // std::cout<<" pid: "<<pid<<std::endl; 00065 // std::cout<<" ptid: "<<ptid<<std::endl; 00066 // std::cout<<" process: "<<processName<<std::endl; 00067 // std::cout<<" Global time: "<<globalT/ns<<"ns"<<std::endl; 00068 // std::cout<<" momentum: "<<mom/MeV<<"MeV"<<std::endl; 00069 00070 } 00071 00072 00073 void MyTrackingAction::PostUserTrackingAction(const G4Track* aTrack) { 00074 MyAnalysisSvc::GetMyAnalysisSvc()->PostUserTrackingAction(aTrack); 00075 // G4int trackID= aTrack->GetTrackID(); //G4 track ID of current track. 00076 // G4int nbSteps = aTrack->GetCurrentStepNumber(); 00077 // G4double trackLength = aTrack->GetTrackLength(); 00078 // std::cout<<"End of track "<<trackID<<std::endl; 00079 // std::cout<<" number of steps: "<<nbSteps<<std::endl; 00080 // std::cout<<" track length: "<<trackLength/mm<<"mm"<<std::endl; 00081 }