358 vector<string> triggerNamesORIG_, triggerNamesNEW_;
359 vector<string> temp_;
360 unsigned int max_nModules_=0;
361 vector<unsigned int> max_nModules_PD_, nModules_diff_;
362 bool TriggerModuleNamesOK_ =
true;
368 edm::LogInfo(
"HLTConfigProvider")<<
"hlt_Config_.init returns true for ORIG"<<endl;
398 edm::LogInfo(
"HLTConfigProvider")<<
"hlt_Config_.init returns true for NEW"<<endl;
424 if (nPathsORIG_==0 || nPathsNEW_==0){
425 edm::LogError(
"TooLittleData")<<
"There are 0 paths ORIG or NEW!! There are "<<nPathsORIG_<<
" paths ORIG and "<<nPathsNEW_<<
" paths NEW!!!";
426 TriggerModuleNamesOK_ =
false;
435 if (triggerNamesORIG_.at(
i)==triggerNamesNEW_.at(
j)){
437 if (
i!=
j)
edm::LogInfo(
"PathInfo")<<
"Path "<<triggerNamesORIG_.at(
i)<<
" corresponds to path number "<<
i<<
" for ORIG and path number "<<
j<<
" for NEW";
442 LogDebug(
"")<<
"moduleLabelORIG<=moduleLabelNEW, so moduleLabelORIG_.at(i).size() is: "<<
moduleLabelORIG_.at(
i).size()<<
" for ORIG path "<<
i;
446 LogDebug(
"")<<
"moduleLabelORIG>moduleLabelNEW, so moduleLabelNEW_.at(j).size() is: "<<
moduleLabelNEW_.at(j).size()<<
" for NEW path "<<
j;
457 LogDebug(
"")<<
"nModules_diff is: "<<nModules_diff_.at(x)<<
" for 'global' path "<<
x;
470 edm::LogInfo(
"PathInfo")<<
"For path "<<triggerNamesORIG_.at(
i)<<
" in ORIG and "<<triggerNamesNEW_.at(j)<<
" in NEW:"<<
" module "<<
moduleLabelORIG_.at(
i).at(
a)<<
" corresponds to module number "<<
a<<
" for ORIG and module number "<<
b<<
" for NEW";
487 if (TriggerModuleNamesOK_){
491 edm::LogInfo(
"PathInfo")<<
"Maximum number of modules over all paths is: "<<max_nModules_;
493 for (
unsigned int x=0; x<
nPaths_; x++) {
497 for (
unsigned int j=0; j<
nModules_.at(x); j++) {
509 max_nModules_PD_.push_back(0);
519 edm::LogInfo(
"DatasetInfo")<<
" path "<<
b<<
" is "<<datasetcontent_.at(
b);
520 temp_.push_back(datasetcontent_.at(
b));
527 vector <vector<bool> > temp1_;
529 for (
unsigned int x=0; x<
nPaths_; x++) {
535 temp2_.push_back(
true);
538 else temp2_.push_back(
false);
540 temp1_.push_back(temp2_);
546 for (
unsigned int x=0; x<
nPaths_; x++) {
567 if (not
dqms_)
return;
568 dqms_->setCurrentFolder(
"DQMExample/DQMSource_HLTOfflineReproducibility");
570 path_ORIG_hist = dqms_->book1D(
"path_ORIG_hist",
"Total Times Path Fires in ORIG",nPaths_,0,nPaths_)->getTH1F();
571 path_ORIGnotNEW_hist = dqms_->book1D(
"path_ORIGnotNEW_hist",
"Path fires in ORIG but not in NEW",nPaths_,0,nPaths_)->getTH1F();
572 path_NEWnotORIG_hist = dqms_->book1D(
"path_NEWnotORIG_hist",
"Path fires in NEW but not in ORIG",nPaths_,0,nPaths_)->getTH1F();
573 pathmodule_ORIGnotNEW_hist = dqms_->book2D(
"pathmodule_ORIGnotNEW_hist",
"Last run module index vs Path for NEW, when ORIG fired but NEW didn't",nPaths_,0,nPaths_,max_nModules_,0,max_nModules_)->getTH2F();
574 pathmodule_NEWnotORIG_hist = dqms_->book2D(
"pathmodule_NEWnotORIG_hist",
"Last run module index vs Path for ORIG, when NEW fired but ORIG didn't",nPaths_,0,nPaths_,max_nModules_,0,max_nModules_)->getTH2F();
585 char folder_name[500];
586 char path_ORIG_name[100], path_ORIGnotNEW_name[100], path_NEWnotORIG_name[100], pathmodule_ORIGnotNEW_name[100], pathmodule_NEWnotORIG_name[100];
588 snprintf(path_ORIG_name, 100,
"path_ORIG_hist_%s",
datasetNames_.at(
a).c_str());
589 snprintf(path_ORIGnotNEW_name, 100,
"path_ORIGnotNEW_hist_%s",
datasetNames_.at(
a).c_str());
590 snprintf(path_NEWnotORIG_name, 100,
"path_NEWnotORIG_hist_%s",
datasetNames_.at(
a).c_str());
591 snprintf(pathmodule_ORIGnotNEW_name, 100,
"pathmodule_ORIGnotNEW_hist_%s",
datasetNames_.at(
a).c_str());
592 snprintf(pathmodule_NEWnotORIG_name, 100,
"pathmodule_NEWnotORIG_hist_%s",
datasetNames_.at(
a).c_str());
594 TString path_ORIG_title =
"Total Times Path Fires ORIG (" +
datasetNames_.at(
a) +
" dataset)";
595 TString path_ORIGnotNEW_title =
"Path fires in ORIG but not in NEW (" +
datasetNames_.at(
a) +
" dataset)";
596 TString path_NEWnotORIG_title =
"Path fires in NEW but not in ORIG (" +
datasetNames_.at(
a) +
" dataset)";
597 TString pathmodule_ORIGnotNEW_title =
"Last run module index vs Path for NEW, when ORIG fired but NEW didn't (" +
datasetNames_.at(
a) +
" dataset)";
598 TString pathmodule_NEWnotORIG_title =
"Last run module index vs Path for ORIG, when NEW fired but ORIG didn't (" +
datasetNames_.at(
a) +
" dataset)";
601 sprintf(folder_name,
"DQMExample/DQMSource_HLTOfflineReproducibility/%s",
datasetNames_.at(
a).c_str());
602 dqms_->setCurrentFolder(folder_name);
unsigned int size() const
number of trigger paths in trigger table
vector< int > trigger_NEW_
const std::string moduleType(const std::string &module) const
C++ class name of module.
vector< TH1F * > path_NEWnotORIG_hist_PD
const std::vector< std::string > & triggerNames() const
names of trigger paths
vector< int > trigger_ORIG_
vector< unsigned int > nModules_
const std::string & moduleLabel(unsigned int trigger, unsigned int module) const
vector< TH2F * > pathmodule_ORIGnotNEW_hist_PD
HLTConfigProvider hltConfig_
TH1F * path_NEWnotORIG_hist
TH1F * getTH1F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
vector< TH2F * > pathmodule_NEWnotORIG_hist_PD
vector< vector< string > > moduleLabel_
vector< TH1F * > path_ORIG_hist_PD
TH1F * path_ORIGnotNEW_hist
vector< TH1F * > path_ORIGnotNEW_hist_PD
vector< string > datasetNames_
vector< vector< string > > datasetContent_
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
vector< vector< vector< bool > > > triggerNames_matched_
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
TH2F * pathmodule_ORIGnotNEW_hist
T * make() const
make new ROOT object
vector< vector< string > > moduleLabelORIG_
vector< unsigned int > nPaths_PD_
TH2F * pathmodule_NEWnotORIG_hist
vector< string > triggerNames_
const std::vector< std::string > & datasetNames() const
vector< vector< string > > moduleLabelNEW_