#include "FWCore/Framework/interface/MakerMacros.h"
// #include "IOMC/Input/interface/MCFileSource.h"

// Julia Yarba : related to particle gun prototypes
//

#include "IOMC/ParticleGuns/interface/BeamMomentumGunProducer.h"
#include "IOMC/ParticleGuns/interface/CloseByParticleGunProducer.h"
#include "IOMC/ParticleGuns/interface/ExpoRandomPtGunProducer.h"
#include "IOMC/ParticleGuns/interface/ExpoRandomPGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomEGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomEThetaGunProducer.h"
#include "IOMC/ParticleGuns/interface/FileRandomKEThetaGunProducer.h"
#include "IOMC/ParticleGuns/interface/FileRandomMultiParticlePGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomMultiParticlePGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomOneOverPtGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomPtAndDxyGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomPtGunProducer.h"
#include "IOMC/ParticleGuns/interface/FlatRandomPtThetaGunProducer.h"
#include "IOMC/ParticleGuns/interface/GaussRandomPThetaGunProducer.h"
#include "IOMC/ParticleGuns/interface/MultiParticleInConeGunProducer.h"
#include "IOMC/ParticleGuns/interface/RandomtXiGunProducer.h"
#include "IOMC/ParticleGuns/interface/RandomMultiParticlePGunProducer.h"
#include "IOMC/ParticleGuns/interface/RandomXiThetaGunProducer.h"
// particle gun prototypes
//

using edm::BeamMomentumGunProducer;
DEFINE_FWK_MODULE(BeamMomentumGunProducer);
using edm::CloseByParticleGunProducer;
DEFINE_FWK_MODULE(CloseByParticleGunProducer);
using edm::ExpoRandomPtGunProducer;
DEFINE_FWK_MODULE(ExpoRandomPtGunProducer);
using edm::ExpoRandomPGunProducer;
DEFINE_FWK_MODULE(ExpoRandomPGunProducer);
using edm::FileRandomKEThetaGunProducer;
DEFINE_FWK_MODULE(FileRandomKEThetaGunProducer);
using edm::FileRandomMultiParticlePGunProducer;
DEFINE_FWK_MODULE(FileRandomMultiParticlePGunProducer);
using edm::FlatRandomEGunProducer;
DEFINE_FWK_MODULE(FlatRandomEGunProducer);
using edm::FlatRandomPtGunProducer;
DEFINE_FWK_MODULE(FlatRandomPtGunProducer);
using edm::FlatRandomEThetaGunProducer;
DEFINE_FWK_MODULE(FlatRandomEThetaGunProducer);
using edm::FlatRandomMultiParticlePGunProducer;
DEFINE_FWK_MODULE(FlatRandomMultiParticlePGunProducer);
using edm::FlatRandomOneOverPtGunProducer;
DEFINE_FWK_MODULE(FlatRandomOneOverPtGunProducer);
using edm::FlatRandomPtAndDxyGunProducer;
DEFINE_FWK_MODULE(FlatRandomPtAndDxyGunProducer);
using edm::FlatRandomPtThetaGunProducer;
DEFINE_FWK_MODULE(FlatRandomPtThetaGunProducer);
using edm::GaussRandomPThetaGunProducer;
DEFINE_FWK_MODULE(GaussRandomPThetaGunProducer);
using edm::MultiParticleInConeGunProducer;
DEFINE_FWK_MODULE(MultiParticleInConeGunProducer);
using edm::RandomtXiGunProducer;
DEFINE_FWK_MODULE(RandomtXiGunProducer);
using edm::RandomMultiParticlePGunProducer;
DEFINE_FWK_MODULE(RandomMultiParticlePGunProducer);
using edm::RandomXiThetaGunProducer;
DEFINE_FWK_MODULE(RandomXiThetaGunProducer);
