Import Geant4 10.0.0 source tree
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4AdjointCrossSurfChecker.cc 66872 2013-01-15 01:25:57Z japost $
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Class Name: G4AdjointCrossSurfChecker
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
G4AdjointCrossSurfChecker* G4AdjointCrossSurfChecker::instance = 0;
|
||||
G4ThreadLocal G4AdjointCrossSurfChecker* G4AdjointCrossSurfChecker::instance = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4AdjointSteppingAction.cc 75570 2013-11-04 11:41:10Z gcosmo $
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Class Name: G4AdjointSteppingAction
|
||||
@@ -40,10 +40,12 @@
|
||||
#include "G4AdjointCrossSurfChecker.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
G4AdjointSteppingAction::G4AdjointSteppingAction()
|
||||
: ext_sourceEMax(0.), start_event(false),
|
||||
did_adj_part_reach_ext_source(false), last_ekin(0.), last_weight(0.),
|
||||
prim_weight(0.), last_part_def(0), theUserAdjointSteppingAction(0)
|
||||
prim_weight(0.), last_part_def(0), theUserAdjointSteppingAction(0),
|
||||
theUserFwdSteppingAction(0)
|
||||
{
|
||||
theG4AdjointCrossSurfChecker = G4AdjointCrossSurfChecker::GetInstance();
|
||||
}
|
||||
@@ -56,11 +58,25 @@ G4AdjointSteppingAction::~G4AdjointSteppingAction()
|
||||
//
|
||||
void G4AdjointSteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
{
|
||||
G4Track* aTrack =aStep->GetTrack();
|
||||
//forward tracking mode
|
||||
if(!is_adjoint_tracking_mode){
|
||||
//check if last adjoint did reach the external source
|
||||
if (!did_adj_part_reach_ext_source) {
|
||||
aTrack->SetTrackStatus(fStopAndKill);
|
||||
return;
|
||||
}
|
||||
if(theUserFwdSteppingAction)
|
||||
theUserFwdSteppingAction->UserSteppingAction(aStep);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//Apply first the user adjoint stepping action
|
||||
//---------------------------
|
||||
if (theUserAdjointSteppingAction) theUserAdjointSteppingAction->UserSteppingAction(aStep);
|
||||
|
||||
G4Track* aTrack =aStep->GetTrack();
|
||||
|
||||
G4double nb_nuc=1.;
|
||||
G4ParticleDefinition* thePartDef = aTrack->GetDefinition();
|
||||
|
||||
@@ -76,7 +92,6 @@ void G4AdjointSteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
}
|
||||
|
||||
G4double weight_factor = aTrack->GetWeight()/prim_weight;
|
||||
|
||||
if ( (weight_factor>0 && weight_factor<=0) || weight_factor<= 1e-290 || weight_factor>1.e200)
|
||||
{
|
||||
//std::cout<<"Weight_factor problem! Value = "<<weight_factor<<std::endl;
|
||||
@@ -96,7 +111,6 @@ void G4AdjointSteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
if (theG4AdjointCrossSurfChecker->CrossingOneOfTheRegisteredSurface(aStep, surface_name, crossing_pos, cos_to_surface, GoingIn) ){
|
||||
|
||||
//G4cout<<"Test_step11"<<std::endl;
|
||||
//G4cout<<surface_name<<std::endl;
|
||||
if (surface_name == "ExternalSource") {
|
||||
//Registering still needed
|
||||
did_adj_part_reach_ext_source=true;
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4AdjointTrackingAction.cc 75409 2013-11-01 00:31:00Z ldesorgh$
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
#include "G4AdjointTrackingAction.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4AdjointSteppingAction.hh"
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
G4AdjointTrackingAction::G4AdjointTrackingAction(
|
||||
G4AdjointSteppingAction* anAction)
|
||||
:theAdjointSteppingAction(anAction),theUserFwdTrackingAction(0)
|
||||
{;}
|
||||
/////////////////////////////////////////////////////////
|
||||
G4AdjointTrackingAction::~G4AdjointTrackingAction()
|
||||
/////////////////////////////////////////////////////////
|
||||
{;}
|
||||
/////////////////////////////////////////////////////////
|
||||
void G4AdjointTrackingAction::PreUserTrackingAction(const G4Track* aTrack)
|
||||
{ G4String partType = aTrack->GetParticleDefinition()->GetParticleType();
|
||||
if (aTrack->GetDynamicParticle()->GetPrimaryParticle() &&
|
||||
partType.contains(G4String("adjoint"))){
|
||||
is_adjoint_tracking_mode =true;
|
||||
theAdjointSteppingAction->SetPrimWeight(aTrack->GetWeight());
|
||||
}
|
||||
else {
|
||||
is_adjoint_tracking_mode =false;
|
||||
if (theUserFwdTrackingAction)
|
||||
theUserFwdTrackingAction->PreUserTrackingAction(aTrack);
|
||||
}
|
||||
theAdjointSteppingAction->SetAdjointTrackingMode(is_adjoint_tracking_mode);
|
||||
}
|
||||
/////////////////////////////////////////////////////////
|
||||
void G4AdjointTrackingAction::PostUserTrackingAction(const G4Track* aTrack)
|
||||
{ if(!is_adjoint_tracking_mode){
|
||||
if (theUserFwdTrackingAction)
|
||||
theUserFwdTrackingAction->PostUserTrackingAction(aTrack);
|
||||
}
|
||||
else if (theAdjointSteppingAction->GetDidAdjParticleReachTheExtSource()){
|
||||
last_pos = theAdjointSteppingAction->GetLastPosition();
|
||||
last_direction = theAdjointSteppingAction->GetLastMomentum();
|
||||
last_direction /=last_direction.mag();
|
||||
last_cos_th = last_direction.z();
|
||||
G4ParticleDefinition* aPartDef= theAdjointSteppingAction->GetLastPartDef();
|
||||
last_fwd_part_name= aPartDef->GetParticleName();
|
||||
last_fwd_part_name.remove(0,4);
|
||||
last_fwd_part_PDGEncoding=G4ParticleTable::GetParticleTable()
|
||||
->FindParticle(last_fwd_part_name)->GetPDGEncoding();
|
||||
last_ekin = theAdjointSteppingAction->GetLastEkin();
|
||||
last_ekin_nuc = last_ekin;
|
||||
if (aPartDef->GetParticleType() == "adjoint_nucleus") {
|
||||
G4double nb_nuc=double(aPartDef->GetBaryonNumber());
|
||||
last_ekin_nuc /=nb_nuc;
|
||||
}
|
||||
last_weight = theAdjointSteppingAction->GetLastWeight(); ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4RichTrajectory.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
@@ -57,14 +57,15 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
G4Allocator<G4RichTrajectory> aRichTrajectoryAllocator;
|
||||
G4ThreadLocal G4Allocator<G4RichTrajectory> *aRichTrajectoryAllocator = 0;
|
||||
|
||||
G4RichTrajectory::G4RichTrajectory():
|
||||
fpRichPointsContainer(0),
|
||||
fpCreatorProcess(0),
|
||||
fpEndingProcess(0),
|
||||
fFinalKineticEnergy(0.)
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
G4RichTrajectory::G4RichTrajectory(const G4Track* aTrack):
|
||||
G4Trajectory(aTrack) // Note: this initialises the base class data
|
||||
@@ -154,6 +155,20 @@ void G4RichTrajectory::MergeTrajectory(G4VTrajectory* secondTrajectory)
|
||||
seco->fpRichPointsContainer->clear();
|
||||
}
|
||||
|
||||
void G4RichTrajectory::ShowTrajectory(std::ostream& os) const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::ShowTrajectory(os);
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
void G4RichTrajectory::DrawTrajectory() const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::DrawTrajectory();
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
const std::map<G4String,G4AttDef>* G4RichTrajectory::GetAttDefs() const
|
||||
{
|
||||
G4bool isNew;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4RichTrajectoryPoint.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
G4Allocator<G4RichTrajectoryPoint> aRichTrajectoryPointAllocator;
|
||||
G4ThreadLocal G4Allocator<G4RichTrajectoryPoint> *aRichTrajectoryPointAllocator = 0;
|
||||
|
||||
G4RichTrajectoryPoint::G4RichTrajectoryPoint():
|
||||
fpAuxiliaryPointVector(0),
|
||||
@@ -113,33 +113,6 @@ G4RichTrajectoryPoint::G4RichTrajectoryPoint(const G4Step* aStep):
|
||||
fpPostStepPointVolume = postStepPoint->GetTouchableHandle();
|
||||
fPreStepPointWeight = preStepPoint->GetWeight();
|
||||
fPostStepPointWeight = postStepPoint->GetWeight();
|
||||
|
||||
/*
|
||||
G4cout << "fpAuxiliaryPointVector "
|
||||
<< (void*) fpAuxiliaryPointVector;
|
||||
G4cout << ": ";
|
||||
if (fpAuxiliaryPointVector) {
|
||||
G4cout << "size: " << fpAuxiliaryPointVector->size();
|
||||
for (size_t i = 0; i < fpAuxiliaryPointVector->size(); ++i)
|
||||
G4cout << "\n " << (*fpAuxiliaryPointVector)[i];
|
||||
} else {
|
||||
G4cout << "non-existent";
|
||||
}
|
||||
G4cout << G4endl;
|
||||
|
||||
static const G4Step* lastStep = 0;
|
||||
if (aStep && aStep == lastStep) {
|
||||
G4cout << "********* aStep is same as last" << G4endl;
|
||||
}
|
||||
lastStep = aStep;
|
||||
|
||||
static std::vector<G4ThreeVector>* lastAuxiliaryPointVector = 0;
|
||||
if (fpAuxiliaryPointVector &&
|
||||
fpAuxiliaryPointVector == lastAuxiliaryPointVector) {
|
||||
G4cout << "********* fpAuxiliaryPointVector is same as last" << G4endl;
|
||||
}
|
||||
lastAuxiliaryPointVector = fpAuxiliaryPointVector;
|
||||
*/
|
||||
}
|
||||
|
||||
G4RichTrajectoryPoint::G4RichTrajectoryPoint
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4SmoothTrajectory.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -53,7 +53,7 @@
|
||||
#include "G4AttCheck.hh"
|
||||
#endif
|
||||
|
||||
G4Allocator<G4SmoothTrajectory> aSmoothTrajectoryAllocator;
|
||||
G4ThreadLocal G4Allocator<G4SmoothTrajectory> *aSmoothTrajectoryAllocator = 0;
|
||||
|
||||
G4SmoothTrajectory::G4SmoothTrajectory()
|
||||
: positionRecord(0), fTrackID(0), fParentID(0),
|
||||
@@ -76,7 +76,7 @@ G4SmoothTrajectory::G4SmoothTrajectory(const G4Track* aTrack)
|
||||
positionRecord->push_back(new G4SmoothTrajectoryPoint(aTrack->GetPosition()));
|
||||
|
||||
// The first point has no auxiliary points, so set the auxiliary
|
||||
// points vector to NULL (jacek 31/10/2002)
|
||||
// points vector to NULL
|
||||
positionRecord->push_back(new G4SmoothTrajectoryPoint(aTrack->GetPosition(), 0));
|
||||
}
|
||||
|
||||
@@ -100,10 +100,11 @@ G4SmoothTrajectory::G4SmoothTrajectory(G4SmoothTrajectory & right):G4VTrajectory
|
||||
|
||||
G4SmoothTrajectory::~G4SmoothTrajectory()
|
||||
{
|
||||
if (positionRecord) {
|
||||
// positionRecord->clearAndDestroy();
|
||||
if (positionRecord)
|
||||
{
|
||||
size_t i;
|
||||
for(i=0;i<positionRecord->size();i++){
|
||||
for(i=0;i<positionRecord->size();i++)
|
||||
{
|
||||
delete (*positionRecord)[i];
|
||||
}
|
||||
positionRecord->clear();
|
||||
@@ -118,21 +119,12 @@ void G4SmoothTrajectory::ShowTrajectory(std::ostream& os) const
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
/***
|
||||
void G4SmoothTrajectory::DrawTrajectory() const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::DrawTrajectory();
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
***/
|
||||
|
||||
void G4SmoothTrajectory::DrawTrajectory(G4int i_mode) const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::DrawTrajectory(i_mode);
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
const std::map<G4String,G4AttDef>* G4SmoothTrajectory::GetAttDefs() const
|
||||
{
|
||||
@@ -217,7 +209,6 @@ std::vector<G4AttValue>* G4SmoothTrajectory::CreateAttValues() const
|
||||
|
||||
void G4SmoothTrajectory::AppendStep(const G4Step* aStep)
|
||||
{
|
||||
// (jacek 30/10/2002)
|
||||
positionRecord->push_back(
|
||||
new G4SmoothTrajectoryPoint(aStep->GetPostStepPoint()->GetPosition(),
|
||||
aStep->GetPointerToVectorOfAuxiliaryPoints()));
|
||||
@@ -237,10 +228,7 @@ void G4SmoothTrajectory::MergeTrajectory(G4VTrajectory* secondTrajectory)
|
||||
for(G4int i=1;i<ent;i++) // initial point of the second trajectory should not be merged
|
||||
{
|
||||
positionRecord->push_back((*(seco->positionRecord))[i]);
|
||||
// positionRecord->push_back(seco->positionRecord->removeAt(1));
|
||||
}
|
||||
delete (*seco->positionRecord)[0];
|
||||
seco->positionRecord->clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4SmoothTrajectoryPoint.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -45,7 +45,7 @@
|
||||
#include "G4AttCheck.hh"
|
||||
#endif
|
||||
|
||||
G4Allocator<G4SmoothTrajectoryPoint> aSmoothTrajectoryPointAllocator;
|
||||
G4ThreadLocal G4Allocator<G4SmoothTrajectoryPoint> *aSmoothTrajectoryPointAllocator = 0;
|
||||
|
||||
G4SmoothTrajectoryPoint::G4SmoothTrajectoryPoint()
|
||||
: fAuxiliaryPointVector(0)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4SteppingManager.cc 77790 2013-11-28 09:52:16Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
@@ -97,7 +97,7 @@ G4SteppingManager::G4SteppingManager()
|
||||
G4SteppingManager::~G4SteppingManager()
|
||||
///////////////////////////////////////
|
||||
{
|
||||
|
||||
fTouchableHandle = 0;
|
||||
// Destruct simple 'has-a' objects
|
||||
fStep->DeleteSecondaryVector();
|
||||
/////////////////////////// delete fSecondary;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4SteppingManager2.cc 73605 2013-09-02 09:34:55Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
void G4SteppingManager::GetProcessNumber()
|
||||
@@ -301,6 +302,8 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
lifeTime =
|
||||
fCurrentProcess->AtRestGPIL( *fTrack, &fCondition );
|
||||
|
||||
|
||||
|
||||
if(fCondition==Forced && fCurrentProcess){
|
||||
(*fSelectedAtRestDoItVector)[ri] = Forced;
|
||||
}
|
||||
@@ -309,18 +312,17 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
if(lifeTime < shortestLifeTime ){
|
||||
shortestLifeTime = lifeTime;
|
||||
fAtRestDoItProcTriggered = G4int(ri);
|
||||
(*fSelectedAtRestDoItVector)[fAtRestDoItProcTriggered] = NotForced;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(*fSelectedAtRestDoItVector)[fAtRestDoItProcTriggered] = NotForced;
|
||||
|
||||
// at least one process is necessary to destroy the particle
|
||||
// exit with warning
|
||||
if(NofInactiveProc==MAXofAtRestLoops){
|
||||
G4cerr << "ERROR - G4SteppingManager::InvokeAtRestDoItProcs()" << G4endl
|
||||
<< " No AtRestDoIt process is active!" << G4endl;
|
||||
// G4Exception("G4SteppingManager::InvokeAtRestDoItProcs", "Tracking0013",
|
||||
// FatalException, "No AtRestDoIt process is active." );
|
||||
G4Exception("G4SteppingManager::InvokeAtRestDoItProcs()", "Tracking0013",
|
||||
JustWarning, "No AtRestDoIt process is active!" );
|
||||
}
|
||||
|
||||
fStep->SetStepLength( 0. ); //the particle has stopped
|
||||
@@ -367,6 +369,8 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if(!pm && tempSecondaryTrack->GetDefinition()->IsGeneralIon())
|
||||
{ pm = G4ParticleTable::GetParticleTable()->GetGenericIon()->GetProcessManager(); }
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
fSecondary->push_back( tempSecondaryTrack );
|
||||
@@ -441,6 +445,8 @@ void G4SteppingManager::InvokeAlongStepDoItProcs()
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if(!pm && tempSecondaryTrack->GetDefinition()->IsGeneralIon())
|
||||
{ pm = G4ParticleTable::GetParticleTable()->GetGenericIon()->GetProcessManager(); }
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
fSecondary->push_back( tempSecondaryTrack );
|
||||
@@ -557,6 +563,8 @@ void G4SteppingManager::InvokePSDIP(size_t np)
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if(!pm && tempSecondaryTrack->GetDefinition()->IsGeneralIon())
|
||||
{ pm = G4ParticleTable::GetParticleTable()->GetGenericIon()->GetProcessManager(); }
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
fSecondary->push_back( tempSecondaryTrack );
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4SteppingVerbose.cc 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4TrackingManager.cc 77241 2013-11-22 09:55:47Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
@@ -102,6 +102,7 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track)
|
||||
case 1: fpTrajectory = new G4Trajectory(fpTrack); break;
|
||||
case 2: fpTrajectory = new G4SmoothTrajectory(fpTrack); break;
|
||||
case 3: fpTrajectory = new G4RichTrajectory(fpTrack); break;
|
||||
case 4: fpTrajectory = new G4RichTrajectory(fpTrack); break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4TrackingMessenger.cc 77241 2013-11-22 09:55:47Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
@@ -52,6 +52,9 @@
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4TrackStatus.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4PropagatorInField.hh"
|
||||
#include "G4IdentityTrajectoryFilter.hh"
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
G4TrackingMessenger::G4TrackingMessenger(G4TrackingManager * trMan)
|
||||
@@ -77,9 +80,10 @@ G4TrackingMessenger::G4TrackingMessenger(G4TrackingManager * trMan)
|
||||
StoreTrajectoryCmd->SetGuidance(" 1 : Choose G4Trajectory as default.");
|
||||
StoreTrajectoryCmd->SetGuidance(" 2 : Choose G4SmoothTrajectory as default.");
|
||||
StoreTrajectoryCmd->SetGuidance(" 3 : Choose G4RichTrajectory as default.");
|
||||
StoreTrajectoryCmd->SetGuidance(" 4 : Choose G4RichTrajectory with auxiliary points as default.");
|
||||
StoreTrajectoryCmd->SetParameterName("Store",true);
|
||||
StoreTrajectoryCmd->SetDefaultValue(0);
|
||||
StoreTrajectoryCmd->SetRange("Store >=0 && Store <= 3");
|
||||
StoreTrajectoryCmd->SetRange("Store >=0 && Store <= 4");
|
||||
|
||||
|
||||
VerboseCmd = new G4UIcmdWithAnInteger("/tracking/verbose",this);
|
||||
@@ -131,8 +135,21 @@ void G4TrackingMessenger::SetNewValue(G4UIcommand * command,G4String newValues)
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/control/exit");
|
||||
}
|
||||
|
||||
static G4ThreadLocal G4IdentityTrajectoryFilter* auxiliaryPointsFilter = 0;
|
||||
if(!auxiliaryPointsFilter) auxiliaryPointsFilter = new G4IdentityTrajectoryFilter;
|
||||
if( command == StoreTrajectoryCmd ){
|
||||
trackingManager->SetStoreTrajectory(StoreTrajectoryCmd->ConvertToInt(newValues));
|
||||
G4int trajType = StoreTrajectoryCmd->ConvertToInt(newValues);
|
||||
if(trajType==2||trajType==4)
|
||||
{
|
||||
G4TransportationManager::GetTransportationManager()
|
||||
->GetPropagatorInField()->SetTrajectoryFilter(auxiliaryPointsFilter);
|
||||
}
|
||||
else
|
||||
{
|
||||
G4TransportationManager::GetTransportationManager()
|
||||
->GetPropagatorInField()->SetTrajectoryFilter(0);
|
||||
}
|
||||
trackingManager->SetStoreTrajectory(trajType);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4Trajectory.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
@@ -52,7 +52,7 @@
|
||||
#include "G4AttCheck.hh"
|
||||
#endif
|
||||
|
||||
G4Allocator<G4Trajectory> aTrajectoryAllocator;
|
||||
G4ThreadLocal G4Allocator<G4Trajectory> *aTrajectoryAllocator = 0;
|
||||
|
||||
G4Trajectory::G4Trajectory()
|
||||
: positionRecord(0), fTrackID(0), fParentID(0),
|
||||
@@ -96,7 +96,6 @@ G4Trajectory::G4Trajectory(G4Trajectory & right):G4VTrajectory()
|
||||
G4Trajectory::~G4Trajectory()
|
||||
{
|
||||
if (positionRecord) {
|
||||
// positionRecord->clearAndDestroy();
|
||||
size_t i;
|
||||
for(i=0;i<positionRecord->size();i++){
|
||||
delete (*positionRecord)[i];
|
||||
@@ -113,21 +112,12 @@ void G4Trajectory::ShowTrajectory(std::ostream& os) const
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
/***
|
||||
void G4Trajectory::DrawTrajectory() const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::DrawTrajectory();
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
***/
|
||||
|
||||
void G4Trajectory::DrawTrajectory(G4int i_mode) const
|
||||
{
|
||||
// Invoke the default implementation in G4VTrajectory...
|
||||
G4VTrajectory::DrawTrajectory(i_mode);
|
||||
// ... or override with your own code here.
|
||||
}
|
||||
|
||||
const std::map<G4String,G4AttDef>* G4Trajectory::GetAttDefs() const
|
||||
{
|
||||
@@ -229,10 +219,7 @@ void G4Trajectory::MergeTrajectory(G4VTrajectory* secondTrajectory)
|
||||
for(G4int i=1;i<ent;i++) // initial point of the second trajectory should not be merged
|
||||
{
|
||||
positionRecord->push_back((*(seco->positionRecord))[i]);
|
||||
// positionRecord->push_back(seco->positionRecord->removeAt(1));
|
||||
}
|
||||
delete (*seco->positionRecord)[0];
|
||||
seco->positionRecord->clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4TrajectoryPoint.cc 69003 2013-04-15 09:25:23Z gcosmo $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "G4AttCheck.hh"
|
||||
#endif
|
||||
|
||||
G4Allocator<G4TrajectoryPoint> aTrajectoryPointAllocator;
|
||||
G4ThreadLocal G4Allocator<G4TrajectoryPoint> *aTrajectoryPointAllocator = 0;
|
||||
|
||||
G4TrajectoryPoint::G4TrajectoryPoint()
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4UserSteppingAction.cc 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4UserTrackingAction.cc 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4VSteppingVerbose.cc 66872 2013-01-15 01:25:57Z japost $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
@@ -46,9 +46,9 @@
|
||||
#include "G4Track.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
G4VSteppingVerbose* G4VSteppingVerbose::fInstance = 0;
|
||||
G4int G4VSteppingVerbose::Silent = 0;
|
||||
G4int G4VSteppingVerbose::SilentStepInfo = 0;
|
||||
G4ThreadLocal G4VSteppingVerbose* G4VSteppingVerbose::fInstance = 0;
|
||||
G4ThreadLocal G4int G4VSteppingVerbose::Silent = 0;
|
||||
G4ThreadLocal G4int G4VSteppingVerbose::SilentStepInfo = 0;
|
||||
|
||||
G4VSteppingVerbose::G4VSteppingVerbose()
|
||||
: fManager(0), fUserSteppingAction(0),
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4VTrajectory.cc 78003 2013-12-02 08:26:54Z gcosmo $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
//
|
||||
@@ -109,9 +109,9 @@ void G4VTrajectory::ShowTrajectory(std::ostream& os) const
|
||||
|
||||
delete attValues; // AttValues must be deleted after use.
|
||||
}
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
/***
|
||||
void G4VTrajectory::DrawTrajectory() const
|
||||
{
|
||||
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
|
||||
@@ -120,23 +120,3 @@ void G4VTrajectory::DrawTrajectory() const
|
||||
pVVisManager->DispatchToModel(*this);
|
||||
}
|
||||
}
|
||||
***/
|
||||
|
||||
void G4VTrajectory::DrawTrajectory(G4int i_mode) const
|
||||
{
|
||||
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
|
||||
|
||||
static G4bool warnedAboutIMode = false;
|
||||
if (!warnedAboutIMode && i_mode != 0) {
|
||||
G4Exception
|
||||
("G4VTrajectory::DrawTrajectory()",
|
||||
"Tracking0100", JustWarning,
|
||||
"DEPRECATED! The use of i_mode argument in DrawTrajectory()"
|
||||
"\n is deprecated and will be removed at the next major release.");
|
||||
warnedAboutIMode = true;
|
||||
}
|
||||
|
||||
if (0 != pVVisManager) {
|
||||
pVVisManager->DispatchToModel(*this, i_mode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4VTrajectoryPoint.cc 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user