![]() |
![]() |
#include <DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.h>
Public Member Functions | |
SiStripQualityHotStripIdentifierRoot (const edm::ParameterSet &) | |
~SiStripQualityHotStripIdentifierRoot () | |
Private Member Functions | |
void | algoAnalyze (const edm::Event &, const edm::EventSetup &) |
void | algoBeginJob (const edm::EventSetup &) |
void | algoBeginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) |
void | algoBeginRun (const edm::Run &, const edm::EventSetup &) |
void | algoEndJob () |
void | bookHistos () |
SiStripBadStrip * | getNewObject () |
Private Attributes | |
edm::InputTag | Cluster_src_ |
SiStrip::QualityHistosMap | ClusterPositionHistoMap |
const edm::ParameterSet | conf_ |
std::string | dirpath |
DQMStore * | dqmStore_ |
TFile * | file0 |
std::string | filename |
edm::FileInPath | fp_ |
unsigned short | MaxClusterWidth_ |
unsigned short | MinClusterWidth_ |
SiStripDetInfoFileReader * | reader |
edm::InputTag | Track_src_ |
bool | tracksCollection_in_EventTree |
Definition at line 38 of file SiStripQualityHotStripIdentifierRoot.h.
SiStripQualityHotStripIdentifierRoot::SiStripQualityHotStripIdentifierRoot | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 19 of file SiStripQualityHotStripIdentifierRoot.cc.
References bookHistos(), dirpath, dqmStore_, filename, fp_, edm::FileInPath::fullPath(), edm::ParameterSet::getUntrackedParameter(), MaxClusterWidth_, MinClusterWidth_, DQMStore::open(), python::EventAnalyzer_cfg::pset, reader, and DQMStore::setVerbose().
00019 : 00020 ConditionDBWriter<SiStripBadStrip>::ConditionDBWriter<SiStripBadStrip>(iConfig), 00021 conf_(iConfig), 00022 fp_(iConfig.getUntrackedParameter<edm::FileInPath>("file",edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"))), 00023 Cluster_src_(iConfig.getParameter<edm::InputTag>( "Cluster_src" )), 00024 Track_src_(iConfig.getUntrackedParameter<edm::InputTag>( "Track_src" )), 00025 tracksCollection_in_EventTree(iConfig.getUntrackedParameter<bool>("RemoveTrackClusters",false)), 00026 filename(iConfig.getUntrackedParameter<std::string>("rootFilename","CondDB_TKCC_20X_v3_hlt_50822.root")), 00027 dirpath(iConfig.getUntrackedParameter<std::string>("rootDirPath","")) 00028 { 00029 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") << " ctor "; 00030 reader = new SiStripDetInfoFileReader(fp_.fullPath()); 00031 00032 edm::ParameterSet pset=iConfig.getUntrackedParameter< edm::ParameterSet > ("ClusterSelection",edm::ParameterSet()); 00033 MinClusterWidth_=pset.getUntrackedParameter<uint32_t>("minWidth",1); 00034 MaxClusterWidth_=pset.getUntrackedParameter<uint32_t>("maxWidth",1000); 00035 00036 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") << " before opening file " << filename.c_str(); 00037 dqmStore_ = edm::Service<DQMStore>().operator->(); 00038 dqmStore_->setVerbose(iConfig.getUntrackedParameter<uint32_t>("verbosity",0)); 00039 00040 dqmStore_->open(filename.c_str(), false, dirpath); 00041 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") << " after opening file "; 00042 00043 bookHistos(); 00044 }
SiStripQualityHotStripIdentifierRoot::~SiStripQualityHotStripIdentifierRoot | ( | ) |
Definition at line 47 of file SiStripQualityHotStripIdentifierRoot.cc.
00047 { 00048 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") << " dtor"; 00049 }
void SiStripQualityHotStripIdentifierRoot::algoAnalyze | ( | const edm::Event & | , | |
const edm::EventSetup & | ||||
) | [inline, private, virtual] |
Reimplemented from ConditionDBWriter< SiStripBadStrip >.
Definition at line 58 of file SiStripQualityHotStripIdentifierRoot.h.
void SiStripQualityHotStripIdentifierRoot::algoBeginJob | ( | const edm::EventSetup & | ) | [inline, private, virtual] |
Reimplemented from ConditionDBWriter< SiStripBadStrip >.
Definition at line 48 of file SiStripQualityHotStripIdentifierRoot.h.
void SiStripQualityHotStripIdentifierRoot::algoBeginLuminosityBlock | ( | const edm::LuminosityBlock & | , | |
const edm::EventSetup & | ||||
) | [inline, private, virtual] |
Reimplemented from ConditionDBWriter< SiStripBadStrip >.
Definition at line 52 of file SiStripQualityHotStripIdentifierRoot.h.
void SiStripQualityHotStripIdentifierRoot::algoBeginRun | ( | const edm::Run & | , | |
const edm::EventSetup & | ||||
) | [inline, private, virtual] |
Reimplemented from ConditionDBWriter< SiStripBadStrip >.
Definition at line 50 of file SiStripQualityHotStripIdentifierRoot.h.
void SiStripQualityHotStripIdentifierRoot::algoEndJob | ( | ) | [private, virtual] |
Reimplemented from ConditionDBWriter< SiStripBadStrip >.
Definition at line 96 of file SiStripQualityHotStripIdentifierRoot.cc.
References ClusterPositionHistoMap.
00096 { 00097 //Clear map 00098 ClusterPositionHistoMap.clear(); 00099 }
void SiStripQualityHotStripIdentifierRoot::bookHistos | ( | ) | [private] |
Definition at line 102 of file SiStripQualityHotStripIdentifierRoot.cc.
References c, ClusterPositionHistoMap, dirpath, dqmStore_, lat::endl(), DQMStore::getAllContents(), iter, LogDebug, NULL, ptr, and indexGen::title.
Referenced by SiStripQualityHotStripIdentifierRoot().
00102 { 00103 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::bookHistos] " << dirpath << std::endl; 00104 std::vector<MonitorElement*> MEs = dqmStore_->getAllContents(dirpath); 00105 //"DQMData/Run 50908/SiStrip/MechanicalView"); 00106 // "/DQMData/Run 50908/SiStrip/Run summary/MechanicalView/TID/side_2/wheel_3/ring_2/mono_modules/module_402676874"); 00107 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::bookHistos] vector size " << MEs.size()<< std::endl; 00108 00109 std::vector<MonitorElement*>::const_iterator iter=MEs.begin(); 00110 std::vector<MonitorElement*>::const_iterator iterEnd=MEs.end(); 00111 00112 for (; iter!=iterEnd;++iter) { 00113 std::string me_name = (*iter)->getName(); 00114 00115 //edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::bookHistos] histo " << me_name << std::endl; 00116 00117 if (strstr(me_name.c_str(),"ClusterPosition__det__")==NULL) 00118 continue; 00119 00120 unsigned int detid; 00121 char title[128]; 00122 sprintf(title,"%s",me_name.c_str()); 00123 char *ptr=strtok(title,"__"); 00124 int c=0; 00125 while (ptr!=NULL){ 00126 if (c==2){ 00127 detid=atol(ptr); 00128 break; 00129 } 00130 ptr=strtok(NULL,"_"); 00131 c++; 00132 } 00133 LogDebug("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::bookHistos] detid " << detid<< std::endl; 00134 00135 ClusterPositionHistoMap[detid]=boost::shared_ptr<TH1F>(new TH1F(*(*iter)->getTH1F())); 00136 00137 } 00138 00139 }
SiStripBadStrip * SiStripQualityHotStripIdentifierRoot::getNewObject | ( | ) | [private, virtual] |
Implements ConditionDBWriter< SiStripBadStrip >.
Definition at line 51 of file SiStripQualityHotStripIdentifierRoot.cc.
References a, ClusterPositionHistoMap, conf_, lat::endl(), SiStripHotStripAlgorithmFromClusterOccupancy::extractBadStrips(), SiStripBadStrip::getDataVectorBegin(), edm::ParameterSet::getParameter(), SiStripBadStrip::getRegistryVectorBegin(), SiStripBadStrip::getRegistryVectorEnd(), edm::ParameterSet::getUntrackedParameter(), VarParsing::obj, python::trackProbabilityAnalysis_cff::parameters, SiStripBadStrip::put(), range, SiStripHotStripAlgorithmFromClusterOccupancy::setMinNumEntries(), SiStripHotStripAlgorithmFromClusterOccupancy::setMinNumEntriesPerStrip(), SiStripHotStripAlgorithmFromClusterOccupancy::setProbabilityThreshold(), and ss.
00051 { 00052 00053 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<"SiStripQualityHotStripIdentifierRoot::getNewObject called"<<std::endl; 00054 00055 SiStripBadStrip* obj=new SiStripBadStrip(); 00056 00057 edm::ParameterSet parameters=conf_.getParameter<edm::ParameterSet>("AlgoParameters"); 00058 std::string AlgoName = parameters.getParameter<std::string>("AlgoName"); 00059 if (AlgoName=="SiStripHotStripAlgorithmFromClusterOccupancy"){ 00060 00061 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] call to SiStripHotStripAlgorithmFromClusterOccupancy"<<std::endl; 00062 00063 SiStripHotStripAlgorithmFromClusterOccupancy theIdentifier; 00064 theIdentifier.setProbabilityThreshold(parameters.getUntrackedParameter<double>("ProbabilityThreshold",1.E-7)); 00065 theIdentifier.setMinNumEntries(parameters.getUntrackedParameter<uint32_t>("MinNumEntries",100)); 00066 theIdentifier.setMinNumEntriesPerStrip(parameters.getUntrackedParameter<uint32_t>("MinNumEntriesPerStrip",5)); 00067 00068 SiStripQuality* qobj = new SiStripQuality(); 00069 theIdentifier.extractBadStrips(qobj,ClusterPositionHistoMap); 00070 00071 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<<std::endl; 00072 00073 std::stringstream ss; 00074 00075 SiStripBadStrip::RegistryIterator rIter=qobj->getRegistryVectorBegin(); 00076 SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); 00077 for(;rIter!=rIterEnd;++rIter){ 00078 SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); 00079 if ( ! obj->put(rIter->detid,range) ) 00080 edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<<std::endl; 00081 } 00082 edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] " << ss.str() << std::endl; 00083 00084 } else { 00085 edm::LogError("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] call for a unknow HotStrip identification algoritm"<<std::endl; 00086 00087 std::vector<uint32_t> a; 00088 SiStripBadStrip::Range range(a.begin(),a.end()); 00089 if ( ! obj->put(0xFFFFFFFF,range) ) 00090 edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<<std::endl; 00091 } 00092 00093 return obj; 00094 }
Definition at line 68 of file SiStripQualityHotStripIdentifierRoot.h.
Definition at line 78 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by algoEndJob(), bookHistos(), and getNewObject().
const edm::ParameterSet SiStripQualityHotStripIdentifierRoot::conf_ [private] |
std::string SiStripQualityHotStripIdentifierRoot::dirpath [private] |
Definition at line 75 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by bookHistos(), and SiStripQualityHotStripIdentifierRoot().
Definition at line 72 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by bookHistos(), and SiStripQualityHotStripIdentifierRoot().
TFile* SiStripQualityHotStripIdentifierRoot::file0 [private] |
Definition at line 74 of file SiStripQualityHotStripIdentifierRoot.h.
std::string SiStripQualityHotStripIdentifierRoot::filename [private] |
Definition at line 75 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by SiStripQualityHotStripIdentifierRoot().
Definition at line 66 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by SiStripQualityHotStripIdentifierRoot().
unsigned short SiStripQualityHotStripIdentifierRoot::MaxClusterWidth_ [private] |
Definition at line 76 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by SiStripQualityHotStripIdentifierRoot().
unsigned short SiStripQualityHotStripIdentifierRoot::MinClusterWidth_ [private] |
Definition at line 76 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by SiStripQualityHotStripIdentifierRoot().
Definition at line 67 of file SiStripQualityHotStripIdentifierRoot.h.
Referenced by SiStripQualityHotStripIdentifierRoot().
Definition at line 69 of file SiStripQualityHotStripIdentifierRoot.h.
Definition at line 70 of file SiStripQualityHotStripIdentifierRoot.h.