-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #29662 from MilanoBicocca-pix/BSforOnlineHLT_PR1
New BeamSpot Object and Records
- Loading branch information
Showing
28 changed files
with
1,465 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,13 @@ | ||
#include "CondCore/ESSources/interface/registration_macros.h" | ||
#include "CondFormats/DataRecord/interface/BeamSpotObjectsRcd.h" | ||
#include "CondFormats/DataRecord/interface/SimBeamSpotObjectsRcd.h" | ||
#include "CondFormats/DataRecord/interface/BeamSpotOnlineHLTObjectsRcd.h" | ||
#include "CondFormats/DataRecord/interface/BeamSpotOnlineLegacyObjectsRcd.h" | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotObjects.h" | ||
#include "CondFormats/BeamSpotObjects/interface/SimBeamSpotObjects.h" | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotOnlineObjects.h" | ||
|
||
REGISTER_PLUGIN(BeamSpotObjectsRcd, BeamSpotObjects); | ||
REGISTER_PLUGIN(SimBeamSpotObjectsRcd, SimBeamSpotObjects); | ||
REGISTER_PLUGIN(BeamSpotOnlineHLTObjectsRcd, BeamSpotOnlineObjects); | ||
REGISTER_PLUGIN(BeamSpotOnlineLegacyObjectsRcd, BeamSpotOnlineObjects); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
97 changes: 97 additions & 0 deletions
97
CondFormats/BeamSpotObjects/interface/BeamSpotOnlineObjects.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
#ifndef BEAMSPOTONLINEOBJECTS_H | ||
#define BEAMSPOTONLINEOBJECTS_H | ||
/** \class BeamSpotOnlineObjects | ||
* | ||
* Class inheriting from BeamSpotObjects. | ||
* New members of the class: | ||
* - lastAnalyzedLumi : last lumisection analyzed | ||
* - lastAnalyzedRun : run of the last analyzed lumisection | ||
* - lastAnalyzedFill : fill of the last analyzed lumisection | ||
* | ||
* \author Francisco Brivio, Milano-Bicocca (francesco.brivio@cern.ch) | ||
* | ||
*/ | ||
|
||
#include "CondFormats/Serialization/interface/Serializable.h" | ||
#include "CondFormats/Common/interface/Time.h" | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotObjects.h" | ||
|
||
#include <cmath> | ||
#include <sstream> | ||
#include <cstring> | ||
#include <vector> | ||
#include <string> | ||
|
||
class BeamSpotOnlineObjects : public BeamSpotObjects { | ||
public: | ||
/// default constructor | ||
BeamSpotOnlineObjects() { | ||
lastAnalyzedLumi_ = 0; | ||
lastAnalyzedRun_ = 0; | ||
lastAnalyzedFill_ = 0; | ||
intParams_.resize(ISIZE, std::vector<int>(1, 0)); | ||
timeParams_.resize(TSIZE, std::vector<unsigned long long>(1, 0ULL)); | ||
} | ||
|
||
~BeamSpotOnlineObjects() override {} | ||
|
||
/// Enums | ||
enum IntParamIndex { NUM_TRACKS = 0, NUM_PVS = 1, ISIZE = 2 }; | ||
enum TimeParamIndex { CREATE_TIME = 0, TSIZE = 1 }; | ||
|
||
/// Setters Methods | ||
// set lastAnalyzedLumi_, last analyzed lumisection | ||
void SetLastAnalyzedLumi(int val) { lastAnalyzedLumi_ = val; } | ||
|
||
// set lastAnalyzedRun_, run of the last analyzed lumisection | ||
void SetLastAnalyzedRun(int val) { lastAnalyzedRun_ = val; } | ||
|
||
// set lastAnalyzedFill_, fill of the last analyzed lumisection | ||
void SetLastAnalyzedFill(int val) { lastAnalyzedFill_ = val; } | ||
|
||
// set number of tracks used in the BeamSpot fit | ||
void SetNumTracks(int val); | ||
|
||
// set number of Primary Vertices used in the BeamSpot fit | ||
void SetNumPVs(int val); | ||
|
||
// set creation time of the payload | ||
void SetCreationTime(cond::Time_t val); | ||
|
||
/// Getters Methods | ||
// get lastAnalyzedLumi_, last analyzed lumisection | ||
int GetLastAnalyzedLumi() const { return lastAnalyzedLumi_; } | ||
|
||
// get lastAnalyzedRun_, run of the last analyzed lumisection | ||
int GetLastAnalyzedRun() const { return lastAnalyzedRun_; } | ||
|
||
// get lastAnalyzedFill_, fill of the last analyzed lumisection | ||
int GetLastAnalyzedFill() const { return lastAnalyzedFill_; } | ||
|
||
// get number of tracks used in the BeamSpot fit | ||
int GetNumTracks() const; | ||
|
||
// get number of Primary Vertices used in the BeamSpot fit | ||
int GetNumPVs() const; | ||
|
||
// get creation time of the payload | ||
cond::Time_t GetCreationTime() const; | ||
|
||
/// Print BeamSpotOnline parameters | ||
void print(std::stringstream& ss) const; | ||
|
||
private: | ||
int lastAnalyzedLumi_; | ||
int lastAnalyzedRun_; | ||
int lastAnalyzedFill_; | ||
std::vector<std::vector<int> > intParams_; | ||
std::vector<std::vector<float> > floatParams_; | ||
std::vector<std::vector<std::string> > stringParams_; | ||
std::vector<std::vector<unsigned long long> > timeParams_; | ||
|
||
COND_SERIALIZABLE; | ||
}; | ||
|
||
std::ostream& operator<<(std::ostream&, BeamSpotOnlineObjects beam); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotOnlineObjects.h" | ||
|
||
#include <iostream> | ||
|
||
namespace BeamSpotOnlineObjectsImpl { | ||
template <typename T> | ||
const T& getParams(const std::vector<T>& params, size_t index) { | ||
if (index >= params.size()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); | ||
return params[index]; | ||
} | ||
|
||
template <typename T> | ||
T& accessParams(std::vector<T>& params, size_t index) { | ||
if (index >= params.size()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); | ||
return params[index]; | ||
} | ||
|
||
template <typename T> | ||
const T& getOneParam(const std::vector<std::vector<T> >& params, size_t index) { | ||
if (index >= params.size()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); | ||
const std::vector<T>& inner = params[index]; | ||
if (inner.empty()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " type=" + typeid(T).name() + | ||
" has no value stored."); | ||
return inner[0]; | ||
} | ||
|
||
template <typename T> | ||
void setOneParam(std::vector<std::vector<T> >& params, size_t index, const T& value) { | ||
if (index >= params.size()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); | ||
params[index] = std::vector<T>(1, value); | ||
} | ||
|
||
template <typename T> | ||
void setParams(std::vector<T>& params, size_t index, const T& value) { | ||
if (index >= params.size()) | ||
throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); | ||
params[index] = value; | ||
} | ||
|
||
} //namespace BeamSpotOnlineObjectsImpl | ||
|
||
// getters | ||
int BeamSpotOnlineObjects::GetNumTracks() const { | ||
return BeamSpotOnlineObjectsImpl::getOneParam(intParams_, NUM_TRACKS); | ||
} | ||
|
||
int BeamSpotOnlineObjects::GetNumPVs() const { return BeamSpotOnlineObjectsImpl::getOneParam(intParams_, NUM_PVS); } | ||
|
||
cond::Time_t BeamSpotOnlineObjects::GetCreationTime() const { | ||
return BeamSpotOnlineObjectsImpl::getOneParam(timeParams_, CREATE_TIME); | ||
} | ||
|
||
// setters | ||
void BeamSpotOnlineObjects::SetNumTracks(int nTracks) { | ||
BeamSpotOnlineObjectsImpl::setOneParam(intParams_, NUM_TRACKS, nTracks); | ||
} | ||
|
||
void BeamSpotOnlineObjects::SetNumPVs(int nPVs) { BeamSpotOnlineObjectsImpl::setOneParam(intParams_, NUM_PVS, nPVs); } | ||
|
||
void BeamSpotOnlineObjects::SetCreationTime(cond::Time_t createTime) { | ||
BeamSpotOnlineObjectsImpl::setOneParam(timeParams_, CREATE_TIME, createTime); | ||
} | ||
|
||
// printers | ||
void BeamSpotOnlineObjects::print(std::stringstream& ss) const { | ||
ss << "-----------------------------------------------------\n" | ||
<< " BeamSpotOnline Data\n\n" | ||
<< " Beam type = " << GetBeamType() << "\n" | ||
<< " X0 = " << GetX() << " +/- " << GetXError() << " [cm]\n" | ||
<< " Y0 = " << GetY() << " +/- " << GetYError() << " [cm]\n" | ||
<< " Z0 = " << GetZ() << " +/- " << GetZError() << " [cm]\n" | ||
<< " Sigma Z0 = " << GetSigmaZ() << " +/- " << GetSigmaZError() << " [cm]\n" | ||
<< " dxdz = " << Getdxdz() << " +/- " << GetdxdzError() << " [radians]\n" | ||
<< " dydz = " << Getdydz() << " +/- " << GetdydzError() << " [radians]\n" | ||
<< " Beam Width X = " << GetBeamWidthX() << " +/- " << GetBeamWidthXError() << " [cm]\n" | ||
<< " Beam Width Y = " << GetBeamWidthY() << " +/- " << GetBeamWidthYError() << " [cm]\n" | ||
<< " Emittance X = " << GetEmittanceX() << " [cm]\n" | ||
<< " Emittance Y = " << GetEmittanceY() << " [cm]\n" | ||
<< " Beta star = " << GetBetaStar() << " [cm]\n" | ||
<< " Last Lumi = " << GetLastAnalyzedLumi() << "\n" | ||
<< " Last Run = " << GetLastAnalyzedRun() << "\n" | ||
<< " Last Fill = " << GetLastAnalyzedFill() << "\n" | ||
<< "-----------------------------------------------------\n\n"; | ||
} | ||
|
||
std::ostream& operator<<(std::ostream& os, BeamSpotOnlineObjects beam) { | ||
std::stringstream ss; | ||
beam.print(ss); | ||
os << ss.str(); | ||
return os; | ||
} |
3 changes: 3 additions & 0 deletions
3
CondFormats/BeamSpotObjects/src/T_EventSetup_BeamSpotOnlineObjects.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotOnlineObjects.h" | ||
#include "FWCore/Utilities/interface/typelookup.h" | ||
TYPELOOKUP_DATA_REG(BeamSpotOnlineObjects); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
<lcgdict> | ||
<class name="BeamSpotObjects"/> | ||
<class name="SimBeamSpotObjects"/> | ||
<class name="BeamSpotOnlineObjects"/> | ||
</lcgdict> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotObjects.h" | ||
#include "CondFormats/BeamSpotObjects/interface/SimBeamSpotObjects.h" | ||
#include "CondFormats/BeamSpotObjects/interface/BeamSpotOnlineObjects.h" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
CondFormats/DataRecord/interface/BeamSpotOnlineHLTObjectsRcd.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#ifndef DataRecord_BeamSpotOnlineHLTObjectsRcd_h | ||
#define DataRecord_BeamSpotOnlineHLTObjectsRcd_h | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : BeamSpotOnlineHLTObjectsRcd | ||
// | ||
/**\class BeamSpotOnlineHLTObjectsRcd BeamSpotOnlineHLTObjectsRcd.h CondFormats/DataRecord/interface/BeamSpotOnlineHLTObjectsRcd.h | ||
Description: <one line class summary> | ||
Usage: | ||
<usage> | ||
*/ | ||
// | ||
// Author: | ||
// Created: Tue Mar 6 19:34:33 CST 2007 | ||
// $Id$ | ||
// | ||
|
||
#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" | ||
|
||
class BeamSpotOnlineHLTObjectsRcd | ||
: public edm::eventsetup::EventSetupRecordImplementation<BeamSpotOnlineHLTObjectsRcd> {}; | ||
|
||
#endif |
27 changes: 27 additions & 0 deletions
27
CondFormats/DataRecord/interface/BeamSpotOnlineLegacyObjectsRcd.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#ifndef DataRecord_BeamSpotOnlineLegacyObjectsRcd_h | ||
#define DataRecord_BeamSpotOnlineLegacyObjectsRcd_h | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : BeamSpotOnlineLegacyObjectsRcd | ||
// | ||
/**\class BeamSpotOnlineLegacyObjectsRcd BeamSpotOnlineLegacyObjectsRcd.h CondFormats/DataRecord/interface/BeamSpotOnlineLegacyObjectsRcd.h | ||
Description: <one line class summary> | ||
Usage: | ||
<usage> | ||
*/ | ||
// | ||
// Author: | ||
// Created: Tue Mar 6 19:34:33 CST 2007 | ||
// $Id$ | ||
// | ||
|
||
#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" | ||
|
||
class BeamSpotOnlineLegacyObjectsRcd | ||
: public edm::eventsetup::EventSetupRecordImplementation<BeamSpotOnlineLegacyObjectsRcd> {}; | ||
|
||
#endif |
31 changes: 31 additions & 0 deletions
31
CondFormats/DataRecord/interface/BeamSpotTransientObjectsRcd.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#ifndef DataRecord_BeamSpotTransientObjectsRcd_h | ||
#define DataRecord_BeamSpotTransientObjectsRcd_h | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : BeamSpotTransientObjectsRcd | ||
// | ||
/**\class BeamSpotTransientObjectsRcd BeamSpotTransientObjectsRcd.h CondFormats/DataRecord/interface/BeamSpotTransientObjectsRcd.h | ||
Description: <one line class summary> | ||
Usage: | ||
<usage> | ||
*/ | ||
// | ||
// Author: | ||
// Created: Tue Mar 6 19:34:33 CST 2007 | ||
// $Id$ | ||
// | ||
#include "boost/mpl/vector.hpp" | ||
#include "FWCore/Framework/interface/DependentRecordImplementation.h" | ||
#include "CondFormats/DataRecord/interface/BeamSpotOnlineHLTObjectsRcd.h" | ||
#include "CondFormats/DataRecord/interface/BeamSpotOnlineLegacyObjectsRcd.h" | ||
|
||
class BeamSpotTransientObjectsRcd | ||
: public edm::eventsetup::DependentRecordImplementation< | ||
BeamSpotTransientObjectsRcd, | ||
boost::mpl::vector<BeamSpotOnlineHLTObjectsRcd, BeamSpotOnlineLegacyObjectsRcd> > {}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : BeamSpotOnlineHLTObjectsRcd | ||
// | ||
// Implementation: | ||
// <Notes on implementation> | ||
// | ||
// Author: | ||
// Created: Tue Mar 6 19:34:33 CST 2007 | ||
// $Id$ | ||
|
||
#include "CondFormats/DataRecord/interface/BeamSpotOnlineHLTObjectsRcd.h" | ||
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" | ||
|
||
EVENTSETUP_RECORD_REG(BeamSpotOnlineHLTObjectsRcd); |
Oops, something went wrong.