Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 /// \file runAndEvent/RE01/src/RE01TrackingAct << 23 // $Id: RE01TrackingAction.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ 27 /// \brief Implementation of the RE01TrackingA << 24 // GEANT4 tag $Name: geant4-07-01 $ 28 // << 29 // 25 // 30 26 31 #include "RE01TrackingAction.hh" << 32 27 33 #include "RE01TrackInformation.hh" << 34 #include "RE01Trajectory.hh" << 35 28 36 #include "G4Track.hh" << 29 #include "RE01TrackingAction.hh" 37 #include "G4TrackingManager.hh" 30 #include "G4TrackingManager.hh" 38 << 31 #include "G4Track.hh" 39 //....oooOO0OOooo........oooOO0OOooo........oo << 32 #include "RE01Trajectory.hh" 40 RE01TrackingAction::RE01TrackingAction() : G4U << 33 #include "RE01TrackInformation.hh" 41 { << 42 ; << 43 } << 44 34 45 void RE01TrackingAction::PreUserTrackingAction 35 void RE01TrackingAction::PreUserTrackingAction(const G4Track* aTrack) 46 { 36 { 47 // Create trajectory only for track in track 37 // Create trajectory only for track in tracking region 48 RE01TrackInformation* trackInfo = (RE01Track 38 RE01TrackInformation* trackInfo = (RE01TrackInformation*)(aTrack->GetUserInformation()); 49 39 50 if (trackInfo->GetTrackingStatus() > 0) { << 40 if(trackInfo->GetTrackingStatus() > 0) >> 41 { 51 fpTrackingManager->SetStoreTrajectory(true 42 fpTrackingManager->SetStoreTrajectory(true); 52 fpTrackingManager->SetTrajectory(new RE01T 43 fpTrackingManager->SetTrajectory(new RE01Trajectory(aTrack)); 53 } 44 } 54 else { << 45 else 55 fpTrackingManager->SetStoreTrajectory(fals << 46 { fpTrackingManager->SetStoreTrajectory(false); } 56 } << 57 } 47 } 58 48 59 //....oooOO0OOooo........oooOO0OOooo........oo << 60 void RE01TrackingAction::PostUserTrackingActio 49 void RE01TrackingAction::PostUserTrackingAction(const G4Track* aTrack) 61 { 50 { 62 G4TrackVector* secondaries = fpTrackingManag 51 G4TrackVector* secondaries = fpTrackingManager->GimmeSecondaries(); 63 if (secondaries) { << 52 if(secondaries) >> 53 { 64 RE01TrackInformation* info = (RE01TrackInf 54 RE01TrackInformation* info = (RE01TrackInformation*)(aTrack->GetUserInformation()); 65 size_t nSeco = secondaries->size(); 55 size_t nSeco = secondaries->size(); 66 if (nSeco > 0) { << 56 if(nSeco>0) 67 for (size_t i = 0; i < nSeco; i++) { << 57 { >> 58 for(size_t i=0;i<nSeco;i++) >> 59 { 68 RE01TrackInformation* infoNew = new RE 60 RE01TrackInformation* infoNew = new RE01TrackInformation(info); 69 (*secondaries)[i]->SetUserInformation( 61 (*secondaries)[i]->SetUserInformation(infoNew); 70 } 62 } 71 } 63 } 72 } 64 } 73 } 65 } >> 66 >> 67 74 68