CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

SiPixelQualityHistory Class Reference

#include <DPGAnalysis/SiStripTools/plugins/SiPixelQualityHistory.cc>

Inheritance diagram for SiPixelQualityHistory:
edm::EDAnalyzer

List of all members.

Public Types

enum  { Summary, Module, ROC }

Public Member Functions

 SiPixelQualityHistory (const edm::ParameterSet &)
 ~SiPixelQualityHistory ()

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
virtual void beginJob ()
virtual void beginRun (const edm::Run &, const edm::EventSetup &)
virtual void endJob ()
virtual void endRun (const edm::Run &, const edm::EventSetup &)

Private Attributes

std::map< std::string,
TProfile ** > 
m_badmodrun
std::map< std::string, TH1F * > m_history
const unsigned int m_LSfrac
const unsigned int m_maxLS
const unsigned int m_mode
const std::vector
< edm::ParameterSet
m_monitoredspq
RunHistogramManager m_rhm
const bool m_run

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 58 of file SiPixelQualityHistory.cc.


Member Enumeration Documentation

anonymous enum
Enumerator:
Summary 
Module 
ROC 

Definition at line 63 of file SiPixelQualityHistory.cc.


Constructor & Destructor Documentation

SiPixelQualityHistory::SiPixelQualityHistory ( const edm::ParameterSet iConfig) [explicit]

Definition at line 97 of file SiPixelQualityHistory.cc.

References m_badmodrun, m_history, m_LSfrac, m_maxLS, m_monitoredspq, m_rhm, m_run, RunHistogramManager::makeTProfile(), mergeVDriftHistosByStation::name, and AlCaHLTBitMon_QueryRunRegistry::string.

                                                                          :
  m_rhm(),
  m_monitoredspq(iConfig.getParameter<std::vector<edm::ParameterSet> >("monitoredSiPixelQuality")),
  m_mode(iConfig.getUntrackedParameter<unsigned int>("granularityMode",Module)),
  m_run(iConfig.getParameter<bool>("runProcess")),
  m_maxLS(iConfig.getUntrackedParameter<unsigned int>("maxLSBeforeRebin",100)),
  m_LSfrac(iConfig.getUntrackedParameter<unsigned int>("startingLSFraction",4)),
  m_history(),m_badmodrun()
{
   //now do what ever initialization is needed

  edm::Service<TFileService> tfserv;

  for(std::vector<edm::ParameterSet>::const_iterator ps=m_monitoredspq.begin();ps!=m_monitoredspq.end();++ps) {
    
    std::string name = ps->getParameter<std::string>("name");

    if(m_run) m_history[name] = tfserv->make<TH1F>(name.c_str(),name.c_str(),10,0,10);

    char hrunname[400];
    sprintf(hrunname,"badmodrun_%s",name.c_str());
    char hruntitle[400];
    sprintf(hruntitle,"Number of bad modules %s",name.c_str());
    m_badmodrun[name] = m_rhm.makeTProfile(hrunname,hruntitle,m_LSfrac*m_maxLS,0,m_maxLS*262144);
  }

}
SiPixelQualityHistory::~SiPixelQualityHistory ( )

Definition at line 126 of file SiPixelQualityHistory.cc.

{
 
   // do anything here that needs to be done at desctruction time
   // (e.g. close files, deallocate resources etc.)

}

Member Function Documentation

void SiPixelQualityHistory::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDAnalyzer.

Definition at line 141 of file SiPixelQualityHistory.cc.

References HcalObjRepresent::Fill(), edm::EventSetup::get(), diffTwoXMLs::label, LogDebug, m_badmodrun, m_mode, m_monitoredspq, Module, mergeVDriftHistosByStation::name, edm::EventBase::orbitNumber(), ROC, AlCaHLTBitMon_QueryRunRegistry::string, and Summary.

{
  //  edm::LogInfo("EventProcessing") << "event being processed";

  for(std::vector<edm::ParameterSet>::const_iterator ps=m_monitoredspq.begin();ps!=m_monitoredspq.end();++ps) {
    
    std::string name = ps->getParameter<std::string>("name");
    std::string label = ps->getParameter<std::string>("spqLabel");
    
    
    
    edm::ESHandle<SiPixelQuality> spq;
    iSetup.get<SiPixelQualityRcd>().get(label,spq);
    
    int nbad=0;

    if(m_mode==Summary) {

      //      nbad = spq->BadModuleNumber();

    }  
    else {
    
      std::vector<SiPixelQuality::disabledModuleType> bads = spq->getBadComponentList();
      
      LogDebug("BadComponents") << bads.size() << " bad components found";
    
      for(std::vector<SiPixelQuality::disabledModuleType>::const_iterator bc=bads.begin();bc!=bads.end();++bc) {
        
        if(m_mode==Module) {
          if(spq->IsModuleBad(bc->DetID)) ++nbad;
          //      if(bc->errorType==0) ++nbad;
        }
        else if(m_mode == ROC) {
          for(int roc=1;roc<2*2*2*2*2*2*2+1;roc*=2) {
            if((bc->BadRocs & roc)>0) ++nbad;
          }
        }
      }
    }
    if(m_badmodrun.find(name)!=m_badmodrun.end() && m_badmodrun[name] && *m_badmodrun[name]) {
      (*m_badmodrun[name])->Fill(iEvent.orbitNumber(),nbad);
    }
    
  }
}
void SiPixelQualityHistory::beginJob ( void  ) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 255 of file SiPixelQualityHistory.cc.

