Skip to content
Snippets Groups Projects
Commit cbed9a6d authored by Unknown's avatar Unknown
Browse files

No commit message

No commit message
parent 088e64dc
No related branches found
No related tags found
No related merge requests found
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% An Isotropic Source to be used as EventGenerator %%%%%%%%%%% %%%%%%%%%% An Isotropic Source to be used as EventGenerator %%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Energy are given in MeV , Position in mm % % Energy are given in MeV , Position in mm , Angle is deg %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Beam Beam
ParticleZ= 3 ParticleZ= 3
......
...@@ -35,9 +35,6 @@ ...@@ -35,9 +35,6 @@
#include "G4ParticleGun.hh" #include "G4ParticleGun.hh"
#include "G4Event.hh" #include "G4Event.hh"
// ROOT headers
#include"TRandom3.h"
#include "Randomize.hh"
using namespace CLHEP; using namespace CLHEP;
using namespace std; using namespace std;
...@@ -60,10 +57,8 @@ public: ...@@ -60,10 +57,8 @@ public:
virtual void SetTargetCoordinate(G4double, G4double, G4double) {}; virtual void SetTargetCoordinate(G4double, G4double, G4double) {};
// Used to simulate beam emmitance effect // Used to simulate beam emmitance effect
void RandomGaussian2D(double MeanX,double MeanY,double SigmaX,double SigmaY,double &X,double &Y, double NumberOfSigma=7); void RandomGaussian2D(double MeanX,double MeanY,double SigmaX,double SigmaY,double &X,double &Y, double NumberOfSigma=10000);
private: // Random Engine used by RandomGaussian2D
TRandom3 m_RandomEngine ;
}; };
......
...@@ -25,16 +25,16 @@ ...@@ -25,16 +25,16 @@
*****************************************************************************/ *****************************************************************************/
#include "VEventGenerator.hh" #include "VEventGenerator.hh"
//Root // ROOT headers
#include"TMath.h" #include"TMath.h"
// CLHEP headers
#include "Randomize.hh"
VEventGenerator::VEventGenerator() VEventGenerator::VEventGenerator()
{ {
} }
VEventGenerator::~VEventGenerator() VEventGenerator::~VEventGenerator()
{ {
} }
...@@ -44,51 +44,22 @@ void VEventGenerator::RandomGaussian2D(double MeanX,double MeanY,double SigmaX,d ...@@ -44,51 +44,22 @@ void VEventGenerator::RandomGaussian2D(double MeanX,double MeanY,double SigmaX,d
if(SigmaX!=0) if(SigmaX!=0)
{ {
X=100*SigmaX; X=2* NumberOfSigma *SigmaX;
while(X>NumberOfSigma*SigmaX) while(X>NumberOfSigma*SigmaX)
// X = m_RandomEngine.Gaus( MeanX , SigmaX) ;
X = RandGauss::shoot( MeanX , SigmaX); X = RandGauss::shoot( MeanX , SigmaX);
G4cout << MeanX << " " << SigmaX << G4endl ;
double a = NumberOfSigma * SigmaX/2 ; double a = NumberOfSigma * SigmaX/2 ;
double b = NumberOfSigma * SigmaY/2 ; double b = NumberOfSigma * SigmaY/2 ;
double SigmaYPrim = b * sqrt( 1 - X*X / (a*a) ) ; double SigmaYPrim = b * sqrt( 1 - X*X / (a*a) ) ;
SigmaYPrim = 2*SigmaYPrim / NumberOfSigma ; SigmaYPrim = 2*SigmaYPrim / NumberOfSigma ;
// Y = m_RandomEngine.Gaus( MeanY , SigmaYPrim) ;
Y = RandGauss::shoot( MeanY , SigmaYPrim) ; Y = RandGauss::shoot( MeanY , SigmaYPrim) ;
} }
else else
{ {
X= MeanX; X = MeanX ;
Y = m_RandomEngine.Gaus( MeanY , SigmaY) ; Y = RandGauss::shoot( MeanY , SigmaY) ;
} }
/* if(SigmaX!=0)
{
X = m_RandomEngine.Gaus( MeanX , SigmaX) ;
double NumberOfSigma ;
double a = SigmaX / 2. ;
double b = SigmaY / 2. ;
NumberOfSigma = ( X / a ) ;
NumberOfSigma = TMath::Floor( sqrt(NumberOfSigma*NumberOfSigma)+1) ;
double SigmaYPrim = NumberOfSigma*b * sqrt( 1 - X*X / (a*NumberOfSigma*a*NumberOfSigma) ) ;
SigmaYPrim = 2*SigmaYPrim / NumberOfSigma ;
Y = m_RandomEngine.Gaus( MeanY , SigmaYPrim) ;
}
else
{
X= MeanX;
Y = m_RandomEngine.Gaus( MeanY , SigmaY) ;
}*/
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment