Skip to content
Snippets Groups Projects
Commit e90d6771 authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

modified: include/SANEEventGenerators.hh

	modified:   src/BETAPhysicsList.cc
	modified:   src/BETASimulationMessenger.cc
	modified:   src/SANEEventGenerators.cc
parent c7c5cb3c
Branches master
No related tags found
No related merge requests found
...@@ -5,19 +5,18 @@ ...@@ -5,19 +5,18 @@
#include "BETAG4EventGenerator.hh" #include "BETAG4EventGenerator.hh"
#include "G4ThreeVector.hh" #include "G4ThreeVector.hh"
#include "TMath.h" #include "TMath.h"
#include "InSANEInclusiveDiffXSec.h" //#include "InSANEInclusiveDiffXSec.h"
#include "F1F209eInclusiveDiffXSec.h" //#include "F1F209eInclusiveDiffXSec.h"
#include "OARPionDiffXSec.h" //#include "OARPionDiffXSec.h"
#include "InSANEXSections.h" //#include "InSANEXSections.h"
#include "InSANEPhaseSpace.h" //#include "InSANEPhaseSpace.h"
#include "WiserXSection.h" //#include "WiserXSection.h"
#include "HallCBeam.h" //#include "HallCBeam.h"
#include "PolarizedDISXSec.h" //#include "PolarizedDISXSec.h"
#include "EPCVXSection.h" //#include "EPCVXSection.h"
#include "SANETargets.h" //#include "InSANERadiator.h"
#include "InSANERadiator.h" //#include "InSANEFunctionManager.h"
#include "InSANEFunctionManager.h" //#include "InSANEElasticRadiativeTail.h"
#include "InSANEElasticRadiativeTail.h"
/*! \page EventGeneratorHowTo How to make an event generator /*! \page EventGeneratorHowTo How to make an event generator
...@@ -125,33 +124,12 @@ class WiserEventGenerator : public BETAG4EventGenerator { ...@@ -125,33 +124,12 @@ class WiserEventGenerator : public BETAG4EventGenerator {
*/ */
class SANEInclusiveDISEventGenerator : public BETAG4EventGenerator { class SANEInclusiveDISEventGenerator : public BETAG4EventGenerator {
public : public :
SANEInclusiveDISEventGenerator(){ SANEInclusiveDISEventGenerator();
fNH3PackingFraction = 0.6; virtual ~SANEInclusiveDISEventGenerator() ;
UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction);
SetTarget(targ);
} virtual void InitializeMaterialXSec(const Int_t i, const Double_t weight, const InSANETargetMaterial * mat, const InSANENucleus * targ);
virtual ~SANEInclusiveDISEventGenerator() { } virtual void Initialize() ;
virtual void InitializeMaterialXSec(const Int_t i, const Double_t weight, const InSANETargetMaterial * mat, const InSANENucleus * targ){
InSANEPhaseSpaceSampler * samp = 0;
//F1F209eInclusiveDiffXSec * xsec = new F1F209eInclusiveDiffXSec();
InSANEInclusiveDISXSec * xsec = new InSANEInclusiveDISXSec();
//xsec->Dump();
xsec->SetTargetMaterial(*mat);
xsec->SetTargetMaterialIndex(i);
xsec->SetBeamEnergy(GetBeamEnergy());
xsec->SetTargetNucleus(*targ);
xsec->InitializePhaseSpaceVariables();
xsec->InitializeFinalStateParticles();
samp = new InSANEPhaseSpaceSampler(xsec);
samp->SetFoamCells(100);
samp->SetWeight(weight);
AddSampler(samp);
}
virtual void Initialize() {
InSANETargetEventGenerator::Initialize();
}
Double_t fNH3PackingFraction; Double_t fNH3PackingFraction;
...@@ -181,19 +159,12 @@ class PolarizedInclusiveDISEventGenerator : public BETAG4EventGenerator { ...@@ -181,19 +159,12 @@ class PolarizedInclusiveDISEventGenerator : public BETAG4EventGenerator {
*/ */
class NH3TargetEventGenerator : public BETAG4EventGenerator { class NH3TargetEventGenerator : public BETAG4EventGenerator {
public : public :
NH3TargetEventGenerator(){ NH3TargetEventGenerator();
fNH3PackingFraction = 0.6; virtual ~NH3TargetEventGenerator() ;
UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction);
SetTarget(targ);
}
virtual ~NH3TargetEventGenerator() { }
Double_t fNH3PackingFraction; Double_t fNH3PackingFraction;
virtual void Initialize() { virtual void Initialize() ;
InSANETargetEventGenerator::Initialize();
}
}; };
//______________________________________________________________________________ //______________________________________________________________________________
......
...@@ -118,7 +118,9 @@ void BETAPhysicsList::ConstructProcess() { ...@@ -118,7 +118,9 @@ void BETAPhysicsList::ConstructProcess() {
//______________________________________________________________________________ //______________________________________________________________________________
void BETAPhysicsList::ConstructGeneral() { void BETAPhysicsList::ConstructGeneral() {
// Add Decay Process // Add Decay Process
G4Decay* theDecayProcess = new G4Decay(); G4Decay* theDecayProcess = new G4Decay();
auto theParticleTable = G4ParticleTable::GetParticleTable();
auto theParticleIterator = theParticleTable->GetIterator();
theParticleIterator->reset(); theParticleIterator->reset();
while ( ( *theParticleIterator ) () ) while ( ( *theParticleIterator ) () )
{ {
...@@ -136,6 +138,8 @@ void BETAPhysicsList::ConstructGeneral() { ...@@ -136,6 +138,8 @@ void BETAPhysicsList::ConstructGeneral() {
//______________________________________________________________________________ //______________________________________________________________________________
void BETAPhysicsList::ConstructEM() { void BETAPhysicsList::ConstructEM() {
auto theParticleTable = G4ParticleTable::GetParticleTable();
auto theParticleIterator = theParticleTable->GetIterator();
theParticleIterator->reset(); theParticleIterator->reset();
while ( ( *theParticleIterator ) () ) while ( ( *theParticleIterator ) () )
{ {
...@@ -222,6 +226,8 @@ void BETAPhysicsList::ConstructOp() { ...@@ -222,6 +226,8 @@ void BETAPhysicsList::ConstructOp() {
G4OpticalSurfaceModel themodel = unified; G4OpticalSurfaceModel themodel = unified;
//theBoundaryProcess->SetModel ( themodel ); //theBoundaryProcess->SetModel ( themodel );
auto theParticleTable = G4ParticleTable::GetParticleTable();
auto theParticleIterator = theParticleTable->GetIterator();
theParticleIterator->reset(); theParticleIterator->reset();
while ( ( *theParticleIterator ) () ) while ( ( *theParticleIterator ) () )
{ {
...@@ -257,6 +263,8 @@ void BETAPhysicsList::ConstructOp() { ...@@ -257,6 +263,8 @@ void BETAPhysicsList::ConstructOp() {
//______________________________________________________________________________ //______________________________________________________________________________
void BETAPhysicsList::SetVerbose( G4int verbose ) { void BETAPhysicsList::SetVerbose( G4int verbose ) {
G4VUserPhysicsList::SetVerboseLevel(verbose); G4VUserPhysicsList::SetVerboseLevel(verbose);
auto theParticleTable = G4ParticleTable::GetParticleTable();
auto theParticleIterator = theParticleTable->GetIterator();
theParticleIterator->reset(); theParticleIterator->reset();
while ( ( *theParticleIterator ) () ) while ( ( *theParticleIterator ) () )
{ {
...@@ -295,6 +303,8 @@ void BETAPhysicsList::SetCuts() { ...@@ -295,6 +303,8 @@ void BETAPhysicsList::SetCuts() {
} }
//______________________________________________________________________________ //______________________________________________________________________________
void BETAPhysicsList::Print(int level ) { void BETAPhysicsList::Print(int level ) {
auto theParticleTable = G4ParticleTable::GetParticleTable();
auto theParticleIterator = theParticleTable->GetIterator();
theParticleIterator->reset(); theParticleIterator->reset();
while ( ( *theParticleIterator ) () ) while ( ( *theParticleIterator ) () )
{ {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "G4Tokenizer.hh" #include "G4Tokenizer.hh"
#include "G4UImanager.hh" #include "G4UImanager.hh"
#include "SANETargets.h"
//___________________________________________________________________ //___________________________________________________________________
BETASimulationMessenger::BETASimulationMessenger ( BETASimulationManager* mgr ) BETASimulationMessenger::BETASimulationMessenger ( BETASimulationManager* mgr )
:fSimManager ( mgr ) :fSimManager ( mgr )
......
#include "SANEEventGenerators.hh" #include "SANEEventGenerators.hh"
#include "InSANEInclusiveDiffXSec.h"
#include "F1F209eInclusiveDiffXSec.h"
#include "QuasiElasticInclusiveDiffXSec.h" #include "QuasiElasticInclusiveDiffXSec.h"
#include "InSANERadiator.h" #include "InSANERadiator.h"
#include "InSANEInclusivePhotoProductionXSec.h" #include "InSANEInclusivePhotoProductionXSec.h"
#include "InSANEInclusiveElectroProductionXSec.h" #include "InSANEInclusiveElectroProductionXSec.h"
#include "SANETargets.h"
#include "InSANEInclusiveDiffXSec.h"
#include "F1F209eInclusiveDiffXSec.h"
#include "OARPionDiffXSec.h"
#include "InSANEXSections.h"
#include "InSANEPhaseSpace.h"
#include "WiserXSection.h"
#include "HallCBeam.h"
#include "PolarizedDISXSec.h"
#include "EPCVXSection.h"
#include "InSANERadiator.h"
#include "InSANEFunctionManager.h"
#include "InSANEElasticRadiativeTail.h"
#include "QuasiElasticInclusiveDiffXSec.h"
#include "InSANEInclusiveDISXSec.h"
#include "ExternalRadiator.h"
//____________________________________________________________________ using InSANE::physics::QuasiElasticInclusiveDiffXSec;
void DISEventGenerator::Initialize(){
F1F209eInclusiveDiffXSec * fDiffXSec = new F1F209eInclusiveDiffXSec();
//std::cout << " Beam Energy: " << fBeamEnergy << std::endl;
fDiffXSec->SetBeamEnergy(fBeamEnergy);
fDiffXSec->InitializePhaseSpaceVariables();
fDiffXSec->InitializeFinalStateParticles();
InSANEPhaseSpaceSampler * fF1F2EventSampler = new InSANEPhaseSpaceSampler(fDiffXSec);
AddSampler(fF1F2EventSampler);
SetBeamEnergy(fBeamEnergy); void DISEventGenerator::Initialize()
{
//InSANEEventGenerator::Initialize(); F1F209eInclusiveDiffXSec * fDiffXSec = new F1F209eInclusiveDiffXSec();
//std::cout << " Beam Energy: " << fBeamEnergy << std::endl;
fDiffXSec->SetBeamEnergy(fBeamEnergy);
fDiffXSec->InitializePhaseSpaceVariables();
fDiffXSec->InitializeFinalStateParticles();
InSANEPhaseSpaceSampler * fF1F2EventSampler = new InSANEPhaseSpaceSampler(fDiffXSec);
AddSampler(fF1F2EventSampler);
CalculateTotalCrossSection(); SetBeamEnergy(fBeamEnergy);
//InSANEEventGenerator::Initialize();
CalculateTotalCrossSection();
} }
//____________________________________________________________________ //____________________________________________________________________
SANEInclusiveDISEventGenerator::SANEInclusiveDISEventGenerator()
{
fNH3PackingFraction = 0.6;
UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction);
SetTarget(targ);
}
//______________________________________________________________________________
SANEInclusiveDISEventGenerator::~SANEInclusiveDISEventGenerator() { }
//______________________________________________________________________________
void SANEInclusiveDISEventGenerator::InitializeMaterialXSec(const Int_t i, const Double_t weight, const InSANETargetMaterial * mat, const InSANENucleus * targ)
{
InSANEPhaseSpaceSampler * samp = 0;
//F1F209eInclusiveDiffXSec * xsec = new F1F209eInclusiveDiffXSec();
auto xsec = new InSANEInclusiveDISXSec();
//auto xsec = new InSANEInclusiveBornDISXSec();
//xsec->Dump();
xsec->SetTargetMaterial(*mat);
xsec->SetTargetMaterialIndex(i);
xsec->SetBeamEnergy(GetBeamEnergy());
xsec->SetTargetNucleus(*targ);
xsec->InitializePhaseSpaceVariables();
xsec->InitializeFinalStateParticles();
samp = new InSANEPhaseSpaceSampler(xsec);
samp->SetFoamCells(100);
samp->SetWeight(weight);
AddSampler(samp);
}
//______________________________________________________________________________
void SANEInclusiveDISEventGenerator::Initialize()
{
InSANETargetEventGenerator::Initialize();
}
//____________________________________________________________________ //____________________________________________________________________
void PolarizedDISEventGenerator::Initialize(){ void PolarizedDISEventGenerator::Initialize(){
double Emin = 0.5; double Emin = 0.5;
double Emax = 3.5; double Emax = 3.5;
...@@ -261,7 +319,8 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const ...@@ -261,7 +319,8 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const
} }
if( i!=0 ) { if( i!=0 ) {
InSANERadiator<QuasiElasticInclusiveDiffXSec> * QE_xsec = new InSANERadiator<QuasiElasticInclusiveDiffXSec>(); auto QE_xsec = new InSANE::physics::ExternalRadiator<QuasiElasticInclusiveDiffXSec>();
//InSANERadiator<QuasiElasticInclusiveDiffXSec> * QE_xsec = new InSANERadiator<QuasiElasticInclusiveDiffXSec>();
QE_xsec->SetTargetMaterial(*mat); QE_xsec->SetTargetMaterial(*mat);
QE_xsec->SetTargetMaterialIndex(i); QE_xsec->SetTargetMaterialIndex(i);
QE_xsec->SetBeamEnergy(GetBeamEnergy()); QE_xsec->SetBeamEnergy(GetBeamEnergy());
...@@ -322,7 +381,22 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const ...@@ -322,7 +381,22 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const
} }
//______________________________________________________________________________ //______________________________________________________________________________
void InclusiveElectronPionGenerator::Initialize() { void InclusiveElectronPionGenerator::Initialize() {
InSANETargetEventGenerator::Initialize(); InSANETargetEventGenerator::Initialize();
}
//______________________________________________________________________________
NH3TargetEventGenerator::NH3TargetEventGenerator(){
fNH3PackingFraction = 0.6;
UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction);
SetTarget(targ);
}
//______________________________________________________________________________
NH3TargetEventGenerator::~NH3TargetEventGenerator() { }
//______________________________________________________________________________
void NH3TargetEventGenerator::Initialize() {
InSANETargetEventGenerator::Initialize();
} }
//______________________________________________________________________________ //______________________________________________________________________________
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment