36 LogDebug(
"JetMETHLTOfflineClient") <<
"dqmEndJob" << std::endl;
39 std::vector<MonitorElement*> hltMEs;
42 std::vector<std::string> fullPathHLTFolders = igetter.
getSubdirs();
43 for(
unsigned int i=0;
i<fullPathHLTFolders.size();
i++) {
47 if ((fullPathHLTFolders[
i].
find(
"Eff")!=std::string::npos)) {
55 std::vector<std::string> fullSubPathHLTFolders = igetter.
getSubdirs();
56 for(
unsigned int j=0;
j<fullSubPathHLTFolders.size();
j++) {
62 hltMEs = igetter.
getContents(fullSubPathHLTFolders[j]);
63 LogDebug(
"JetMETHLTOfflineClient")<<
"Number of MEs for this HLT path = " << hltMEs.size() << std::endl;
65 for(
unsigned int k=0;
k<hltMEs.size();
k++) {
69 if ((hltMEs[
k]->getName().
find(
"ME_Numerator")!=std::string::npos) && hltMEs[
k]->getName().
find(
"ME_Numerator")==0){
76 for(
unsigned int l=0;
l<hltMEs.size();
l++) {
77 if (hltMEs[
l]->getName() ==
"ME_Denominator"+
name){
79 if(name.find(
"EtaPhi") !=std::string::npos) {
80 TH2F* tNumerator = hltMEs[
k]->getTH2F();
81 TH2F* tDenominator = hltMEs[
l]->getTH2F();
85 TH2F *teff = (TH2F*) tNumerator->Clone(title.c_str());
86 teff->Divide(tNumerator,tDenominator,1,1);
87 ibooker.
book2D(
"ME_Eff_"+name,teff);
91 TH1F* tNumerator = hltMEs[
k]->
getTH1F();
92 TH1F* tDenominator = hltMEs[
l]->getTH1F();
96 TH1F *teff = (TH1F*) tNumerator->Clone(title.c_str());
97 teff->Divide(tNumerator,tDenominator,1,1);
98 ibooker.
book1D(
"ME_Eff_"+name,teff);
std::vector< MonitorElement * > getContents(Args &&...args)
T getParameter(std::string const &) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
MonitorElement * book1D(Args &&...args)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
TH1F * getTH1F(void) const
std::vector< std::string > getSubdirs(void)
virtual ~JetMETHLTOfflineClient()
virtual void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
JetMETHLTOfflineClient(const edm::ParameterSet &)