#include <SiStripSummary.h>
Classes | |
struct | DetRegistry |
class | StrictWeakOrdering |
Public Types | |
typedef std::vector< float > ::const_iterator | ContainerIterator |
typedef std::vector< float > | InputVector |
typedef std::pair < ContainerIterator, ContainerIterator > | Range |
typedef std::vector< DetRegistry > | Registry |
typedef Registry::const_iterator | RegistryIterator |
Public Member Functions | |
ContainerIterator | getDataVectorBegin () const |
ContainerIterator | getDataVectorEnd () const |
std::vector< uint32_t > | getDetIds () const |
const Range | getRange (const uint32_t &detID) const |
RegistryIterator | getRegistryVectorBegin () const |
RegistryIterator | getRegistryVectorEnd () const |
int | getRunNr () const |
std::vector< float > | getSummaryObj (std::string elementName) const |
std::vector< float > | getSummaryObj (uint32_t &detID) const |
std::vector< float > | getSummaryObj () const |
std::vector< float > | getSummaryObj (uint32_t &detID, std::vector< std::string > list) const |
std::vector< float > | getSummaryObj (sistripsummary::TrackerRegion region, std::vector< std::string > list) const |
unsigned long long | getTimeValue () const |
std::vector< std::string > | getUserDBContent () const |
void | print () |
bool | put (const uint32_t &detID, InputVector &input, std::vector< std::string > &userContent) |
bool | put (sistripsummary::TrackerRegion region, InputVector &input, std::vector< std::string > &userContent) |
void | setObj (const uint32_t &detID, std::string elementName, float value) |
void | setRunNr (int inputRunNr) |
void | setTimeValue (unsigned long long inputTimeValue) |
void | setUserDBContent (std::vector< std::string > userDBContent) |
SiStripSummary () | |
SiStripSummary (std::vector< std::string > &userDBContent) | |
SiStripSummary (const SiStripSummary &input) | |
~SiStripSummary () | |
Public Attributes | |
std::vector< DetRegistry > | indexes_ |
int | runNr_ |
unsigned long long | timeValue_ |
std::vector< std::string > | userDBContent_ |
std::vector< float > | v_sum_ |
Protected Member Functions | |
const short | getPosition (std::string elementName) const |
Definition at line 35 of file SiStripSummary.h.
typedef std::vector<float>::const_iterator SiStripSummary::ContainerIterator |
Definition at line 52 of file SiStripSummary.h.
typedef std::vector<float> SiStripSummary::InputVector |
Definition at line 56 of file SiStripSummary.h.
typedef std::pair<ContainerIterator, ContainerIterator> SiStripSummary::Range |
Definition at line 53 of file SiStripSummary.h.
typedef std::vector<DetRegistry> SiStripSummary::Registry |
Definition at line 54 of file SiStripSummary.h.
typedef Registry::const_iterator SiStripSummary::RegistryIterator |
Definition at line 55 of file SiStripSummary.h.
SiStripSummary::SiStripSummary | ( | std::vector< std::string > & | userDBContent | ) |
Definition at line 6 of file SiStripSummary.cc.
References runNr_, timeValue_, and userDBContent_.
{ userDBContent_ = userDBContent; runNr_ = 0; timeValue_ = 0; }
SiStripSummary::SiStripSummary | ( | const SiStripSummary & | input | ) |
Definition at line 14 of file SiStripSummary.cc.
References getRunNr(), getTimeValue(), getUserDBContent(), indexes_, runNr_, timeValue_, userDBContent_, and v_sum_.
{ userDBContent_ = input.getUserDBContent(); runNr_ = input.getTimeValue(); timeValue_ = input.getRunNr(); v_sum_.clear(); indexes_.clear(); v_sum_.insert(v_sum_.end(),input.v_sum_.begin(),input.v_sum_.end()); indexes_.insert(indexes_.end(),input.indexes_.begin(),input.indexes_.end()); }
SiStripSummary::SiStripSummary | ( | ) | [inline] |
Definition at line 61 of file SiStripSummary.h.
{};
SiStripSummary::~SiStripSummary | ( | ) | [inline] |
Definition at line 62 of file SiStripSummary.h.
{};
ContainerIterator SiStripSummary::getDataVectorBegin | ( | ) | const [inline] |
ContainerIterator SiStripSummary::getDataVectorEnd | ( | ) | const [inline] |
std::vector< uint32_t > SiStripSummary::getDetIds | ( | ) | const |
Definition at line 78 of file SiStripSummary.cc.
References begin, end, indexes_, and L1TEmulatorMonitor_cff::p.
Referenced by getSummaryObj().
{ // returns vector of DetIds in map std::vector<uint32_t> DetIds_; SiStripSummary::RegistryIterator begin = indexes_.begin(); SiStripSummary::RegistryIterator end = indexes_.end(); for (SiStripSummary::RegistryIterator p=begin; p != end; ++p) { DetIds_.push_back(p->detid); } return DetIds_; }
const short SiStripSummary::getPosition | ( | std::string | elementName | ) | const [protected] |
Definition at line 92 of file SiStripSummary.cc.
References spr::find(), pos, and userDBContent_.
Referenced by getSummaryObj(), put(), and setObj().
{ // returns position of elementName in UserDBContent_ std::vector<std::string>::const_iterator it = find(userDBContent_.begin(),userDBContent_.end(),elementName); short pos = -1; if (it != userDBContent_.end()) pos = it - userDBContent_.begin(); else edm::LogError("SiStripSummary") << "attempting to retrieve non existing historic DB object : "<< elementName <<std::endl; return pos; }
const SiStripSummary::Range SiStripSummary::getRange | ( | const uint32_t & | detID | ) | const |
Definition at line 67 of file SiStripSummary.cc.
References gather_cfg::cout, indexes_, L1TEmulatorMonitor_cff::p, userDBContent_, and v_sum_.
Referenced by getSummaryObj(), and setObj().
{ RegistryIterator p = std::lower_bound(indexes_.begin(),indexes_.end(),DetId,SiStripSummary::StrictWeakOrdering()); if (p==indexes_.end()|| p->detid!=DetId) { return SiStripSummary::Range(v_sum_.end(),v_sum_.end()); std::cout << "not in range " << std::endl;} else return SiStripSummary::Range(v_sum_.begin()+p->ibegin,v_sum_.begin()+p->ibegin+userDBContent_.size()); }
RegistryIterator SiStripSummary::getRegistryVectorBegin | ( | ) | const [inline] |
RegistryIterator SiStripSummary::getRegistryVectorEnd | ( | ) | const [inline] |
int SiStripSummary::getRunNr | ( | ) | const [inline] |
Definition at line 113 of file SiStripSummary.h.
References runNr_.
Referenced by SiStripSummary().
{ return runNr_; }
std::vector< float > SiStripSummary::getSummaryObj | ( | uint32_t & | detID, |
std::vector< std::string > | list | ||
) | const |
Definition at line 126 of file SiStripSummary.cc.
References getPosition(), getRange(), i, and pos.
Referenced by cond::ValueExtractor< SiStripSummary >::compute().
{ std::vector<float> SummaryObj; const SiStripSummary::Range range = getRange(detID); if (range.first != range.second ) { for (unsigned int i=0; i<list.size(); i++){ const short pos=getPosition(list.at(i)); if (pos!=-1) SummaryObj.push_back(*((range.first)+pos)); else SummaryObj.push_back(-999.); } } else for (unsigned int i=0; i<list.size(); i++) SummaryObj.push_back(-99.); // no summary obj has ever been inserted for this detid, most likely all related histos were not available in DQM return SummaryObj; }
std::vector< float > SiStripSummary::getSummaryObj | ( | sistripsummary::TrackerRegion | region, |
std::vector< std::string > | list | ||
) | const |
Definition at line 146 of file SiStripSummary.cc.
References getSummaryObj().
{ uint32_t fakeDet = region; return getSummaryObj(fakeDet,list); }
std::vector< float > SiStripSummary::getSummaryObj | ( | std::string | elementName | ) | const |
Definition at line 172 of file SiStripSummary.cc.
References getDetIds(), getPosition(), getRange(), i, and pos.
{ std::vector<float> vSumElement; std::vector<uint32_t> DetIds_ = getDetIds(); const short pos = getPosition(elementName); if (pos !=-1) { for (unsigned int i=0; i<DetIds_.size(); i++){ const SiStripSummary::Range range = getRange(DetIds_.at(i)); if (range.first != range.second ) { vSumElement.push_back(*((range.first)+pos));} else { vSumElement.push_back(-99.);} } } return vSumElement; }
std::vector< float > SiStripSummary::getSummaryObj | ( | uint32_t & | detID | ) | const |
Definition at line 153 of file SiStripSummary.cc.
References getRange(), i, and userDBContent_.
{ std::vector<float> SummaryObj; const SiStripSummary::Range range = getRange(detID); if (range.first != range.second ) { for (unsigned int i=0; i<userDBContent_.size(); i++) SummaryObj.push_back(*((range.first)+i));} else { for (unsigned int i=0; i<userDBContent_.size(); i++) SummaryObj.push_back(-99.);} return SummaryObj; }
std::vector< float > SiStripSummary::getSummaryObj | ( | ) | const |
Definition at line 166 of file SiStripSummary.cc.
References v_sum_.
Referenced by getSummaryObj().
{ return v_sum_; }
unsigned long long SiStripSummary::getTimeValue | ( | ) | const [inline] |
Definition at line 111 of file SiStripSummary.h.
References timeValue_.
Referenced by SiStripSummary().
{ return timeValue_; }
std::vector<std::string> SiStripSummary::getUserDBContent | ( | ) | const [inline] |
Definition at line 112 of file SiStripSummary.h.
References userDBContent_.
Referenced by SiStripSummaryBuilder::analyze(), and SiStripSummary().
{ return userDBContent_; }
void SiStripSummary::print | ( | void | ) |
Definition at line 192 of file SiStripSummary.cc.
References gather_cfg::cout, indexes_, runNr_, and timeValue_.
{ std::cout << "Nr. of detector elements in SiStripSummary object is " << indexes_.size() << " RunNr= " << runNr_ << " timeValue= " << timeValue_ << std::endl; }
bool SiStripSummary::put | ( | const uint32_t & | detID, |
InputVector & | input, | ||
std::vector< std::string > & | userContent | ||
) |
Definition at line 26 of file SiStripSummary.cc.
References SiStripSummary::DetRegistry::detid, getPosition(), i, SiStripSummary::DetRegistry::ibegin, indexes_, L1TEmulatorMonitor_cff::p, tmp, userDBContent_, and v_sum_.
Referenced by SiStripSummaryBuilder::analyze(), and put().
{ Registry::iterator p = std::lower_bound(indexes_.begin(),indexes_.end(),DetId,SiStripSummary::StrictWeakOrdering()); if(p==indexes_.end() || p->detid!=DetId){ //First request for the given DetID //Create entries for all the declared userDBContent //and fill for the provided userContent DetRegistry detregistry; detregistry.detid = DetId; detregistry.ibegin = v_sum_.size(); indexes_.insert(p,detregistry); InputVector tmp(userDBContent_.size(),-9999); for(size_t i=0;i<userContent.size();++i) tmp[getPosition(userContent[i])]=input[i]; v_sum_.insert(v_sum_.end(),tmp.begin(),tmp.end()); } else { if (p->detid==DetId){ //I should already find the entries //fill for the provided userContent for(size_t i=0;i<userContent.size();++i) v_sum_[p->ibegin+getPosition(userContent[i])]=input[i]; } } return true; }
bool SiStripSummary::put | ( | sistripsummary::TrackerRegion | region, |
InputVector & | input, | ||
std::vector< std::string > & | userContent | ||
) |
Definition at line 60 of file SiStripSummary.cc.
References put().
void SiStripSummary::setObj | ( | const uint32_t & | detID, |
std::string | elementName, | ||
float | value | ||
) |
Definition at line 105 of file SiStripSummary.cc.
References Exception, getPosition(), getRange(), indexes_, L1TEmulatorMonitor_cff::p, pos, v_sum_, and relativeConstraints::value.
{ // modifies value of info "elementName" for the given detID // requires that an entry has be defined beforehand for detId in DB RegistryIterator p = std::lower_bound(indexes_.begin(),indexes_.end(),detID,SiStripSummary::StrictWeakOrdering()); if (p==indexes_.end()|| p->detid!=detID) { throw cms::Exception("") <<"not allowed to modify "<< elementName << " in historic DB - SummaryObj needs to be available first !"; } const SiStripSummary::Range range = getRange(detID); std::vector<float>::const_iterator it = range.first+getPosition(elementName); std::vector<float>::difference_type pos = -1; if (it != v_sum_.end()){ pos = it - v_sum_.begin(); v_sum_.at(pos) = value; } }
void SiStripSummary::setRunNr | ( | int | inputRunNr | ) | [inline] |
Definition at line 108 of file SiStripSummary.h.
References runNr_.
Referenced by SiStripSummaryBuilder::analyze().
{ runNr_ = inputRunNr; }
void SiStripSummary::setTimeValue | ( | unsigned long long | inputTimeValue | ) | [inline] |
Definition at line 109 of file SiStripSummary.h.
References timeValue_.
{ timeValue_=inputTimeValue;}
void SiStripSummary::setUserDBContent | ( | std::vector< std::string > | userDBContent | ) | [inline] |
Definition at line 107 of file SiStripSummary.h.
References userDBContent_.
Referenced by SiStripSummaryBuilder::analyze().
{ userDBContent_ = userDBContent;}
std::vector<DetRegistry> SiStripSummary::indexes_ |
Definition at line 125 of file SiStripSummary.h.
Referenced by getDetIds(), getRange(), getRegistryVectorBegin(), getRegistryVectorEnd(), print(), put(), setObj(), and SiStripSummary().
Definition at line 127 of file SiStripSummary.h.
Referenced by getRunNr(), print(), setRunNr(), and SiStripSummary().
unsigned long long SiStripSummary::timeValue_ |
Definition at line 128 of file SiStripSummary.h.
Referenced by getTimeValue(), print(), setTimeValue(), and SiStripSummary().
std::vector<std::string> SiStripSummary::userDBContent_ |
Definition at line 123 of file SiStripSummary.h.
Referenced by getPosition(), getRange(), getSummaryObj(), getUserDBContent(), put(), setUserDBContent(), and SiStripSummary().
std::vector<float> SiStripSummary::v_sum_ |
Definition at line 124 of file SiStripSummary.h.
Referenced by getDataVectorBegin(), getDataVectorEnd(), getRange(), getSummaryObj(), put(), setObj(), and SiStripSummary().