20 #include "CLHEP/Random/RandGauss.h" 40 #define init_param(type, varname) varname(ps.getParameter<type>(#varname)) 124 auto pOutput = std::make_unique<reco::VertexCollection>();
138 throw cms::Exception(
"FFTJetBadConfig") <<
"ERROR in FFTJetVertexAdder:" 139 " could not find beam spot information" 142 xmean = beamSpotHandle->
x0();
143 ymean = beamSpotHandle->
y0();
144 zmean = beamSpotHandle->
z0();
148 zwidth = beamSpotHandle->
sigmaZ();
152 for (
unsigned i = 0;
i < 3; ++
i)
153 for (
unsigned j = 0;
j < 3; ++
j)
160 const double x0 = rGauss(xmean, xwidth);
161 const double y0 = rGauss(ymean, ywidth);
162 const double z0 = rGauss(zmean, zwidth);
168 typedef reco::VertexCollection::const_iterator IV;
173 throw cms::Exception(
"FFTJetBadConfig") <<
"ERROR in FFTJetVertexAdder:" 174 " could not find existing collection of vertices" 179 pOutput->push_back(*
iv);
189 throw cms::Exception(
"FFTJetBadConfig") <<
"ERROR in FFTJetVertexAdder:" 190 " failed to initialize the random number generator"
double BeamWidthX() const
beam width X
const std::string outputLabel
const bool addExistingVertices
#define DEFINE_FWK_MODULE(type)
math::Error< dimension >::type Error
covariance error matrix (3x3)
#define init_param(type, varname)
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
edm::EDGetTokenT< reco::VertexCollection > existingVerticesToken
const unsigned nVerticesToMake
const edm::InputTag beamSpotLabel
double x0() const
x coordinate
FFTJetVertexAdder & operator=(const FFTJetVertexAdder &)=delete
double BeamWidthY() const
beam width Y
math::XYZPoint Point
point in the space
const edm::InputTag existingVerticesLabel
double y0() const
y coordinate
~FFTJetVertexAdder() override
void produce(edm::Event &, const edm::EventSetup &) override
double sigmaZ() const
sigma z
double z0() const
z coordinate
static int position[264][3]
FFTJetVertexAdder()=delete
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken