![]() |
![]() |
#include <DQM/TrackerMonitorTrack/interface/MonitorTrackResiduals.cc>
Public Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob (const edm::EventSetup &es) |
virtual void | beginRun (edm::Run const &run, edm::EventSetup const &iSetup) |
void | createMEs (const edm::EventSetup &) |
virtual void | endJob (void) |
virtual void | endRun (const edm::Run &, const edm::EventSetup &) |
MonitorTrackResiduals (const edm::ParameterSet &) | |
void | resetLayerMEs (const std::pair< std::string, int32_t > &) |
void | resetModuleMEs (int32_t modid) |
~MonitorTrackResiduals () | |
Private Attributes | |
edm::ParameterSet | conf_ |
DQMStore * | dqmStore_ |
SiStripFolderOrganizer * | folder_organizer |
HistoClass | HitResidual |
unsigned long long | m_cacheID_ |
std::map< std::pair < std::string, int32_t >, MonitorElement * > | m_SubdetLayerNormedResiduals |
std::map< std::pair < std::string, int32_t >, MonitorElement * > | m_SubdetLayerResiduals |
bool | ModOn |
HistoClass | NormedHitResiduals |
edm::ParameterSet | Parameters |
bool | reset_me_after_each_run |
Definition at line 30 of file MonitorTrackResiduals.h.
MonitorTrackResiduals::MonitorTrackResiduals | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 27 of file MonitorTrackResiduals.cc.
References dqmStore_, and folder_organizer.
00027 : conf_(iConfig), m_cacheID_(0) { 00028 dqmStore_ = edm::Service<DQMStore>().operator->(); 00029 folder_organizer = new SiStripFolderOrganizer(); 00030 }
MonitorTrackResiduals::~MonitorTrackResiduals | ( | ) |
void MonitorTrackResiduals::analyze | ( | const edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 169 of file MonitorTrackResiduals.cc.
References conf_, TrackerValidationVariables::fillHitQuantities(), folder_organizer, SiStripFolderOrganizer::GetSubDetAndLayer(), HitResidual, it, m_SubdetLayerNormedResiduals, m_SubdetLayerResiduals, ModOn, and NormedHitResiduals.
00169 { 00170 00171 TrackerValidationVariables avalidator_(iSetup,conf_); 00172 std::vector<TrackerValidationVariables::AVHitStruct> v_hitstruct; 00173 avalidator_.fillHitQuantities(iEvent,v_hitstruct); 00174 for (std::vector<TrackerValidationVariables::AVHitStruct>::const_iterator it = v_hitstruct.begin(), 00175 itEnd = v_hitstruct.end(); it != itEnd; ++it) { 00176 uint RawId = it->rawDetId; 00177 00178 // fill if hit belongs to StripDetector and its error is not zero 00179 if( it->resErrX != 0 && SiStripDetId(RawId).subDetector() != 0 ) { 00180 if (ModOn && HitResidual[RawId]) { 00181 HitResidual[RawId]->Fill(it->resX); 00182 NormedHitResiduals[RawId]->Fill(it->resX/it->resErrX); 00183 } 00184 std::pair<std::string, int32_t> subdetandlayer = folder_organizer->GetSubDetAndLayer(RawId); 00185 if(m_SubdetLayerResiduals[subdetandlayer]) { 00186 m_SubdetLayerResiduals[subdetandlayer]->Fill(it->resX); 00187 m_SubdetLayerNormedResiduals[subdetandlayer]->Fill(it->resX/it->resErrX); 00188 } 00189 } 00190 } 00191 00192 }
void MonitorTrackResiduals::beginJob | ( | const edm::EventSetup & | es | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 37 of file MonitorTrackResiduals.cc.
References conf_, edm::ParameterSet::getParameter(), ModOn, and reset_me_after_each_run.
00037 { 00038 ModOn = conf_.getParameter<bool>("Mod_On"); 00039 reset_me_after_each_run = conf_.getParameter<bool>("ResetAfterRun"); 00040 }
void MonitorTrackResiduals::beginRun | ( | edm::Run const & | run, | |
edm::EventSetup const & | iSetup | |||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 42 of file MonitorTrackResiduals.cc.
References createMEs(), folder_organizer, edm::EventSetup::get(), SiStripFolderOrganizer::GetSubDetAndLayer(), HitResidual, it, m_cacheID_, m_SubdetLayerResiduals, python::multivaluedict::map(), ModOn, reset_me_after_each_run, resetLayerMEs(), and resetModuleMEs().
00042 { 00043 00044 00045 unsigned long long cacheID = iSetup.get<SiStripDetCablingRcd>().cacheIdentifier(); 00046 if (m_cacheID_ != cacheID) { 00047 m_cacheID_ = cacheID; 00048 this->createMEs(iSetup); 00049 } 00050 if(reset_me_after_each_run) { 00051 if(ModOn) { 00052 for(std::map<int32_t, MonitorElement*>::const_iterator it = HitResidual.begin(), 00053 itEnd = HitResidual.end(); it!= itEnd;++it) { 00054 this->resetModuleMEs(it->first); 00055 this->resetLayerMEs(folder_organizer->GetSubDetAndLayer(it->first)); 00056 } 00057 } else { 00058 for(std::map< std::pair<std::string,int32_t>, MonitorElement*>::const_iterator it = m_SubdetLayerResiduals.begin(), 00059 itEnd = m_SubdetLayerResiduals.end(); it!= itEnd;++it) { 00060 this->resetLayerMEs(it->first); 00061 } 00062 } // end if-else Module level on 00063 } // end reset after run 00064 00065 }
void MonitorTrackResiduals::createMEs | ( | const edm::EventSetup & | iSetup | ) |
Definition at line 67 of file MonitorTrackResiduals.cc.
References funct::abs(), DQMStore::book1D(), conf_, dqmStore_, folder_organizer, edm::EventSetup::get(), edm::ParameterSet::getParameter(), SiStripFolderOrganizer::GetSubDetAndLayer(), HitResidual, m_SubdetLayerNormedResiduals, m_SubdetLayerResiduals, ModOn, NormedHitResiduals, Parameters, MonitorElement::setAxisTitle(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), and SiStripFolderOrganizer::setSiStripFolder().
Referenced by beginRun().
00067 { 00068 Parameters = conf_.getParameter<edm::ParameterSet>("TH1ResModules"); 00069 int32_t i_residuals_Nbins = Parameters.getParameter<int32_t>("Nbinx"); 00070 double d_residual_xmin = Parameters.getParameter<double>("xmin"); 00071 double d_residual_xmax = Parameters.getParameter<double>("xmax"); 00072 Parameters = conf_.getParameter<edm::ParameterSet>("TH1NormResModules"); 00073 int32_t i_normres_Nbins = Parameters.getParameter<int32_t>("Nbinx"); 00074 double d_normres_xmin = Parameters.getParameter<double>("xmin"); 00075 double d_normres_xmax = Parameters.getParameter<double>("xmax"); 00076 00077 00078 // use SistripHistoId for producing histogram id (and title) 00079 SiStripHistoId hidmanager; 00080 folder_organizer->setSiStripFolder(); // top SiStrip folder 00081 00082 // take from eventSetup the SiStripDetCabling object 00083 edm::ESHandle<SiStripDetCabling> tkmechstruct; 00084 iSetup.get<SiStripDetCablingRcd>().get(tkmechstruct); 00085 00086 // get list of active detectors from SiStripDetCabling 00087 std::vector<uint32_t> activeDets; 00088 activeDets.clear(); // just in case 00089 tkmechstruct->addActiveDetectorsRawIds(activeDets); 00090 00091 // use SiStripSubStructure for selecting certain regions 00092 SiStripSubStructure substructure; 00093 std::vector<uint32_t> DetIds = activeDets; 00094 00095 // book histo per each detector module 00096 for (std::vector<uint32_t>::const_iterator DetItr=activeDets.begin(), 00097 DetItrEnd = activeDets.end(); DetItr!=DetItrEnd; ++DetItr) 00098 { 00099 uint ModuleID = (*DetItr); 00100 00101 // is this a StripModule? 00102 if( SiStripDetId(ModuleID).subDetector() != 0 ) { 00103 00104 folder_organizer->setDetectorFolder(ModuleID); // detid sets appropriate detector folder 00105 // Book module histogramms? 00106 if (ModOn) { 00107 std::string hid = hidmanager.createHistoId("HitResiduals","det",ModuleID); 00108 std::string normhid = hidmanager.createHistoId("NormalizedHitResiduals","det",ModuleID); 00109 HitResidual[ModuleID] = dqmStore_->book1D(hid, hid, 00110 i_residuals_Nbins,d_residual_xmin,d_residual_xmax); 00111 HitResidual[ModuleID]->setAxisTitle("x_{pred} - x_{rec} [cm]"); 00112 NormedHitResiduals[ModuleID] = dqmStore_->book1D(normhid, normhid, 00113 i_normres_Nbins,d_normres_xmin,d_normres_xmax); 00114 NormedHitResiduals[ModuleID]->setAxisTitle("x_{pred} - x_{rec}/#sigma"); 00115 } 00116 // book layer level histogramms 00117 std::pair<std::string,int32_t> subdetandlayer = folder_organizer->GetSubDetAndLayer(ModuleID); 00118 folder_organizer->setLayerFolder(ModuleID,subdetandlayer.second); 00119 if(! m_SubdetLayerResiduals[subdetandlayer ] ) { 00120 // book histogramms on layer level, check for barrel for correct labeling 00121 std::string histoname = Form(subdetandlayer.first.find("B") != std::string::npos ? 00122 "HitResiduals_%s__Layer__%d" : "HitResiduals_%s__wheel__%d" , 00123 subdetandlayer.first.c_str(),abs(subdetandlayer.second)); 00124 std::string normhistoname = 00125 Form(subdetandlayer.first.find("B") != std::string::npos ? 00126 "NormalizedHitResidual_%s__Layer__%d" : "NormalizedHitResidual_%s__wheel__%d" , 00127 subdetandlayer.first.c_str(),abs(subdetandlayer.second)); 00128 m_SubdetLayerResiduals[subdetandlayer] = 00129 dqmStore_->book1D(histoname.c_str(),histoname.c_str(), 00130 i_residuals_Nbins,d_residual_xmin,d_residual_xmax); 00131 m_SubdetLayerResiduals[subdetandlayer]->setAxisTitle("x_{pred} - x_{rec} [cm]"); 00132 m_SubdetLayerNormedResiduals[subdetandlayer] = 00133 dqmStore_->book1D(normhistoname.c_str(),normhistoname.c_str(), 00134 i_normres_Nbins,d_normres_xmin,d_normres_xmax); 00135 m_SubdetLayerNormedResiduals[subdetandlayer]->setAxisTitle("x_{pred} - x_{rec} [cm]/#sigma"); 00136 } 00137 } // end 'is strip module' 00138 } // end loop over activeDets 00139 }
Reimplemented from edm::EDAnalyzer.
Definition at line 158 of file MonitorTrackResiduals.cc.
References conf_, dqmStore_, edm::ParameterSet::getParameter(), iggi_31X_cfg::outputFileName, and DQMStore::save().
00158 { 00159 00160 //dqmStore_->showDirStructure(); 00161 bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile"); 00162 std::string outputFileName = conf_.getParameter<std::string>("OutputFileName"); 00163 if(outputMEsInRootFile){ 00164 dqmStore_->save(outputFileName); 00165 } 00166 }
void MonitorTrackResiduals::endRun | ( | const edm::Run & | , | |
const edm::EventSetup & | ||||
) | [virtual] |
void MonitorTrackResiduals::resetLayerMEs | ( | const std::pair< std::string, int32_t > & | subdetandlayer | ) |
Definition at line 147 of file MonitorTrackResiduals.cc.
References m_SubdetLayerNormedResiduals, and m_SubdetLayerResiduals.
Referenced by beginRun().
00147 { 00148 m_SubdetLayerResiduals [subdetandlayer]->Reset(); 00149 m_SubdetLayerNormedResiduals[subdetandlayer]->Reset(); 00150 }
void MonitorTrackResiduals::resetModuleMEs | ( | int32_t | modid | ) |
Definition at line 142 of file MonitorTrackResiduals.cc.
References HitResidual, and NormedHitResiduals.
Referenced by beginRun().
00142 { 00143 HitResidual[modid]->Reset(); 00144 NormedHitResiduals[modid]->Reset(); 00145 }
Definition at line 47 of file MonitorTrackResiduals.h.
Referenced by analyze(), beginJob(), createMEs(), and endJob().
DQMStore* MonitorTrackResiduals::dqmStore_ [private] |
Definition at line 46 of file MonitorTrackResiduals.h.
Referenced by createMEs(), endJob(), and MonitorTrackResiduals().
Definition at line 53 of file MonitorTrackResiduals.h.
Referenced by analyze(), beginRun(), createMEs(), and MonitorTrackResiduals().
HistoClass MonitorTrackResiduals::HitResidual [private] |
Definition at line 51 of file MonitorTrackResiduals.h.
Referenced by analyze(), beginRun(), createMEs(), and resetModuleMEs().
unsigned long long MonitorTrackResiduals::m_cacheID_ [private] |
std::map< std::pair<std::string,int32_t>, MonitorElement* > MonitorTrackResiduals::m_SubdetLayerNormedResiduals [private] |
Definition at line 50 of file MonitorTrackResiduals.h.
Referenced by analyze(), createMEs(), and resetLayerMEs().
std::map< std::pair<std::string,int32_t>, MonitorElement* > MonitorTrackResiduals::m_SubdetLayerResiduals [private] |
Definition at line 49 of file MonitorTrackResiduals.h.
Referenced by analyze(), beginRun(), createMEs(), and resetLayerMEs().
bool MonitorTrackResiduals::ModOn [private] |
Definition at line 56 of file MonitorTrackResiduals.h.
Referenced by analyze(), beginJob(), beginRun(), and createMEs().
Definition at line 52 of file MonitorTrackResiduals.h.
Referenced by analyze(), createMEs(), and resetModuleMEs().