Moved Tao's code to TaoLEMuSR.
This commit is contained in:
130
geant4/TaoLEMuSR/src/LEMuSRStackingAction.cc
Normal file
130
geant4/TaoLEMuSR/src/LEMuSRStackingAction.cc
Normal file
@ -0,0 +1,130 @@
|
||||
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//*
|
||||
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION Geant4 SIMULATION
|
||||
// ID : LEMuSRStackingAction.cc , v 1.0
|
||||
// AUTHOR: Taofiq PARAISO
|
||||
// DATE : 2004-07-07 11:15
|
||||
//
|
||||
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
|
||||
//
|
||||
// & &&&&&&&&&& &&&&&&& &&&&&&&&
|
||||
// & & && && & &&
|
||||
// & & & & & & &&
|
||||
// & &&&&&&& & & &&&&&& &&&&&&&&
|
||||
// & & & && & & &&
|
||||
// & & && & & && && & &
|
||||
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
|
||||
// &
|
||||
// &
|
||||
// &
|
||||
// &
|
||||
// STACKING ACTION.CC
|
||||
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
|
||||
|
||||
|
||||
|
||||
#include "LEMuSRStackingAction.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4HCofThisEvent.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4TrackStatus.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "LEMuSRStackingActionMessenger.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
LEMuSRStackingAction::LEMuSRStackingAction()
|
||||
:ScintHits(0), stage(0)
|
||||
{
|
||||
theMessenger = new LEMuSRStackingActionMessenger(this);
|
||||
|
||||
kill_e = true; kill_gamma = true; kill_nu_e = kill_nu_mu = true;
|
||||
}
|
||||
|
||||
LEMuSRStackingAction::~LEMuSRStackingAction()
|
||||
{
|
||||
delete theMessenger;
|
||||
}
|
||||
|
||||
|
||||
|
||||
G4ClassificationOfNewTrack
|
||||
LEMuSRStackingAction::ClassifyNewTrack(const G4Track *track)
|
||||
{
|
||||
G4ClassificationOfNewTrack classification;
|
||||
classification = fUrgent;
|
||||
|
||||
G4String p_name;
|
||||
p_name = track->GetDefinition()->GetParticleName(); // particle name
|
||||
|
||||
|
||||
|
||||
if (p_name=="e-")
|
||||
{
|
||||
if (kill_e) classification=fKill;
|
||||
}
|
||||
|
||||
else if (p_name=="gamma")
|
||||
{
|
||||
if (kill_gamma) classification=fKill;
|
||||
}
|
||||
|
||||
else if (p_name=="nu_e")
|
||||
{
|
||||
if (kill_nu_e) classification=fKill;
|
||||
}
|
||||
|
||||
else if (p_name=="anti_nu_e")
|
||||
{
|
||||
if (kill_nu_e) classification=fKill;
|
||||
}
|
||||
|
||||
else if (p_name=="nu_mu")
|
||||
{
|
||||
if (kill_nu_mu) classification=fKill;
|
||||
}
|
||||
|
||||
else if (p_name=="anti_nu_mu")
|
||||
{
|
||||
if (kill_nu_mu) classification=fKill;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return classification;
|
||||
}
|
||||
|
||||
|
||||
G4VHitsCollection* LEMuSRStackingAction::GetCollection(G4String colName)
|
||||
{
|
||||
G4SDManager* SDMan = G4SDManager::GetSDMpointer();
|
||||
G4RunManager* runMan = G4RunManager::GetRunManager();
|
||||
int colID = SDMan->GetCollectionID(colName);
|
||||
if(colID>=0)
|
||||
{
|
||||
const G4Event* currentEvent = runMan->GetCurrentEvent();
|
||||
G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent();
|
||||
return HCE->GetHC(colID);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LEMuSRStackingAction::NewStage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LEMuSRStackingAction::PrepareNewEvent()
|
||||
{
|
||||
stage = 0;
|
||||
ScintHits = 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user