#include <DQM/SiStripCommon/interface/SiStripHistoId.h>
Public Member Functions | |
std::string | createHistoId (std::string description, std::string id_type, uint32_t component_id) |
std::string | createHistoLayer (std::string description, std::string id_type, std::string path, std::string flag) |
uint32_t | getComponentId (std::string histoid) |
std::string | getComponentType (std::string histoid) |
std::string | getSubdetid (uint32_t id, const TrackerTopology *tTopo, bool flag_ring) |
SiStripHistoId () | |
virtual | ~SiStripHistoId () |
Private Member Functions | |
const SiStripHistoId & | operator= (const SiStripHistoId &) |
std::string | returnIdPart (std::string histoid, uint32_t whichpart) |
SiStripHistoId (const SiStripHistoId &) |
Description: <one line="" class="" summary>="">
Usage: <usage>
Definition at line 27 of file SiStripHistoId.h.
SiStripHistoId::SiStripHistoId | ( | ) |
Definition at line 24 of file SiStripHistoId.cc.
{ }
SiStripHistoId::~SiStripHistoId | ( | ) | [virtual] |
Definition at line 29 of file SiStripHistoId.cc.
{ }
SiStripHistoId::SiStripHistoId | ( | const SiStripHistoId & | ) | [private] |
std::string SiStripHistoId::createHistoId | ( | std::string | description, |
std::string | id_type, | ||
uint32_t | component_id | ||
) |
Definition at line 34 of file SiStripHistoId.cc.
References idDealer::description, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by SiStripLAProfileBooker::beginRun(), SiStripBaseCondObjDQM::bookCumulMEs(), SiStripMonitorTrack::bookModMEs(), SiStripBaseCondObjDQM::bookProfileMEs(), SiStripMonitorTrack::clusterInfos(), SiStripMonitorPedestals::createMEs(), SiStripMonitorCluster::createModuleMEs(), SiStripMonitorDigi::createModuleMEs(), and SiStripMonitorQuality::getQualityME().
{ size_t pos1 = description.find("__", 0 ); // check if std::string 'description' contains by mistake the 'separator1' size_t pos2 = description.find("__", 0 ); // check if std::string 'description' contains by mistake the 'separator2' std::string local_histo_id; std::ostringstream compid; compid<<component_id; // use std::ostringstream for casting integer to std::string if ( pos1 == std::string::npos && pos2 == std::string::npos ){ // ok, not found either separator if(id_type=="fed" || id_type=="det" || id_type=="fec"){ // ok! is one of the accepted id_type-s local_histo_id = description + "__" + id_type + "__" + compid.str(); }else{ local_histo_id = description + "__dummy__" + compid.str(); edm::LogError("SiStripHistoId") <<" SiStripHistoId::WrongInput " <<" no such type of component accepted: "<<id_type <<" id_type can be: fed, det, or fec."; } }else{ local_histo_id = description + "_dummy___" + id_type + "__" + compid.str(); edm::LogError("SiStripHistoId") <<" SiStripHistoId::WrongInput " <<" histogram description cannot contain: __ or: __" <<" histogram description = "<<description; } return local_histo_id; }
std::string SiStripHistoId::createHistoLayer | ( | std::string | description, |
std::string | id_type, | ||
std::string | path, | ||
std::string | flag | ||
) |
Definition at line 59 of file SiStripHistoId.cc.
References idDealer::description, LogTrace, getHLTPrescaleColumns::path, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by SiStripMonitorTrack::bookLayerMEs(), SiStripBaseCondObjDQM::bookSummaryCumulMEs(), SiStripBaseCondObjDQM::bookSummaryMEs(), SiStripBaseCondObjDQM::bookSummaryProfileMEs(), SiStripMonitorCluster::createLayerMEs(), SiStripMonitorDigi::createLayerMEs(), SiStripLorentzAngleDQM::fillMEsForLayer(), SiStripApvGainsDQM::fillMEsForLayer(), SiStripQualityDQM::fillMEsForLayer(), SiStripThresholdDQM::fillMEsForLayer(), SiStripNoisesDQM::fillMEsForLayer(), and SiStripPedestalsDQM::fillMEsForLayer().
{ size_t pos1 = description.find( "__", 0 ); // check if std::string 'description' contains by mistake the 'separator1' size_t pos2 = description.find( "__", 0 ); // check if std::string 'description' contains by mistake the 'separator2' std::string local_histo_id; if ( pos1 == std::string::npos && pos2 == std::string::npos ){ // ok, not found either separator if(id_type=="fed" || id_type=="det" || id_type=="fec" || id_type=="layer"){ // ok! is one of the accepted id_type-s if(flag.size() > 0) local_histo_id = description + "__" + flag + "__" + path; else local_histo_id = description + "__" + path; LogTrace("SiStripHistoId") << "Local_histo_ID " << local_histo_id << std::endl; }else{ local_histo_id = description + "___dummy___" + path; edm::LogError("SiStripHistoId") <<" SiStripHistoId::WrongInput " <<" no such type of component accepted: "<<id_type <<" id_type can be: fed, det, fec or layer "; } }else{ local_histo_id = description + "_dummy___" + path; edm::LogWarning("SiStripHistoId") <<" SiStripHistoId::WrongInput " <<" histogram description cannot contain: __ or: __" <<" histogram description = "<<description; } return local_histo_id; }
uint32_t SiStripHistoId::getComponentId | ( | std::string | histoid | ) |
Definition at line 119 of file SiStripHistoId.cc.
References LaserDQM_cfg::input, and returnIdPart().
Referenced by SiStripCalibLorentzAngle::algoBeginJob().
{ uint32_t local_component_id; std::istringstream input(returnIdPart(histoid,3)); input >> local_component_id; // use std::istringstream for casting from std::string to uint32_t return local_component_id; }
std::string SiStripHistoId::getComponentType | ( | std::string | histoid | ) |
Definition at line 126 of file SiStripHistoId.cc.
References returnIdPart().
{ return returnIdPart(histoid,2); }
std::string SiStripHistoId::getSubdetid | ( | uint32_t | id, |
const TrackerTopology * | tTopo, | ||
bool | flag_ring | ||
) |
Definition at line 85 of file SiStripHistoId.cc.
References AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), sistripsummary::TEC, TrackerTopology::tecRing(), TrackerTopology::tecSide(), TrackerTopology::tecWheel(), sistripsummary::TIB, TrackerTopology::tibLayer(), sistripsummary::TID, TrackerTopology::tidRing(), TrackerTopology::tidSide(), TrackerTopology::tidWheel(), sistripsummary::TOB, and TrackerTopology::tobLayer().
Referenced by SiStripMonitorTrack::book(), SiStripMonitorCluster::createMEs(), SiStripMonitorDigi::createMEs(), and SiStripMonitorTrack::fillMEs().
{ std::string rest1; const int buf_len = 50; char temp_str[buf_len]; StripSubdetector subdet(id); if( subdet.subdetId() == StripSubdetector::TIB){ // --------------------------- TIB --------------------------- // snprintf(temp_str, buf_len, "TIB__layer__%i", tTopo->tibLayer(id)); }else if( subdet.subdetId() == StripSubdetector::TID){ // --------------------------- TID --------------------------- // if (flag_ring) snprintf(temp_str, buf_len, "TID__side__%i__ring__%i", tTopo->tidSide(id), tTopo->tidRing(id)); else snprintf(temp_str, buf_len, "TID__side__%i__wheel__%i", tTopo->tidSide(id), tTopo->tidWheel(id)); }else if(subdet.subdetId() == StripSubdetector::TOB){ // --------------------------- TOB --------------------------- // snprintf(temp_str, buf_len, "TOB__layer__%i",tTopo->tobLayer(id)); }else if(subdet.subdetId() == StripSubdetector::TEC){ // --------------------------- TEC --------------------------- // if (flag_ring) snprintf(temp_str, buf_len, "TEC__side__%i__ring__%i", tTopo->tecSide(id), tTopo->tecRing(id)); else snprintf(temp_str, buf_len, "TEC__side__%i__wheel__%i", tTopo->tecSide(id), tTopo->tecWheel(id)); }else{ // --------------------------- ??? --------------------------- // edm::LogError("SiStripTkDQM|WrongInput")<<"no such subdetector type :"<<subdet.subdetId()<<" no folder set!"<<std::endl; snprintf(temp_str,0,"%s",""); } return std::string(temp_str); }
const SiStripHistoId& SiStripHistoId::operator= | ( | const SiStripHistoId & | ) | [private] |
std::string SiStripHistoId::returnIdPart | ( | std::string | histoid, |
uint32_t | whichpart | ||
) | [private] |
Definition at line 131 of file SiStripHistoId.cc.
References AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by getComponentId(), and getComponentType().
{ size_t length1=histoid.find("__",0); if(length1==std::string::npos){ // no separator1 found edm::LogWarning("SiStripTkDQM|UnregularInput")<<"no regular histoid. Returning 0"; return "0"; } std::string part1 = histoid.substr(0,length1); // part of 'histoid' up to 'separator1' if(whichpart==1) return part1; std::string remain1 = histoid.substr(length1+2); // rest of 'histoid' starting at end of 'separator1' size_t length2=remain1.find("__",0); if(length2==std::string::npos){ // no separator2 found edm::LogWarning("SiStripTkDQM|UnregularInput")<<"no regular histoid. Returning 0"; return "0"; } std::string part2 = remain1.substr(0,length2); // part of 'remain1' up to 'separator2' if(whichpart==2) return part2; std::string part3 = remain1.substr(length2+2); // rest of remain1 starting at end of 'separator2' if(whichpart==3) return part3; edm::LogWarning("SiStripTkDQM|UnregularInput")<<"no such whichpart="<<whichpart<<" returning 0"; return "0"; }