Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions EventGenerator/inc/ParticleGeneratorTool.hh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "Offline/DataProducts/inc/PDGCode.hh"
#include "Offline/MCDataProducts/inc/ProcessCode.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"

#include "Offline/GeneralUtilities/inc/RSNTIO.hh"

Expand All @@ -35,6 +36,11 @@ namespace mu2e {
// This interface should be removed when we retire ntuple-based muon resampling
virtual void generate(std::unique_ptr<GenParticleCollection>& out, const IO::StoppedParticleF& stop) = 0;

virtual std::unique_ptr<SpectrumConfig> spectrumConfig() {
auto config = std::make_unique<SpectrumConfig>();
return config;
}

virtual ~ParticleGeneratorTool() noexcept = default;

bool _isPrimary = true; // flag to indicate if this is for primary generation or not
Expand Down
10 changes: 10 additions & 0 deletions EventGenerator/src/AntiProtonGun_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Principal/SubRun.h"
#include "art/Framework/Principal/Run.h"
#include "art/Framework/Principal/Handle.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
Expand All @@ -32,6 +33,7 @@
#include "Offline/GlobalConstantsService/inc/ParticleDataList.hh"
#include "Offline/DataProducts/inc/PDGCode.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/Mu2eUtilities/inc/RandomUnitSphere.hh"
#include "Offline/Mu2eUtilities/inc/CzarneckiSpectrum.hh"
#include "Offline/Mu2eUtilities/inc/SimpleSpectrum.hh"
Expand Down Expand Up @@ -104,6 +106,7 @@ namespace mu2e {
explicit AntiProtonGun(const fhicl::ParameterSet& pset);
virtual void produce(art::Event& event);
virtual void beginRun(art::Run& run);
virtual void endSubRun(art::SubRun& sr) override;
};

//================================================================
Expand All @@ -119,6 +122,7 @@ namespace mu2e {
, firstEvent_(true)
{
produces<mu2e::GenParticleCollection>();
produces<mu2e::SpectrumConfig, art::InSubRun>();

if(verbosityLevel_ > 0) {
std::cout<<"AntiProtonGun: producing particle "
Expand Down Expand Up @@ -232,6 +236,12 @@ namespace mu2e {
return total;
} // dsigma

//================================================================
void AntiProtonGun::endSubRun(art::SubRun& sr) {
auto config = std::make_unique<SpectrumConfig>();
sr.put(std::move(config), art::fullSubRun());
}

//================================================================
void AntiProtonGun::produce(art::Event& event) {

Expand Down
10 changes: 10 additions & 0 deletions EventGenerator/src/AntiprotonResampling_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Principal/SubRun.h"
#include "art/Framework/Principal/Run.h"
#include "art/Framework/Principal/Handle.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
Expand All @@ -26,6 +27,7 @@
#include "Offline/MCDataProducts/inc/ProcessCode.hh"
#include "Offline/MCDataProducts/inc/SimParticle.hh"
#include "Offline/MCDataProducts/inc/StageParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/Mu2eUtilities/inc/simParticleList.hh"

#include "TH1.h"
Expand Down Expand Up @@ -68,6 +70,7 @@ namespace mu2e {
explicit AntiprotonResampling(const Parameters& conf);

virtual void produce(art::Event& event);
virtual void endSubRun(art::SubRun& sr) override;
};

//================================================================
Expand All @@ -81,6 +84,7 @@ namespace mu2e {
, makeHistograms_(conf().makeHistograms())
{
produces<mu2e::StageParticleCollection>();
produces<mu2e::SpectrumConfig, art::InSubRun>();

if(verbosity_ > 0) {
std::cout<<"AntiprotonResampling: using process code " << processCode_ << std::endl;
Expand Down Expand Up @@ -147,6 +151,12 @@ namespace mu2e {
}
}

//================================================================
void AntiprotonResampling::endSubRun(art::SubRun& sr) {
auto config = std::make_unique<SpectrumConfig>();
sr.put(std::move(config), art::fullSubRun());
}

//================================================================
} // namespace mu2e

Expand Down
5 changes: 5 additions & 0 deletions EventGenerator/src/CORSIKAEventGenerator_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include "Offline/GeometryService/inc/Mu2eEnvelope.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/CosmicLivetime.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/SimTimeOffset.hh"
#include "Offline/CalorimeterGeom/inc/Calorimeter.hh"
Expand Down Expand Up @@ -117,6 +118,7 @@ namespace mu2e {
{
produces<GenParticleCollection>();
produces<CosmicLivetime,art::InSubRun>();
produces<SpectrumConfig,art::InSubRun>();
if (_applyTimeOffset) {
_timeOffsetTag = conf().simTimeOffset().value();
}
Expand All @@ -132,6 +134,9 @@ namespace mu2e {
std::unique_ptr<CosmicLivetime> livetime(new CosmicLivetime(_primaries, _area, _lowE, _highE, _fluxConstant));
std::cout << *livetime << std::endl;
subrun.put(std::move(livetime), art::fullSubRun());

auto config = std::make_unique<SpectrumConfig>();
subrun.put(std::move(config), art::fullSubRun());
}

void CorsikaEventGenerator::produce(art::Event &evt)
Expand Down
5 changes: 5 additions & 0 deletions EventGenerator/src/CRYEventGenerator_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/G4BeamlineInfo.hh"
#include "Offline/MCDataProducts/inc/CosmicLivetime.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"

// Particular generators that this code knows about.
#include "Offline/SeedService/inc/SeedService.hh"
Expand Down Expand Up @@ -51,6 +52,7 @@ namespace mu2e {
{
produces<GenParticleCollection>();
produces<CosmicLivetime,art::InSubRun>();
produces<SpectrumConfig,art::InSubRun>();
}

void CryEventGenerator::beginRun( art::Run &run){
Expand Down Expand Up @@ -83,6 +85,9 @@ namespace mu2e {
cryGen->getLiveTime() ));
std::cout << *livetime << std::endl;
subrun.put(std::move(livetime), art::fullSubRun());

auto config = std::make_unique<SpectrumConfig>();
subrun.put(std::move(config), art::fullSubRun());
}

}
Expand Down
9 changes: 9 additions & 0 deletions EventGenerator/src/CaloCalibGun_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "messagefacility/MessageLogger/MessageLogger.h"
#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Principal/SubRun.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"

// Mu2e includes
Expand All @@ -23,6 +24,7 @@
#include "Offline/MCDataProducts/inc/GenId.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/PrimaryParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"

// Other external includes.
#include "CLHEP/Random/RandFlat.h"
Expand Down Expand Up @@ -65,6 +67,7 @@ namespace mu2e {

virtual void produce(art::Event& event) override;
virtual void beginRun(art::Run& run) override;
virtual void endSubRun(art::SubRun& sr) override;

private:

Expand Down Expand Up @@ -121,6 +124,7 @@ namespace mu2e {
{
produces<mu2e::GenParticleCollection>();
produces<mu2e::PrimaryParticle>();
produces<mu2e::SpectrumConfig, art::InSubRun>();

}

Expand Down Expand Up @@ -233,6 +237,11 @@ namespace mu2e {

}

void CaloCalibGun::endSubRun(art::SubRun& sr) {
auto config = std::make_unique<SpectrumConfig>();
sr.put(std::move(config), art::fullSubRun());
}

//================================================================
} // namespace mu2e

Expand Down
10 changes: 10 additions & 0 deletions EventGenerator/src/CaloTBGun_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
// Framework includes
#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Principal/SubRun.h"
#include "art/Framework/Principal/Run.h"
#include "art/Framework/Principal/Handle.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
Expand All @@ -20,6 +21,7 @@
#include "Offline/GlobalConstantsService/inc/GlobalConstantsHandle.hh"
#include "Offline/DataProducts/inc/PDGCode.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/GeometryService/inc/GeomHandle.hh"
#include "Offline/GeometryService/inc/DetectorSystem.hh"
#include "Offline/CalorimeterGeom/inc/DiskCalorimeter.hh"
Expand All @@ -34,6 +36,7 @@ namespace mu2e {
public:
explicit CaloTBGun (const fhicl::ParameterSet& pset);
virtual void produce (art::Event& event);
virtual void endSubRun(art::SubRun& sr) override;

private:
int verbosityLevel_;
Expand All @@ -54,6 +57,7 @@ namespace mu2e {

{
produces<mu2e::GenParticleCollection>();
produces<mu2e::SpectrumConfig, art::InSubRun>();
if (verbosityLevel_ > 0) std::cout<<"CaloTB gun: shoot! " << std::endl;
}

Expand All @@ -73,6 +77,12 @@ namespace mu2e {
event.put(std::move(output));
}

void CaloTBGun::endSubRun(art::SubRun& sr)
{
auto config = std::make_unique<SpectrumConfig>();
sr.put(std::move(config), art::fullSubRun());
}

}

DEFINE_ART_MODULE(mu2e::CaloTBGun)
12 changes: 12 additions & 0 deletions EventGenerator/src/CeEndpoint_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "Offline/GlobalConstantsService/inc/PhysicsParams.hh"
#include "Offline/Mu2eUtilities/inc/RandomUnitSphere.hh"
#include "Offline/DataProducts/inc/PDGCode.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/MCDataProducts/inc/StageParticle.hh"
#include "Offline/Mu2eUtilities/inc/simParticleList.hh"

Expand All @@ -53,6 +54,7 @@ namespace mu2e {
explicit CeEndpoint(const Parameters& conf);

virtual void produce(art::Event& event) override;
virtual void endSubRun(art::SubRun& sr) override;

//----------------------------------------------------------------
private:
Expand Down Expand Up @@ -93,6 +95,7 @@ namespace mu2e {
, pdgId_(conf().pdgId())
{
produces<mu2e::StageParticleCollection>();
produces<mu2e::SpectrumConfig, art::InSubRun>();
pid = static_cast<PDGCode::type>(pdgId_);
if(czMax_ < czMin_ || czMin_ < -1. || czMax_ > 1.) throw cet::exception("BADCONFIG") << "CeEndpoint generator cos(theta_z) range is not defined\n";

Expand Down Expand Up @@ -150,6 +153,15 @@ namespace mu2e {
event.put(std::move(output));
}

//================================================================
void CeEndpoint::endSubRun(art::SubRun& sr) {
// Make a summary of how this generator was configured
auto config = std::make_unique<SpectrumConfig>();
config->add_var(SpectrumConfig::RestrictedVar("energy", 1. , endPointEnergy_, endPointEnergy_));
config->add_var(SpectrumConfig::RestrictedVar("cosz" , (czMax_ - czMin_)/2., czMin_ , czMax_ ));
sr.put(std::move(config), art::fullSubRun());
}

//================================================================
} // namespace mu2e

Expand Down
10 changes: 10 additions & 0 deletions EventGenerator/src/CryResampler_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Principal/SubRun.h"
#include "art/Framework/Principal/Run.h"
#include "art/Framework/Principal/Handle.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
Expand All @@ -21,6 +22,7 @@
#include "Offline/GlobalConstantsService/inc/GlobalConstantsHandle.hh"
#include "Offline/GlobalConstantsService/inc/ParticleDataList.hh"
#include "Offline/MCDataProducts/inc/GenParticle.hh"
#include "Offline/MCDataProducts/inc/SpectrumConfig.hh"
#include "Offline/GeneralUtilities/inc/RSNTIO.hh"

#include "TTree.h"
Expand Down Expand Up @@ -60,6 +62,7 @@ namespace mu2e {
public:
explicit CryResampler(const fhicl::ParameterSet& pset);
virtual void produce(art::Event& event);
virtual void endSubRun(art::SubRun& sr) override;
};

//================================================================
Expand Down Expand Up @@ -88,6 +91,7 @@ namespace mu2e {
inputFile_ << std::endl;

produces<GenParticleCollection>();
produces<SpectrumConfig, art::InSubRun>();
}

//================================================================
Expand Down Expand Up @@ -119,6 +123,12 @@ namespace mu2e {
event.put(std::move(output));
}

//================================================================
void CryResampler::endSubRun(art::SubRun& sr) {
auto config = std::make_unique<SpectrumConfig>();
sr.put(std::move(config), art::fullSubRun());
}

//================================================================
} // namespace mu2e

Expand Down
19 changes: 18 additions & 1 deletion EventGenerator/src/DIOGenerator_tool.cc
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ namespace mu2e {
_mass(GlobalConstantsHandle<ParticleDataList>()->particle(_pdgId).mass()),
_czmin(conf().czmin()),
_czmax(conf().czmax()),
_spectrum(BinnedSpectrum(conf().spectrum.get<fhicl::ParameterSet>()))
_spectrum(BinnedSpectrum(conf().spectrum.get<fhicl::ParameterSet>())),
_flatSpectrum(conf().spectrum.get<fhicl::ParameterSet>().get<std::string>("spectrumShape", "") == "flat")
{
if(_czmin > _czmax || _czmin < -1. || _czmax > 1.) throw cet::exception("BADCONFIG") << "DIOGenerator cos(theta_z) range is not defined\n";

Expand All @@ -45,6 +46,8 @@ namespace mu2e {
}

auto fullconfig = conf().spectrum.get<fhicl::ParameterSet>();
_emin = fullconfig.get<double>("elow", _spectrum.getXMin());
_emax = fullconfig.get<double>("ehi", _spectrum.getXMax());
fullconfig.erase(std::string("elow"));
fullconfig.erase(std::string("ehi"));
fullconfig.put(std::string("elow"),double(0.0));
Expand All @@ -59,6 +62,7 @@ namespace mu2e {
double pdfmin = _spectrum.getPDF(0);
double binsize = _spectrum.getBinWidth();
fullintegral += 0.5*pdfmin*pmin/binsize;
_energy_fraction = (fullintegral > 0.) ? integral / fullintegral : 0.;
std::cout << "Cos(theta_z) min " << _czmin << " max " << _czmax << std::endl;
std::cout << "Restricted Spectrum min " << _spectrum.getAbscissa(0) << " max " << _spectrum.getAbscissa(_spectrum.getNbins()-1) << std::endl;
std::cout << "Full Spectrum min " << fullspect.getAbscissa(0) << " max " << fullspect.getAbscissa(fullspect.getNbins()-1) << std::endl;
Expand All @@ -72,6 +76,7 @@ namespace mu2e {

std::vector<ParticleGeneratorTool::Kinematic> generate() override;
void generate(std::unique_ptr<GenParticleCollection>& out, const IO::StoppedParticleF& stop) override;
std::unique_ptr<SpectrumConfig> spectrumConfig() override;

void finishInitialization(art::RandomNumberGenerator::base_engine_t& eng, const std::string&, const bool isPrimary) override {
_isPrimary = isPrimary;
Expand All @@ -87,6 +92,10 @@ namespace mu2e {
const double _czmin;
const double _czmax;
BinnedSpectrum _spectrum;
double _emin;
double _emax;
double _energy_fraction;
bool _flatSpectrum;

std::unique_ptr<RandomUnitSphere> _randomUnitSphere;
std::unique_ptr<CLHEP::RandGeneral> _randSpectrum;
Expand Down Expand Up @@ -124,5 +133,13 @@ namespace mu2e {
}
}

std::unique_ptr<SpectrumConfig> DIOGenerator::spectrumConfig() {
auto config = std::make_unique<SpectrumConfig>();
config->add_var(SpectrumConfig::RestrictedVar("energy", _energy_fraction , _emin , _emax,
_flatSpectrum ? SpectrumConfig::Type::kFlat : SpectrumConfig::Type::kPhysical));
config->add_var(SpectrumConfig::RestrictedVar("cosz" , (_czmax - _czmin)/2., _czmin, _czmax));
return config;
}

}
DEFINE_ART_CLASS_TOOL(mu2e::DIOGenerator)
Loading