From 8fa799d83dd1342550066ee9aec63cfa67198720 Mon Sep 17 00:00:00 2001 From: Peter Hurck Date: Fri, 22 Mar 2024 09:03:28 -0400 Subject: [PATCH] Pass seed from ProductionMechanism to BreitWignerGenerator --- src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.cc | 9 ++++++--- src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.h | 2 +- src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.cc | 5 +++-- src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.h | 2 ++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.cc b/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.cc index d856f43a3..04bf24707 100644 --- a/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.cc +++ b/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.cc @@ -4,6 +4,7 @@ #include #include "AMPTOOLS_MCGEN/BreitWignerGenerator.h" +#include "TRandom3.h" const double BreitWignerGenerator::kPi = 3.14159; @@ -12,10 +13,12 @@ m_mass( 0 ), m_width( 0 ) {} -BreitWignerGenerator::BreitWignerGenerator( double mass, double width ) : +BreitWignerGenerator::BreitWignerGenerator( double mass, double width, int seed ) : m_mass( mass ), m_width( width ) -{} +{ + gRandom->SetSeed( seed ); +} pair< double, double > BreitWignerGenerator::operator()() const @@ -61,5 +64,5 @@ BreitWignerGenerator::pdf( double s ) const { double BreitWignerGenerator::random( double low, double hi ) const { - return( ( hi - low ) * drand48() + low ); + return( ( hi - low ) * gRandom->Uniform() + low ); } diff --git a/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.h b/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.h index 6e1b4778d..c39a2bd62 100644 --- a/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.h +++ b/src/libraries/AMPTOOLS_MCGEN/BreitWignerGenerator.h @@ -12,7 +12,7 @@ class BreitWignerGenerator BreitWignerGenerator(); - BreitWignerGenerator( double mass, double width ); + BreitWignerGenerator( double mass, double width, int seed = 0 ); // output of the generation is a pair of doubles // the first is the mass and the second is the weight diff --git a/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.cc b/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.cc index 197e6a834..1b00a7f9e 100644 --- a/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.cc +++ b/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.cc @@ -20,7 +20,8 @@ m_highMass( 0 ), m_slope( slope ), m_lowT( 0 ), m_highT( 12 ), -m_lastWeight( 1. ) +m_lastWeight( 1. ), +m_seed( seed ) { // kMZ = 108.; // mass of Sn116 kMZ = 208.*0.931494; // use mass of Pb as it is in the particle table @@ -210,7 +211,7 @@ void ProductionMechanism::addResonance( double mass, double width, double crossSec ){ m_decGen.addChannel( m_bwGen.size(), crossSec ); - m_bwGen.push_back( BreitWignerGenerator( mass, width ) ); + m_bwGen.push_back( BreitWignerGenerator( mass, width, m_seed ) ); } double diff --git a/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.h b/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.h index 3231809f8..89eeec346 100644 --- a/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.h +++ b/src/libraries/AMPTOOLS_MCGEN/ProductionMechanism.h @@ -53,6 +53,8 @@ class ProductionMechanism double m_highT; double m_recMass; + + int m_seed; bool isBaryonResonance;