|
|
Go to the documentation of this file.
61 : changeFrame_(iconf.getParameter<
bool>(
"changeToCMSCoordinates")),
62 theMaxZ(iconf.getParameter<double>(
"maxZ")),
63 theSetSigmaZ(iconf.getParameter<double>(
"setSigmaZ")),
64 useTransientRecord_(iconf.getParameter<
bool>(
"useTransientRecord")),
69 theBeamShoutMode(iconf.getUntrackedParameter<unsigned
int>(
"beamMode", 11)) {
73 produces<reco::BeamSpot>();
78 ps.
add<
bool>(
"changeToCMSCoordinates",
false);
79 ps.
add<
double>(
"maxZ", 40.);
80 ps.
add<
double>(
"setSigmaZ", -1.);
84 ps.
add<
double>(
"maxRadius", 2.0);
85 ps.
add<
bool>(
"useTransientRecord",
false);
91 auto result = std::make_unique<reco::BeamSpot>();
94 bool shoutMODE =
false;
102 bool fallBackToDB =
false;
105 if (spotDB.GetBeamType() != 2) {
108 <<
"Online Beam Spot producer falls back to DB value because the ESProducer returned a fake beamspot ";
121 for (
int i = 0;
i < 7; ++
i) {
122 for (
int j = 0;
j < 7; ++
j) {
126 double sigmaZ = spotDB.GetSigmaZ();
147 auto result = std::make_unique<reco::BeamSpot>();
149 if (!handleScaler->empty()) {
151 spotOnline = *(handleScaler->begin());
180 if (spotOnline.
x() == 0 && spotOnline.
y() == 0 && spotOnline.
z() == 0 && spotOnline.
width_x() == 0 &&
184 <<
"Online Beam Spot producer falls back to DB value because the scaler values are zero ";
188 double r2 = spotOnline.
x() * spotOnline.
x() + spotOnline.
y() * spotOnline.
y();
192 <<
"Online Beam Spot producer falls back to DB value because the scaler values are too big to be true :"
193 << spotOnline.
x() <<
" " << spotOnline.
y() <<
" " << spotOnline.
z();
211 for (
int i = 0;
i < 7; ++
i) {
212 for (
int j = 0;
j < 7; ++
j) {
bool check(const edm::EventSetup &iSetup)
T const * product() const
double GetBeamWidthY() const
get average transverse beam width
double Getdxdz() const
get dxdz slope, crossing angle in XZ
const edm::ESGetToken< BeamSpotObjects, BeamSpotObjectsRcd > beamToken_
static void fillDescriptions(edm::ConfigurationDescriptions &iDesc)
Fill descriptor.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void setBeamWidthY(double v)
void setEmittanceY(double v)
double GetSigmaZ() const
get sigma Z, RMS bunch length
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
double GetZ() const
get Z beam position
float err_sigma_z() const
const bool useTransientRecord_
Log< level::Warning, false > LogWarning
#define DEFINE_FWK_MODULE(type)
const edm::ESGetToken< BeamSpotObjects, BeamSpotTransientObjectsRcd > beamTransientToken_
double GetCovariance(int i, int j) const
get i,j element of the full covariance matrix 7x7
void setEmittanceX(double v)
const double theSetSigmaZ
double GetBetaStar() const
get beta star
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
double GetEmittanceX() const
get emittance
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
produce a beam spot class
double GetY() const
get Y beam position
void setbetaStar(double v)
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
BeamSpotOnlineProducer(const edm::ParameterSet &iConf)
constructor
math::Error< dimension >::type CovarianceMatrix
const edm::EDGetTokenT< BeamSpotOnlineCollection > scalerToken_
Log< level::Error, false > LogError
bool getData(T &iHolder) const
double GetBeamWidthX() const
get average transverse beam width
double GetEmittanceY() const
get emittance
double Getdydz() const
get dydz slope, crossing angle in YZ
const edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > l1GtEvmReadoutRecordToken_
std::vector< BeamSpotOnline > BeamSpotOnlineCollection
T getParameter(std::string const &) const
math::XYZPoint Point
point in the space
Abs< T >::type abs(const T &t)
const unsigned int theBeamShoutMode
void setType(BeamType type)
set beam type
double GetX() const
get X beam position
const cms_uint16_t beamMode() const
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
edm::ESWatcher< BeamSpotTransientObjectsRcd > beamTransientRcdESWatcher_