{}
void SiPixelQualityHistory::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 189 of file SiPixelQualityHistory.cc.

References RunHistogramManager::beginRun(), edm::EventSetup::get(), diffTwoXMLs::label, LogDebug, m_badmodrun, m_history, m_mode, m_monitoredspq, m_rhm, m_run, Module, mergeVDriftHistosByStation::name, ROC, edm::RunBase::run(), AlCaHLTBitMon_QueryRunRegistry::string, and Summary.

{

  m_rhm.beginRun(iRun);
  
  // loop on all the SiPixelQuality objects to be monitored

  for(std::vector<edm::ParameterSet>::const_iterator ps=m_monitoredspq.begin();ps!=m_monitoredspq.end();++ps) {
    
    std::string name = ps->getParameter<std::string>("name");
    std::string label = ps->getParameter<std::string>("spqLabel");
    
    if(m_badmodrun.find(name)!=m_badmodrun.end()) {
      if(m_badmodrun[name] && *m_badmodrun[name]) {
        (*m_badmodrun[name])->SetBit(TH1::kCanRebin);
        (*m_badmodrun[name])->GetXaxis()->SetTitle("time [Orb#]"); (*m_badmodrun[name])->GetYaxis()->SetTitle("bad components"); 
      }
    }
    
    if(m_run) {

      edm::ESHandle<SiPixelQuality> spq;
      iSetup.get<SiPixelQualityRcd>().get(label,spq);
      
      int nbad=0;
      
      if(m_mode==Summary) {
        
        //      nbad = spq->BadModuleNumber();
        
      }  
      else {
        
        std::vector<SiPixelQuality::disabledModuleType> bads = spq->getBadComponentList();
        
        LogDebug("BadComponents") << bads.size() << " bad components found";
        
        for(std::vector<SiPixelQuality::disabledModuleType>::const_iterator bc=bads.begin();bc!=bads.end();++bc) {
          
          if(m_mode==Module) {
            if(spq->IsModuleBad(bc->DetID)) ++nbad;
            //    if(bc->errorType==0) ++nbad;
          }
          else if(m_mode == ROC) {
            for(int roc=1;roc<2*2*2*2*2*2*2+1;roc*=2) {
              if((bc->BadRocs & roc)>0) ++nbad;
            }
          }
        }
      }
      char runname[100];
      sprintf(runname,"%d",iRun.run());
      LogDebug("AnalyzedRun") << name << " " << runname << " " << nbad;
      m_history[name]->Fill(runname,nbad);
    }    
  }
  
}
void SiPixelQualityHistory::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 260 of file SiPixelQualityHistory.cc.

{
  /*
  for(std::vector<edm::ParameterSet>::const_iterator ps=m_monitoredspq.begin();ps!=m_monitoredspq.end();++ps) {
    
    std::string name = ps->getParameter<std::string>("name");
    m_history[name]->Write();

  }
  */
}
void SiPixelQualityHistory::endRun ( const edm::Run iRun,
const edm::EventSetup  
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 249 of file SiPixelQualityHistory.cc.

{}

Member Data Documentation

std::map<std::string,TProfile**> SiPixelQualityHistory::m_badmodrun [private]

Definition at line 82 of file SiPixelQualityHistory.cc.

Referenced by analyze(), beginRun(), and SiPixelQualityHistory().

std::map<std::string,TH1F*> SiPixelQualityHistory::m_history [private]

Definition at line 81 of file SiPixelQualityHistory.cc.

Referenced by beginRun(), and SiPixelQualityHistory().

const unsigned int SiPixelQualityHistory::m_LSfrac [private]

Definition at line 79 of file SiPixelQualityHistory.cc.

Referenced by SiPixelQualityHistory().

const unsigned int SiPixelQualityHistory::m_maxLS [private]

Definition at line 78 of file SiPixelQualityHistory.cc.

Referenced by SiPixelQualityHistory().

const unsigned int SiPixelQualityHistory::m_mode [private]

Definition at line 76 of file SiPixelQualityHistory.cc.

Referenced by analyze(), and beginRun().

Definition at line 75 of file SiPixelQualityHistory.cc.

Referenced by analyze(), beginRun(), and SiPixelQualityHistory().

Definition at line 74 of file SiPixelQualityHistory.cc.

Referenced by beginRun(), and SiPixelQualityHistory().

const bool SiPixelQualityHistory::m_run [private]

Definition at line 77 of file SiPixelQualityHistory.cc.

Referenced by beginRun(), and SiPixelQualityHistory().