CMS 3D CMS Logo

SiStripQualityHotStripIdentifierRoot Class Reference

#include <DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.h>

Inheritance diagram for SiStripQualityHotStripIdentifierRoot:

ConditionDBWriter< SiStripBadStrip > edm::EDAnalyzer

List of all members.

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 ()
SiStripBadStripgetNewObject ()

Private Attributes

edm::InputTag Cluster_src_
SiStrip::QualityHistosMap ClusterPositionHistoMap
const edm::ParameterSet conf_
std::string dirpath
DQMStoredqmStore_
TFile * file0
std::string filename
edm::FileInPath fp_
unsigned short MaxClusterWidth_
unsigned short MinClusterWidth_
SiStripDetInfoFileReaderreader
edm::InputTag Track_src_
bool tracksCollection_in_EventTree


Detailed Description

Definition at line 38 of file SiStripQualityHotStripIdentifierRoot.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

void SiStripQualityHotStripIdentifierRoot::algoAnalyze ( const edm::Event ,
const edm::EventSetup  
) [inline, private, virtual]

Reimplemented from ConditionDBWriter< SiStripBadStrip >.

Definition at line 58 of file SiStripQualityHotStripIdentifierRoot.h.

00058 {};

void SiStripQualityHotStripIdentifierRoot::algoBeginJob ( const edm::EventSetup  )  [inline, private, virtual]

Reimplemented from ConditionDBWriter< SiStripBadStrip >.

Definition at line 48 of file SiStripQualityHotStripIdentifierRoot.h.

00048 { }

void SiStripQualityHotStripIdentifierRoot::algoBeginLuminosityBlock ( const edm::LuminosityBlock ,
const edm::EventSetup  
) [inline, private, virtual]

Reimplemented from ConditionDBWriter< SiStripBadStrip >.

Definition at line 52 of file SiStripQualityHotStripIdentifierRoot.h.

00052 {  }

void SiStripQualityHotStripIdentifierRoot::algoBeginRun ( const edm::Run ,
const edm::EventSetup  
) [inline, private, virtual]

Reimplemented from ConditionDBWriter< SiStripBadStrip >.

Definition at line 50 of file SiStripQualityHotStripIdentifierRoot.h.

00050 {  }

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 }


Member Data Documentation

edm::InputTag SiStripQualityHotStripIdentifierRoot::Cluster_src_ [private]

Definition at line 68 of file SiStripQualityHotStripIdentifierRoot.h.

SiStrip::QualityHistosMap SiStripQualityHotStripIdentifierRoot::ClusterPositionHistoMap [private]

Definition at line 78 of file SiStripQualityHotStripIdentifierRoot.h.

Referenced by algoEndJob(), bookHistos(), and getNewObject().

const edm::ParameterSet SiStripQualityHotStripIdentifierRoot::conf_ [private]

Definition at line 65 of file SiStripQualityHotStripIdentifierRoot.h.

Referenced by getNewObject().

std::string SiStripQualityHotStripIdentifierRoot::dirpath [private]

Definition at line 75 of file SiStripQualityHotStripIdentifierRoot.h.

Referenced by bookHistos(), and SiStripQualityHotStripIdentifierRoot().

DQMStore* SiStripQualityHotStripIdentifierRoot::dqmStore_ [private]

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().

edm::FileInPath SiStripQualityHotStripIdentifierRoot::fp_ [private]

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().

SiStripDetInfoFileReader* SiStripQualityHotStripIdentifierRoot::reader [private]

Definition at line 67 of file SiStripQualityHotStripIdentifierRoot.h.

Referenced by SiStripQualityHotStripIdentifierRoot().

edm::InputTag SiStripQualityHotStripIdentifierRoot::Track_src_ [private]

Definition at line 69 of file SiStripQualityHotStripIdentifierRoot.h.

bool SiStripQualityHotStripIdentifierRoot::tracksCollection_in_EventTree [private]

Definition at line 70 of file SiStripQualityHotStripIdentifierRoot.h.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:31 2009 for CMSSW by  doxygen 1.5.4