diff --git a/include/SANEEventGenerators.hh b/include/SANEEventGenerators.hh index 9b98009b3f811dfba0e0ef5f7c4b42caa9d6123a..09175d48230b6941dcf595988375edf85a617836 100644 --- a/include/SANEEventGenerators.hh +++ b/include/SANEEventGenerators.hh @@ -5,19 +5,18 @@ #include "BETAG4EventGenerator.hh" #include "G4ThreeVector.hh" #include "TMath.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 "SANETargets.h" -#include "InSANERadiator.h" -#include "InSANEFunctionManager.h" -#include "InSANEElasticRadiativeTail.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" /*! \page EventGeneratorHowTo How to make an event generator @@ -125,33 +124,12 @@ class WiserEventGenerator : public BETAG4EventGenerator { */ class SANEInclusiveDISEventGenerator : public BETAG4EventGenerator { public : - SANEInclusiveDISEventGenerator(){ - fNH3PackingFraction = 0.6; - UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction); - SetTarget(targ); - } - virtual ~SANEInclusiveDISEventGenerator() { } - - - 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(); - } + SANEInclusiveDISEventGenerator(); + virtual ~SANEInclusiveDISEventGenerator() ; + + + virtual void InitializeMaterialXSec(const Int_t i, const Double_t weight, const InSANETargetMaterial * mat, const InSANENucleus * targ); + virtual void Initialize() ; Double_t fNH3PackingFraction; @@ -181,19 +159,12 @@ class PolarizedInclusiveDISEventGenerator : public BETAG4EventGenerator { */ class NH3TargetEventGenerator : public BETAG4EventGenerator { public : - NH3TargetEventGenerator(){ - fNH3PackingFraction = 0.6; - UVAPolarizedAmmoniaTarget * targ = new UVAPolarizedAmmoniaTarget("UVaTarget","UVa Ammonia target",fNH3PackingFraction); - SetTarget(targ); - } - - virtual ~NH3TargetEventGenerator() { } + NH3TargetEventGenerator(); + virtual ~NH3TargetEventGenerator() ; Double_t fNH3PackingFraction; - virtual void Initialize() { - InSANETargetEventGenerator::Initialize(); - } + virtual void Initialize() ; }; //______________________________________________________________________________ diff --git a/src/BETAPhysicsList.cc b/src/BETAPhysicsList.cc index 776f91031e07b2aee757e453466e64f3d2f8938c..391e071a1a9c08f0faf03cecf8dd73fcd199dfb8 100644 --- a/src/BETAPhysicsList.cc +++ b/src/BETAPhysicsList.cc @@ -118,7 +118,9 @@ void BETAPhysicsList::ConstructProcess() { //______________________________________________________________________________ void BETAPhysicsList::ConstructGeneral() { // Add Decay Process - G4Decay* theDecayProcess = new G4Decay(); + G4Decay* theDecayProcess = new G4Decay(); + auto theParticleTable = G4ParticleTable::GetParticleTable(); + auto theParticleIterator = theParticleTable->GetIterator(); theParticleIterator->reset(); while ( ( *theParticleIterator ) () ) { @@ -136,6 +138,8 @@ void BETAPhysicsList::ConstructGeneral() { //______________________________________________________________________________ void BETAPhysicsList::ConstructEM() { + auto theParticleTable = G4ParticleTable::GetParticleTable(); + auto theParticleIterator = theParticleTable->GetIterator(); theParticleIterator->reset(); while ( ( *theParticleIterator ) () ) { @@ -222,6 +226,8 @@ void BETAPhysicsList::ConstructOp() { G4OpticalSurfaceModel themodel = unified; //theBoundaryProcess->SetModel ( themodel ); + auto theParticleTable = G4ParticleTable::GetParticleTable(); + auto theParticleIterator = theParticleTable->GetIterator(); theParticleIterator->reset(); while ( ( *theParticleIterator ) () ) { @@ -257,6 +263,8 @@ void BETAPhysicsList::ConstructOp() { //______________________________________________________________________________ void BETAPhysicsList::SetVerbose( G4int verbose ) { G4VUserPhysicsList::SetVerboseLevel(verbose); + auto theParticleTable = G4ParticleTable::GetParticleTable(); + auto theParticleIterator = theParticleTable->GetIterator(); theParticleIterator->reset(); while ( ( *theParticleIterator ) () ) { @@ -295,6 +303,8 @@ void BETAPhysicsList::SetCuts() { } //______________________________________________________________________________ void BETAPhysicsList::Print(int level ) { + auto theParticleTable = G4ParticleTable::GetParticleTable(); + auto theParticleIterator = theParticleTable->GetIterator(); theParticleIterator->reset(); while ( ( *theParticleIterator ) () ) { diff --git a/src/BETASimulationMessenger.cc b/src/BETASimulationMessenger.cc index cced343f935eb6a85cdfde7f477e66d42a717b9f..7bd1c1f9a01465fbdba0ee5638191e831a44b37b 100644 --- a/src/BETASimulationMessenger.cc +++ b/src/BETASimulationMessenger.cc @@ -6,7 +6,7 @@ #include "G4Tokenizer.hh" #include "G4UImanager.hh" - +#include "SANETargets.h" //___________________________________________________________________ BETASimulationMessenger::BETASimulationMessenger ( BETASimulationManager* mgr ) :fSimManager ( mgr ) diff --git a/src/SANEEventGenerators.cc b/src/SANEEventGenerators.cc index 81c62ac7c806d9fda71cb85cd8d7d55c6f6a39d5..2cf50f517885aa10ffca0ef595becc60a2e5d45f 100644 --- a/src/SANEEventGenerators.cc +++ b/src/SANEEventGenerators.cc @@ -1,28 +1,86 @@ #include "SANEEventGenerators.hh" +#include "InSANEInclusiveDiffXSec.h" +#include "F1F209eInclusiveDiffXSec.h" + #include "QuasiElasticInclusiveDiffXSec.h" #include "InSANERadiator.h" #include "InSANEInclusivePhotoProductionXSec.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" -//____________________________________________________________________ -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); +using InSANE::physics::QuasiElasticInclusiveDiffXSec; - SetBeamEnergy(fBeamEnergy); - - //InSANEEventGenerator::Initialize(); +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); - 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(){ double Emin = 0.5; double Emax = 3.5; @@ -261,7 +319,8 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const } 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->SetTargetMaterialIndex(i); QE_xsec->SetBeamEnergy(GetBeamEnergy()); @@ -322,7 +381,22 @@ void InclusiveElectronPionGenerator::InitializeMaterialXSec(const Int_t i, const } //______________________________________________________________________________ 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(); } //______________________________________________________________________________