![]() |
![]() |
Public Member Functions | |
GeneralHLTOffline (const edm::ParameterSet &) | |
~GeneralHLTOffline () | |
Private Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob () |
virtual void | beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) |
virtual void | beginRun (edm::Run const &, edm::EventSetup const &) |
virtual void | endJob () |
virtual void | endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) |
virtual void | endRun (edm::Run const &, edm::EventSetup const &) |
virtual void | fillHltMatrix (std::string, std::string, double, double, bool) |
virtual string | removeVersions (std::string) |
virtual void | setupHltMatrix (std::string, int) |
Private Attributes | |
vector< string > | AddedDatasets |
MonitorElement * | cppath |
DQMStore * | dbe |
bool | debugPrint |
HLTConfigProvider | hltConfig_ |
std::string | hltTag |
bool | outputPrint |
vector< vector< string > > | PDsVectorPathsVector |
std::string | plotDirectoryName |
Description: [one line class summary] Implementation: [Notes on implementation]
Definition at line 56 of file GeneralHLTOffline.cc.
GeneralHLTOffline::GeneralHLTOffline | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 107 of file GeneralHLTOffline.cc.
References gather_cfg::cout, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and patRefSel_triggerSelection_cff::hltTag.
{ //now do what ever initialization is needed debugPrint = false; outputPrint = false; if (debugPrint) std::cout << "Inside Constructor" << std::endl; plotDirectoryName = iConfig.getUntrackedParameter<std::string>("dirname", "HLT/General"); if (debugPrint) std::cout << "Got plot dirname = " << plotDirectoryName << std::endl; hltTag = iConfig.getParameter<std::string> ("HltProcessName"); }
GeneralHLTOffline::~GeneralHLTOffline | ( | ) |
Definition at line 127 of file GeneralHLTOffline.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void GeneralHLTOffline::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 142 of file GeneralHLTOffline.cc.
References gather_cfg::cout, makeLayoutFileForGui::datasetNames, trigger::TriggerObject::eta(), edm::Event::getByLabel(), MonitorElement::getTH1F(), patRefSel_triggerSelection_cff::hltTag, i, trigger::TriggerObject::id(), edm::EventBase::id(), getHLTprescales::index, relativeConstraints::keys, label, edm::EventID::luminosityBlock(), EgammaValidation_cff::pathName, trigger::TriggerObject::phi(), trigger::TriggerObject::pt(), edm::EventID::run(), findQualityFiles::size, and patRefSel_triggerSelection_cff::triggerResults.
{ using namespace edm; using std::string; if (debugPrint) std::cout << "Inside analyze - run, block, event " << iEvent.id().run() << " , " << iEvent.id().luminosityBlock() << " , " << iEvent.id() << " , " << std::endl; //LuminosityBLock() << " , " << event() << std::endl; // Access Trigger Results edm::Handle<edm::TriggerResults> triggerResults; iEvent.getByLabel(InputTag("TriggerResults","", hltTag), triggerResults); if (!triggerResults.isValid()) { if (debugPrint) std::cout << "Trigger results not valid" << std::endl; return; } if (debugPrint) std::cout << "Found triggerResults" << std::endl; edm::Handle<trigger::TriggerEvent> aodTriggerEvent; iEvent.getByLabel(InputTag("hltTriggerSummaryAOD", "", hltTag), aodTriggerEvent); if ( !aodTriggerEvent.isValid() ) { if (debugPrint) std::cout << "No AOD trigger summary found! Returning..."; return; } std::vector<std::string> nameStreams = hltConfig_.streamNames(); const TriggerObjectCollection objects = aodTriggerEvent->getObjects(); bool streamAfound = false; int i = 0; for (vector<string>::iterator streamName = nameStreams.begin(); streamName != nameStreams.end(); ++streamName) { if (hltConfig_.streamName(i) == "A") { if (debugPrint) std::cout << " Stream A not found " << std::endl; streamAfound = true; } else if (debugPrint) std::cout << " Stream A found " << std::endl; i++; } if (streamAfound) { vector<string> datasetNames = hltConfig_.streamContent("A"); // Loop over PDs for (unsigned int iPD = 0; iPD < datasetNames.size(); iPD++) { // if (datasetNames[iPD] != "SingleMu" && datasetNames[iPD] != "SingleElectron" && datasetNames[iPD] != "Jet") continue; // unsigned int keyTracker[1000]; // Array to eliminate double counts by tracking what Keys have already been fired // for(unsigned int irreproduceableIterator = 0; irreproduceableIterator < 1000; irreproduceableIterator++) { // keyTracker[irreproduceableIterator] = 1001; // } // Loop over Paths in each PD bool first_count = true; for (unsigned int iPath = 0; iPath < PDsVectorPathsVector[iPD].size(); iPath++) { std::string pathName = PDsVectorPathsVector[iPD][iPath]; if (debugPrint) std::cout << "Looking at path " << pathName << std::endl; unsigned int index = hltConfig_.triggerIndex(pathName); if (debugPrint) std::cout << "Index = " << index << " triggerResults->size() = " << triggerResults->size() << std::endl; //fill the histos with empty weights...... std::string label = datasetNames[iPD]; std:: string fullPathToCPP = "HLT/GeneralHLTOffline/"+label+"/cppath_"+label; MonitorElement * ME_mini_cppath = dbe->get(fullPathToCPP); TH1F * hist_mini_cppath = ME_mini_cppath->getTH1F();//charlie TAxis * axis = hist_mini_cppath->GetXaxis(); int bin_num = axis->FindBin(pathName.c_str()); int bn = bin_num - 1; hist_mini_cppath->Fill(bn,0);//charlieeeee hist_mini_cppath->SetEntries(hist_mini_cppath->Integral()); if (index < triggerResults->size()) { if(triggerResults->accept(index)) { cppath->Fill(index,1); if (debugPrint) std::cout << "Check Event " << iEvent.id() << " Run " << iEvent.id().run() << " fired path " << pathName << std::endl; // look up module labels for this path vector<std::string> modulesThisPath = hltConfig_.moduleLabels(pathName); if (debugPrint) std::cout << "Looping over module labels " << std::endl; // Loop backward through module names for ( int iModule = (modulesThisPath.size()-1); iModule >= 0; iModule--) { if (debugPrint) std::cout << "Module name is " << modulesThisPath[iModule] << std::endl; // check to see if you have savetags information if (hltConfig_.saveTags(modulesThisPath[iModule])) { if (debugPrint) std::cout << "For path " << pathName << " this module " << modulesThisPath[iModule] <<" is a saveTags module of type " << hltConfig_.moduleType(modulesThisPath[iModule]) << std::endl; if (hltConfig_.moduleType(modulesThisPath[iModule]) == "HLTLevel1GTSeed") break; InputTag moduleWhoseResultsWeWant(modulesThisPath[iModule], "", hltTag); unsigned int indexOfModuleInAodTriggerEvent = aodTriggerEvent->filterIndex(moduleWhoseResultsWeWant); if ( indexOfModuleInAodTriggerEvent < aodTriggerEvent->sizeFilters() ) { const Keys &keys = aodTriggerEvent->filterKeys( indexOfModuleInAodTriggerEvent ); if (debugPrint) std::cout << "Got Keys for index " << indexOfModuleInAodTriggerEvent <<", size of keys is " << keys.size() << std::endl; if (keys.size()>=1000) edm::LogWarning("GeneralHLTOffline") << "WARNING!! size of keys is " << keys.size() << " for path " << pathName << " and module " << modulesThisPath[iModule]<< std::endl; // There can be > 100 keys (3-vectors) for some modules with no ID filled // the first one has the highest value for single-object triggers // for multi-object triggers, seems reasonable to use the first one as well // So loop here has been commented out // for ( size_t iKey = 0; iKey < keys.size(); iKey++ ) { if (keys.size() > 0) { TriggerObject foundObject = objects[keys[0]]; // if(keyTracker[iKey] != iKey) first_count = true; if (debugPrint || outputPrint) std::cout << "This object has id (pt, eta, phi) = " << " " << foundObject.id() << " " << std::setw(10) << foundObject.pt() << ", " << std::setw(10) << foundObject.eta() << ", " << std::setw(10) << foundObject.phi() << " for path = " << std::setw(20) << pathName << " module " << std::setw(40) << modulesThisPath[iModule] << std::endl; if (debugPrint) std::cout << "CHECK RUN " << iEvent.id().run() << " " << iEvent.id() << " " << pathName << " " << modulesThisPath[iModule] << " " << datasetNames[iPD] << " " << hltConfig_.moduleType(modulesThisPath[iModule]) << " " << keys.size() << " " << std::setprecision(4) << foundObject.pt() << " " << foundObject.eta() << " " << foundObject.phi() << std::endl; // first_count is to make sure that the top-level histograms of each dataset // don't get filled more than once fillHltMatrix(datasetNames[iPD],pathName,foundObject.eta(),foundObject.phi(),first_count); first_count = false; // keyTracker[iKey] = iKey; // }// end for each key } // at least one key }// end if filter in aodTriggerEvent // OK, we found the last module. No need to look at the others. // get out of the loop break; }// end if saveTags }//end Loop backward through module names }// end if(triggerResults->accept(index)) // else: }// end if (index < triggerResults->size()) }// end Loop over Paths in each PD }//end Loop over PDs } }
void GeneralHLTOffline::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 337 of file GeneralHLTOffline.cc.
References gather_cfg::cout, and cppFunctionSkipper::operator.
{using namespace edm; using std::string; if (debugPrint) std::cout << "Inside begin job" << std::endl; dbe = Service<DQMStore>().operator->(); if (dbe) { dbe->setCurrentFolder(plotDirectoryName); } }
void GeneralHLTOffline::beginLuminosityBlock | ( | edm::LuminosityBlock const & | , |
edm::EventSetup const & | |||
) | [private, virtual] |
void GeneralHLTOffline::beginRun | ( | edm::Run const & | iRun, |
edm::EventSetup const & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 364 of file GeneralHLTOffline.cc.
References compare_using_db::compare, gather_cfg::cout, makeLayoutFileForGui::datasetNames, newFWLiteAna::found, patRefSel_triggerSelection_cff::hltTag, and i.
{ if (debugPrint) std::cout << "Inside beginRun" << std::endl; bool changed = true; if (hltConfig_.init(iRun, iSetup, hltTag, changed)) { if(debugPrint) std::cout << "HLT config with process name " << hltTag << " successfully extracted" << std::endl; } else { if (debugPrint) std::cout << "Warning, didn't find process HLT" << std::endl; } if (debugPrint) std::cout << " HLTConfig processName " << hltConfig_.processName() << " tableName " << hltConfig_.tableName() << " size " << hltConfig_.size() << std::endl; dbe->setCurrentFolder("HLT/GeneralHLTOffline/"); cppath = dbe->book1D("cppath","Counts/Path",hltConfig_.size(),0,hltConfig_.size()); std::vector<std::string> nameStreams = hltConfig_.streamNames(); bool streamAfound = false; int i = 0; for (vector<string>::iterator streamName = nameStreams.begin(); streamName != nameStreams.end(); ++streamName) { if (hltConfig_.streamName(i) == "A") { if (debugPrint) std::cout << " Stream A found " << std::endl; streamAfound = true; } else if (debugPrint) std::cout << " Stream A not found " << std::endl; i++; } if (streamAfound) { vector<string> datasetNames = hltConfig_.streamContent("A"); if (debugPrint) std::cout << "Number of Stream A datasets " << datasetNames.size() << std::endl; for (unsigned int i=0;i<datasetNames.size();i++) { if (debugPrint) std::cout << "This is dataset " << datasetNames[i] <<std::endl; vector<string> datasetPaths = hltConfig_.datasetContent(datasetNames[i]); if (debugPrint) std::cout << "datasetPaths.size() = " << datasetPaths.size() << std::endl; // Should be fine here if (debugPrint) { for (unsigned int iPath = 0; iPath < datasetPaths.size(); iPath++) { std::cout << "Before setupHltMatrix - MET dataset " << datasetPaths[iPath] << std::endl; } } // Check if dataset has been added - if not add it // need to loop through AddedDatasets and compare bool foundDataset = false; int datasetNum = -1; for (unsigned int d = 0; d < AddedDatasets.size(); d++) { if (AddedDatasets[d].compare(datasetNames[i]) == 0 ){ foundDataset = true; datasetNum = d; if (debugPrint) std::cout << "Dataset " << datasetNames[i] << " found in AddedDatasets at position " << d << std::endl; break; } } if (!foundDataset) { if (debugPrint) std::cout << " Fill trigger paths for dataset " << datasetNames[i] << std::endl; PDsVectorPathsVector.push_back(datasetPaths); // store dataset pathname AddedDatasets.push_back(datasetNames[i]); } // This trigger path has already been added - // this implies that this is a new run // What we want to do is check if there is a new trigger that was not in the original dataset // For a given dataset, loop over the stored list of triggers, and compare to the current list of triggers // If any of the triggers are missing, add them to the end of the appropriate dataset else { if (debugPrint) std::cout << " Additional runs : Check for additional trigger paths per dataset " << std::endl; // Loop over correct path of PDsVectorPathsVector bool found = false; // Loop over triggers in the path for (unsigned int iTrig = 0; iTrig < datasetPaths.size(); iTrig++) { if (debugPrint) std::cout << "Looping over trigger list in dataset " << iTrig << " " << datasetPaths[iTrig] << endl; found = false; // Loop over triggers already on the list for (unsigned int od = 0; od < PDsVectorPathsVector[datasetNum].size(); od++) { if (debugPrint) std::cout << "Looping over existing trigger list " << od << " " << PDsVectorPathsVector[datasetNum][od] << endl; // Compare, see if match is found if (removeVersions(datasetPaths[iTrig]).compare(removeVersions(PDsVectorPathsVector[datasetNum][od])) == 0) { found = true; if (debugPrint) std::cout << " FOUND " << datasetPaths[iTrig] << std::endl; break; } } // If match is not found, add trigger to correct path of PDsVectorPathsVector if (!found) PDsVectorPathsVector[datasetNum].push_back(datasetPaths[iTrig]); if (debugPrint) std::cout << datasetPaths[iTrig] << " NOT FOUND - so we added it to the correct dataset " << datasetNames[i] << std::endl; } } // Let's check this whole big structure if (debugPrint) { for (unsigned int is = 0; is < PDsVectorPathsVector.size(); is++) { std::cout << " PDsVectorPathsVector[" << is << "] is " << PDsVectorPathsVector[is].size() << std::endl; for (unsigned int ip = 0; ip < PDsVectorPathsVector[is].size(); ip++) { std::cout << " trigger " << ip << " path " << PDsVectorPathsVector[is][ip] << std::endl; } } } if (debugPrint) std::cout <<"Found PD: " << datasetNames[i] << std::endl; setupHltMatrix(datasetNames[i],i); }// end of loop over dataset names } // if stream A found }
void GeneralHLTOffline::endJob | ( | void | ) | [private, virtual] |
void GeneralHLTOffline::endLuminosityBlock | ( | edm::LuminosityBlock const & | , |
edm::EventSetup const & | |||
) | [private, virtual] |
void GeneralHLTOffline::endRun | ( | edm::Run const & | , |
edm::EventSetup const & | |||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 498 of file GeneralHLTOffline.cc.
References gather_cfg::cout.
{ if (debugPrint) std::cout << " endRun called " << std::endl; }
void GeneralHLTOffline::fillHltMatrix | ( | std::string | label, |
std::string | path, | ||
double | Eta, | ||
double | Phi, | ||
bool | first_count | ||
) | [private, virtual] |
Definition at line 631 of file GeneralHLTOffline.cc.
References gather_cfg::cout, MonitorElement::getTH1F(), MonitorElement::getTH2F(), and label.
{ if (debugPrint) std::cout << "Inside fillHltMatrix( " << label << " , " << path << " ) " << std::endl; std::string fullPathToME; std::string fullPathToME1dEta; std::string fullPathToME1dPhi; std::string fullPathToME1dEtaPath; std::string fullPathToME1dPhiPath; std::string fullPathToCPP; fullPathToME = "HLT/GeneralHLTOffline/HLT_"+label+"_EtaVsPhi"; fullPathToME1dEta = "HLT/GeneralHLTOffline/HLT_"+label+"_1dEta"; fullPathToME1dPhi = "HLT/GeneralHLTOffline/HLT_"+label+"_1dPhi"; fullPathToCPP = "HLT/GeneralHLTOffline/"+label+"/cppath_"+label; if (label != "SingleMu" && label != "SingleElectron" && label != "Jet") { fullPathToME = "HLT/GeneralHLTOffline/"+label+"/HLT_"+label+"_EtaVsPhi"; fullPathToME1dEta = "HLT/GeneralHLTOffline/"+label+"/HLT_"+label+"_1dEta"; fullPathToME1dPhi = "HLT/GeneralHLTOffline/"+label+"/HLT_"+label+"_1dPhi"; } fullPathToME1dEtaPath = "HLT/GeneralHLTOffline/"+label+"/Paths/HLT_"+removeVersions(path)+"_1dEta"; fullPathToME1dPhiPath = "HLT/GeneralHLTOffline/"+label+"/Paths/HLT_"+removeVersions(path)+"_1dPhi"; // MonitorElement * ME_2d = dbe->get(fullPathToME); // MonitorElement * ME_1dEta = dbe->get(fullPathToME1dEta); // MonitorElement * ME_1dPhi = dbe->get(fullPathToME1dPhi); // MonitorElement * ME_1dEtaPath = dbe->get(fullPathToME1dEtaPath); // MonitorElement * ME_1dPhiPath = dbe->get(fullPathToME1dPhiPath); MonitorElement * ME_mini_cppath = dbe->get(fullPathToCPP); // TH2F * hist_2d = ME_2d->getTH2F(); // TH1F * hist_1dEta = ME_1dEta->getTH1F(); // TH1F * hist_1dPhi = ME_1dPhi->getTH1F(); // TH1F * hist_1dEtaPath = ME_1dEtaPath->getTH1F(); // TH1F * hist_1dPhiPath = ME_1dPhiPath->getTH1F(); TH1F * hist_mini_cppath = ME_mini_cppath->getTH1F(); //int i=2; //if (Eta>1.305 && Eta<1.872) i=0; //if (Eta<-1.305 && Eta>-1.872) i=0; //for (int ii=i; ii<3; ++ii) hist_2d->Fill(Eta,Phi); //Scales narrow bins in Barrel/Endcap border region // fill top-level histograms if(first_count) { if (debugPrint) std::cout << " label " << label << " fullPathToME1dPhi " << fullPathToME1dPhi << " path " << path << " Phi " << Phi << " Eta " << Eta << std::endl; if (label != "MET" && label != "HT") { MonitorElement * ME_1dEta = dbe->get(fullPathToME1dEta); TH1F * hist_1dEta = ME_1dEta->getTH1F(); hist_1dEta->Fill(Eta); } if (label != "HT") { MonitorElement * ME_1dPhi = dbe->get(fullPathToME1dPhi); TH1F * hist_1dPhi = ME_1dPhi->getTH1F(); hist_1dPhi->Fill(Phi); if (debugPrint) std::cout << " **FILLED** label " << label << " fullPathToME1dPhi " << fullPathToME1dPhi << " path " << path << " Phi " << Phi << " Eta " << Eta << std::endl; } if (label != "MET" && label != "HT") { MonitorElement * ME_2d = dbe->get(fullPathToME); TH2F * hist_2d = ME_2d->getTH2F(); hist_2d->Fill(Eta,Phi); } } // end fill top-level histograms if (label != "MET" && label != "HT") { MonitorElement * ME_1dEtaPath = dbe->get(fullPathToME1dEtaPath); TH1F * hist_1dEtaPath = ME_1dEtaPath->getTH1F(); hist_1dEtaPath->Fill(Eta); } if (label != "HT") { MonitorElement * ME_1dPhiPath = dbe->get(fullPathToME1dPhiPath); TH1F * hist_1dPhiPath = ME_1dPhiPath->getTH1F(); hist_1dPhiPath->Fill(Phi); } if (debugPrint) if (label == "MET") std::cout << " MET Eta is " << Eta << std::endl; TAxis * axis = hist_mini_cppath->GetXaxis(); int bin_num = axis->FindBin(path.c_str()); int bn = bin_num - 1; hist_mini_cppath->Fill(bn,1); if (debugPrint) std::cout << "hist->Fill" << std::endl; } //End fillHltMatrix
string GeneralHLTOffline::removeVersions | ( | std::string | histVersion | ) | [private, virtual] |
Definition at line 615 of file GeneralHLTOffline.cc.
References pos, cmsDownloadME::ver, and BeamSplash_cfg::version.
void GeneralHLTOffline::setupHltMatrix | ( | std::string | label, |
int | iPD | ||
) | [private, virtual] |
Definition at line 1025 of file TrigResRateMon.cc.
References DQMStore::book1D(), DQMStore::bookProfile(), TrigResRateMon::dbe_, MonitorElement::getTH1F(), MonitorElement::getTProfile(), i, TrigResRateMon::pathsSummaryFolder_, and DQMStore::setCurrentFolder().
{ //string groupLabelAny = "HLT_"+label+"_Any"; //paths.push_back(groupLabelAny.c_str()); //paths.push_back("HLT_"+label+"_L1_Any"); paths.push_back(""); paths.push_back("Total "+label); //paths.push_back("HLT_Any"); string h_name; string h_title; dbe_->setCurrentFolder(pathsSummaryFolder_.c_str()); // // h_name= "HLT_"+label+"_PassPass"; // // h_title = "HLT_"+label+"_PassPass (x=Pass, y=Pass);;; "; // // MonitorElement* ME = dbe_->book2D(h_name.c_str(), h_title.c_str(), // // paths.size(), -0.5, paths.size()-0.5, paths.size(), -0.5, paths.size()-0.5); // This is counts per path per for a specific PD // it will be corrected for prescales h_name= "HLT_"+label+"_Pass_Any"; h_title = "HLT_"+label+"_Pass -- Prescale*Counts Per Path;Path;PS*Counts"; MonitorElement* ME_Any = dbe_->book1D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); // This is RAW counts per path per for a specific PD // it will be corrected for h_name= "HLT_"+label+"_RawCounts"; h_title = "HLT_"+label+"_Pass (x=Pass, An) normalized to HLT_Any Pass;;Counts"; MonitorElement* ME_RawCounts = dbe_->book1D(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); // Make a similar histogram that is xsec per path for a specific PD // this is actually a profile of the average xsec per path h_name= "HLT_"+label+"_Xsec"; h_title = "HLT_"+label+"_Xsec -- Profile shows Average Xsec per path;;#sigma (#mu b)"; TProfile tempProfile(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); MonitorElement* ME_Xsec = dbe_->bookProfile(h_name.c_str(), &tempProfile); // Make a similar histogram that is xsec per path for a specific PD // this is actually a profile of the average xsec per path // this histogram is scaled to the cross section of a reference path h_name= "HLT_"+label+"_XsecScaled"; h_title = "HLT_"+label+"_Xsec -- Profile shows Average Xsec per path Scaled to Reference;;Ratio (#sigma/#sigma_{ref}"; TProfile tempProfileScaled(h_name.c_str(), h_title.c_str(), paths.size(), -0.5, paths.size()-0.5); MonitorElement* ME_XsecScaled = dbe_->bookProfile(h_name.c_str(), &tempProfileScaled); h_name= "HLT_"+label+"_Rate"; h_title = "HLT_"+label+"_Rate -- histogram shows Average Rate per LS;LS;Rate [Hz]"; // MonitorElement* ME_Rate = dbe_->book1D(h_name.c_str(), h_title.c_str(),nLS_, 0, nLS_); // dbe_->setCurrentFolder(pathsSummaryHLTCorrelationsFolder_.c_str()); // h_name= "HLT_"+label+"_PassPass_Normalized"; // h_title = "HLT_"+label+"_PassPass (x=Pass, y=Pass) normalized to xBin=Pass"; // MonitorElement* ME_Normalized = dbe_->book2D(h_name.c_str(), h_title.c_str(), // paths.size(), -0.5, paths.size()-0.5, paths.size(), -0.5, paths.size()-0.5); // h_name= "HLT_"+label+"_Pass_Normalized_Any"; // h_title = "HLT_"+label+"_Pass (x=Pass, Any=Pass) normalized to HLT_Any Pass"; // MonitorElement* ME_Normalized_Any = dbe_->book1D(h_name.c_str(), h_title.c_str(), // paths.size(), -0.5, paths.size()-0.5); // dbe_->setCurrentFolder(pathsSummaryHLTPathsPerLSFolder_.c_str()); // h_name= "HLT_"+label+"_Total_LS"; // h_title = label+" HLT paths total combined rate [Hz]"; // MonitorElement* ME_Total_LS = dbe_->book1D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_); // ME_Total_LS->setAxisTitle("LS"); // h_name= "HLT_"+label+"_LS"; // h_title = label+" HLT paths rate [Hz]"; // MonitorElement* ME_Group_LS = dbe_->book2D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_, paths.size(), -0.5, paths.size()-0.5); // ME_Group_LS->setAxisTitle("LS"); // /// add this path to the vector of 2D LS paths // v_ME_HLTAll_LS.push_back(ME_Group_LS); /* h_name= "HLT_"+label+"_L1_Total_LS"; h_title = label+" HLT paths total combined rate [Hz]"; MonitorElement* ME_Total_L1_LS = dbe_->book1D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_); ME_Total_L1_LS->setAxisTitle("LS"); h_name= "HLT_"+label+"_L1_LS"; h_title = label+" HLT L1s rate [Hz]"; MonitorElement* ME_Group_L1_LS = dbe_->book2D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_, paths.size(), -0.5, paths.size()-0.5); ME_Group_L1_LS->setAxisTitle("LS"); dbe_->setCurrentFolder(pathsSummaryHLTPathsPerBXFolder_.c_str()); h_name= "HLT_"+label+"_BX_LS"; h_title = label+" HLT paths total count combined per BX "; MonitorElement* ME_Total_BX = dbe_->book2D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_, 5, -2.5, 2.5); ME_Total_BX->setAxisTitle("LS",1); v_ME_Total_BX.push_back(ME_Total_BX); h_name= "HLT_"+label+"_BX_LS_Norm"; h_title = label+" HLT paths total count combined per BX Normalized to LS"; MonitorElement* ME_Total_BX_Norm = dbe_->book2D(h_name.c_str(), h_title.c_str(), nLS_, 0, nLS_, 5, -2.5, 2.5); ME_Total_BX_Norm->setAxisTitle("LS",1); v_ME_Total_BX_Norm.push_back(ME_Total_BX_Norm); */ for(unsigned int i = 0; i < paths.size(); i++){ // // ME->getTH2F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); // // ME->getTH2F()->GetYaxis()->SetBinLabel(i+1, (paths[i]).c_str()); // ME_Group_LS->getTH2F()->GetYaxis()->SetBinLabel(i+1, (paths[i]).c_str()); // ME_Normalized->getTH2F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); // ME_Normalized->getTH2F()->GetYaxis()->SetBinLabel(i+1, (paths[i]).c_str()); // ME_Normalized_Any->getTH1F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Any->getTH1F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_Xsec->getTProfile()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_XsecScaled->getTProfile()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); ME_RawCounts->getTH1F()->GetXaxis()->SetBinLabel(i+1, (paths[i]).c_str()); } }
vector<string> GeneralHLTOffline::AddedDatasets [private] |
Definition at line 91 of file GeneralHLTOffline.cc.
MonitorElement* GeneralHLTOffline::cppath [private] |
Definition at line 93 of file GeneralHLTOffline.cc.
DQMStore* GeneralHLTOffline::dbe [private] |
Definition at line 86 of file GeneralHLTOffline.cc.
bool GeneralHLTOffline::debugPrint [private] |
Definition at line 80 of file GeneralHLTOffline.cc.
Definition at line 88 of file GeneralHLTOffline.cc.
std::string GeneralHLTOffline::hltTag [private] |
Definition at line 84 of file GeneralHLTOffline.cc.
bool GeneralHLTOffline::outputPrint [private] |
Definition at line 81 of file GeneralHLTOffline.cc.
vector< vector<string> > GeneralHLTOffline::PDsVectorPathsVector [private] |
Definition at line 90 of file GeneralHLTOffline.cc.
std::string GeneralHLTOffline::plotDirectoryName [private] |
Definition at line 83 of file GeneralHLTOffline.cc.