Import Geant4 8.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:36:02 +02:00
parent d93e1e39a9
commit 8a51e0bc40
5471 changed files with 99628 additions and 55248 deletions
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: TrackingAction.cc,v 1.1 2005/11/22 15:29:06 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "TrackingAction.hh"
#include "DetectorConstruction.hh"
#include "RunAction.hh"
#include "EventAction.hh"
#include "HistoManager.hh"
#include "G4Track.hh"
#include "G4Positron.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TrackingAction::TrackingAction(DetectorConstruction* det,RunAction* run,
EventAction* evt, HistoManager* hist)
:detector(det), runAct(run), eventAct(evt), histoManager(hist)
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TrackingAction::PreUserTrackingAction(const G4Track* track )
{
// Energy flow initialisation for primary particle
//
if (track->GetTrackID() == 1) {
G4int Idnow = 1;
if (track->GetVolume() != detector->GetphysiWorld()) {
// unique identificator of layer+absorber
const G4VTouchable* touchable = track->GetTouchable();
G4int absorNum = touchable->GetCopyNumber();
G4int layerNum = touchable->GetReplicaNumber(1);
Idnow = (detector->GetNbOfAbsor())*layerNum + absorNum;
}
G4double Eflow = track->GetKineticEnergy();
if (track->GetDefinition() == G4Positron::Positron())
Eflow += 2*electron_mass_c2;
//flux artefact, if primary vertex is inside the calorimeter
for (G4int pl=1; pl<=Idnow; pl++) runAct->sumEnergyFlow(pl, Eflow);
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TrackingAction::PostUserTrackingAction(const G4Track* )
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......