20 scalerToken_ = consumes<BeamSpotOnlineCollection>(
23 changeFrame_ = iconf.
getParameter<
bool>(
"changeToCMSCoordinates");
31 l1GtEvmReadoutRecordToken_ = consumes<L1GlobalTriggerEvmReadoutRecord>(
34 produces<reco::BeamSpot>();
46 if (iEvent.
getByToken(l1GtEvmReadoutRecordToken_, gtEvmReadoutRecord)){
47 const boost::uint16_t beamModeValue = (gtEvmReadoutRecord->gtfeWord()).beamMode();
48 if (beamModeValue == 11) shoutMODE=
true;
56 iEvent.
getByToken( scalerToken_, handleScaler);
66 bool fallBackToDB=
false;
67 if (handleScaler->size()!=0){
69 spotOnline = * ( handleScaler->begin() );
74 if (changeFrame_) f = -1.;
84 double sigmaZ = spotOnline.
sigma_z();
86 sigmaZ = theSetSigmaZ;
102 if ( spotOnline.
x() == 0 &&
103 spotOnline.
y() == 0 &&
104 spotOnline.
z() == 0 &&
110 <<
"Online Beam Spot producer falls back to DB value because the scaler values are zero ";
114 double r2=spotOnline.
x()*spotOnline.
x() + spotOnline.
y()*spotOnline.
y();
115 if (fabs(spotOnline.
z())>=theMaxZ || r2>=theMaxR2){
118 <<
"Online Beam Spot producer falls back to DB value because the scaler values are too big to be true :"
119 <<spotOnline.
x()<<
" "<<spotOnline.
y()<<
" "<<spotOnline.
z();
140 for (
int i=0;
i<7; ++
i ) {
141 for (
int j=0;
j<7; ++
j ) {
double Getdydz() const
get dydz slope, crossing angle in YZ
math::Error< dimension >::type CovarianceMatrix
T getParameter(std::string const &) const
double GetY() const
get Y beam position
void setbetaStar(double v)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
BeamSpotOnlineProducer(const edm::ParameterSet &iConf)
constructor
double GetSigmaZ() const
get sigma Z, RMS bunch length
double GetBeamWidthX() const
get average transverse beam width
math::XYZPoint Point
point in the space
double GetBeamWidthY() const
get average transverse beam width
double GetEmittanceX() const
get emittance
void setType(BeamType type)
set beam type
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
produce a beam spot class
void setBeamWidthY(double v)
void setEmittanceY(double v)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
double GetZ() const
get Z beam position
double Getdxdz() const
get dxdz slope, crossing angle in XZ
double GetX() const
get X beam position
T const * product() const
double GetBetaStar() const
get beta star
double GetCovariance(int i, int j) const
get i,j element of the full covariance matrix 7x7
double GetEmittanceY() const
get emittance
~BeamSpotOnlineProducer()
destructor
float err_sigma_z() const
void setEmittanceX(double v)