361 vector<string> triggerNamesORIG_, triggerNamesNEW_;
362 vector<string> temp_;
363 unsigned int max_nModules_=0;
364 vector<unsigned int> max_nModules_PD_, nModules_diff_;
365 bool TriggerModuleNamesOK_ =
true;
371 edm::LogInfo(
"HLTConfigProvider")<<
"hlt_Config_.init returns true for ORIG"<<endl;
401 edm::LogInfo(
"HLTConfigProvider")<<
"hlt_Config_.init returns true for NEW"<<endl;
427 if (nPathsORIG_==0 || nPathsNEW_==0){
428 edm::LogError(
"TooLittleData")<<
"There are 0 paths ORIG or NEW!! There are "<<nPathsORIG_<<
" paths ORIG and "<<nPathsNEW_<<
" paths NEW!!!";
429 TriggerModuleNamesOK_ =
false;
438 if (triggerNamesORIG_.at(
i)==triggerNamesNEW_.at(
j)){
440 if (
i!=
j)
edm::LogInfo(
"PathInfo")<<
"Path "<<triggerNamesORIG_.at(
i)<<
" corresponds to path number "<<
i<<
" for ORIG and path number "<<
j<<
" for NEW";
445 LogDebug(
"")<<
"moduleLabelORIG<=moduleLabelNEW, so moduleLabelORIG_.at(i).size() is: "<<
moduleLabelORIG_.at(
i).size()<<
" for ORIG path "<<
i;
449 LogDebug(
"")<<
"moduleLabelORIG>moduleLabelNEW, so moduleLabelNEW_.at(j).size() is: "<<
moduleLabelNEW_.at(j).size()<<
" for NEW path "<<
j;
460 LogDebug(
"")<<
"nModules_diff is: "<<nModules_diff_.at(x)<<
" for 'global' path "<<
x;
473 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";
490 if (TriggerModuleNamesOK_){
494 edm::LogInfo(
"PathInfo")<<
"Maximum number of modules over all paths is: "<<max_nModules_;
496 for (
unsigned int x=0; x<
nPaths_; x++) {
500 for (
unsigned int j=0; j<
nModules_.at(x); j++) {
512 max_nModules_PD_.push_back(0);
522 edm::LogInfo(
"DatasetInfo")<<
" path "<<
b<<
" is "<<datasetcontent_.at(
b);
523 temp_.push_back(datasetcontent_.at(
b));
530 vector <vector<bool> > temp1_;
532 for (
unsigned int x=0; x<
nPaths_; x++) {
538 temp2_.push_back(
true);
541 else temp2_.push_back(
false);
543 temp1_.push_back(temp2_);
549 for (
unsigned int x=0; x<
nPaths_; x++) {
570 if (not
dqms_)
return;
571 dqms_->setCurrentFolder(
"DQMExample/DQMSource_HLTOfflineReproducibility");
573 path_ORIG_hist = dqms_->book1D(
"path_ORIG_hist",
"Total Times Path Fires in ORIG",nPaths_,0,nPaths_)->getTH1F();
574 path_ORIGnotNEW_hist = dqms_->book1D(
"path_ORIGnotNEW_hist",
"Path fires in ORIG but not in NEW",nPaths_,0,nPaths_)->getTH1F();
575 path_NEWnotORIG_hist = dqms_->book1D(
"path_NEWnotORIG_hist",
"Path fires in NEW but not in ORIG",nPaths_,0,nPaths_)->getTH1F();
576 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();
577 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();
588 char folder_name[500];
589 char path_ORIG_name[100], path_ORIGnotNEW_name[100], path_NEWnotORIG_name[100], pathmodule_ORIGnotNEW_name[100], pathmodule_NEWnotORIG_name[100];
591 snprintf(path_ORIG_name, 100,
"path_ORIG_hist_%s",
datasetNames_.at(
a).c_str());
592 snprintf(path_ORIGnotNEW_name, 100,
"path_ORIGnotNEW_hist_%s",
datasetNames_.at(
a).c_str());
593 snprintf(path_NEWnotORIG_name, 100,
"path_NEWnotORIG_hist_%s",
datasetNames_.at(
a).c_str());
594 snprintf(pathmodule_ORIGnotNEW_name, 100,
"pathmodule_ORIGnotNEW_hist_%s",
datasetNames_.at(
a).c_str());
595 snprintf(pathmodule_NEWnotORIG_name, 100,
"pathmodule_NEWnotORIG_hist_%s",
datasetNames_.at(
a).c_str());
597 TString path_ORIG_title =
"Total Times Path Fires ORIG (" +
datasetNames_.at(
a) +
" dataset)";
598 TString path_ORIGnotNEW_title =
"Path fires in ORIG but not in NEW (" +
datasetNames_.at(
a) +
" dataset)";
599 TString path_NEWnotORIG_title =
"Path fires in NEW but not in ORIG (" +
datasetNames_.at(
a) +
" dataset)";
600 TString pathmodule_ORIGnotNEW_title =
"Last run module index vs Path for NEW, when ORIG fired but NEW didn't (" +
datasetNames_.at(
a) +
" dataset)";
601 TString pathmodule_NEWnotORIG_title =
"Last run module index vs Path for ORIG, when NEW fired but ORIG didn't (" +
datasetNames_.at(
a) +
" dataset)";
604 sprintf(folder_name,
"DQMExample/DQMSource_HLTOfflineReproducibility/%s",
datasetNames_.at(
a).c_str());
605 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_
T * make(const Args &...args) const
make new ROOT object
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
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_