6 using namespace ROOT::Math::VectorUtil ;
100 std::vector<std::string> filterModules;
102 for (
unsigned int j=0;
j < egammaPaths.size() ;
j++) {
104 for (
unsigned int i=0;
i < egammaPaths.at(
j).size() ;
i++) {
126 edm::LogWarning(
"EmDQM") <<
"Pathname: '" << pathName <<
"': Unable to determine a minimum Et. Will not include this path in the validation.";
134 if (ptMax < (1.2*genEtMin)) {
180 std::vector<edm::ParameterSet> filterVPSet;
185 for (std::vector<std::string>::iterator
filter = filterModules.begin();
filter != filterModules.end(); ++
filter) {
190 if (moduleType ==
"Pythia6GeneratorFilter" ||
191 moduleType ==
"HLTTriggerTypeFilter" ||
192 moduleType ==
"HLTLevel1Activity" ||
193 moduleType ==
"HLTPrescaler" ||
194 moduleType ==
"HLTBool")
198 if (moduleType ==
"HLTLevel1GTSeed") {
201 else if (moduleType ==
"HLTEgammaL1MatchFilterRegional") {
204 else if (moduleType ==
"HLTEgammaEtFilter") {
207 else if (moduleType ==
"HLTElectronOneOEMinusOneOPFilterRegional") {
210 else if (moduleType ==
"HLTElectronPixelMatchFilter") {
213 else if (moduleType ==
"HLTEgammaGenericFilter") {
216 else if (moduleType ==
"HLTEgammaGenericQuadraticFilter") {
219 else if (moduleType ==
"HLTElectronGenericFilter") {
222 else if (moduleType ==
"HLTEgammaDoubleEtDeltaPhiFilter") {
225 else if (moduleType ==
"HLTGlobalSumsMET"
226 || moduleType ==
"HLTMhtHtFilter"
227 || moduleType ==
"HLTJetTag"
228 || moduleType ==
"HLT1CaloJet"
229 || moduleType ==
"HLT1CaloBJet"
230 || moduleType ==
"HLT1Tau"
231 || moduleType ==
"PFTauSelector"
232 || moduleType ==
"EtMinCaloJetSelector"
233 || moduleType ==
"LargestEtCaloJetSelector"
234 || moduleType ==
"HLTEgammaTriggerFilterObjectWrapper"
235 || moduleType ==
"HLTEgammaDoubleLegCombFilter"
237 || moduleType ==
"HLTPMMassFilter"
238 || moduleType ==
"HLTHcalTowerFilter"
244 edm::LogWarning(
"EmDQM") <<
"No parameter set for filter '" << moduleLabel <<
"' with filter type '" << moduleType <<
"' added. Module will not be analyzed.";
249 if (!filterPSet.
empty()) {
265 filterVPSet.push_back(filterPSet);
273 if (!filterPSet.
empty()) {
282 paramSet.
addParameter<std::vector<edm::ParameterSet> >(
"filters", filterVPSet);
286 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to errors while generating the parameter set.";
304 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
320 std::vector<MonitorElement*> etahist;
321 std::vector<MonitorElement*> phihist;
322 std::vector<MonitorElement*> ethist;
323 std::vector<MonitorElement*> etahistmatch;
324 std::vector<MonitorElement*> phihistmatch;
325 std::vector<MonitorElement*> ethistmatch;
326 std::vector<MonitorElement*> histEtOfHltObjMatchToGen;
327 std::vector<MonitorElement*> histEtaOfHltObjMatchToGen;
328 std::vector<MonitorElement*> histPhiOfHltObjMatchToGen;
359 histName=
"total_eff_MC_matched";
360 histTitle=
"total events passing (mc matched)";
375 pdgIdString=
"Electron";
break;
377 pdgIdString=
"Photon";
break;
379 pdgIdString=
"Particle";
383 histTitle=
"E_{T} of " + pdgIdString +
"s" ;
385 histName =
"gen_eta";
386 histTitle=
"#eta of "+ pdgIdString +
"s " ;
388 histName =
"gen_phi";
389 histTitle=
"#phi of "+ pdgIdString +
"s " ;
396 std::vector<std::string> HltHistTitle;
409 histTitle = HltHistTitle[
i]+
" Et (ALL)";
411 ethist.push_back(tmphisto);
415 histTitle = HltHistTitle[
i]+
" #eta (ALL)";
417 etahist.push_back(tmphisto);
422 histTitle = HltHistTitle[
i]+
" #phi (ALL)";
424 phihist.push_back(tmphisto);
430 histTitle = HltHistTitle[
i]+
" Et";
432 histEtOfHltObjMatchToGen.push_back(tmphisto);
436 histTitle = HltHistTitle[
i]+
" eta";
438 histEtaOfHltObjMatchToGen.push_back(tmphisto);
443 histTitle = HltHistTitle[
i]+
" phi";
445 histPhiOfHltObjMatchToGen.push_back(tmphisto);
451 histTitle = HltHistTitle[
i]+
" Et (MC matched)";
453 ethistmatch.push_back(tmphisto);
457 histTitle = HltHistTitle[
i]+
" #eta (MC matched)";
459 etahistmatch.push_back(tmphisto);
464 histTitle = HltHistTitle[
i]+
" #phi (MC matched)";
466 phihistmatch.push_back(tmphisto);
612 std::vector<reco::LeafCandidate> allSortedGenParticles;
619 if ( !(
abs((*currentGenParticle).pdgId())==
pdgGen && (*currentGenParticle).status()==1 && (*currentGenParticle).et() > 2.0) )
continue;
625 allSortedGenParticles.push_back(tmpcand);
631 if (allSortedGenParticles.size() <
gencut_)
641 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
642 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
643 if ( (fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap ) {
678 if(!referenceParticles.
isValid()) {
684 std::vector<const reco::Candidate *> allSortedReferenceParticles;
687 currentReferenceParticle != referenceParticles->end();
688 currentReferenceParticle++)
690 if ( currentReferenceParticle->et() <= 2.0)
698 if (currentReferenceParticle->et() <
plotEtMin)
702 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
708 return allSortedReferenceParticles.size() >=
gencut_;
718 unsigned int vPos = 0;
719 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
748 if (cutCounter->size() < (
unsigned int)
gencut_) {
759 edm::LogWarning(
"EmDQM") <<
"parameter triggerobject (" <<
triggerObject_ <<
") does not corresond to a valid TriggerEventWithRefs product. Please check especially the process name (e.g. when running over reprocessed datasets)";
793 std::vector<reco::Particle> sortedGen;
795 reco::Particle tmpcand( genpart->charge(), genpart->p4(), genpart->vertex(),genpart->pdgId(),genpart->status() );
797 sortedGen.push_back(tmpcand);
805 if (sortedGen.size() <
gencut_){
808 sortedGen.erase(sortedGen.begin()+
gencut_,sortedGen.end());
810 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
811 etgens.at(vPos)->Fill( sortedGen[
i].et() );
820 bool accepted =
true;
833 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
834 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
858 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]" );
874 std::vector<edm::Ref<T> > recoecalcands;
890 std::vector<edm::Ref<T> > isocands;
892 if (isocands.size()>0)
894 for (
unsigned int i=0;
i < isocands.size();
i++)
895 recoecalcands.push_back(isocands[
i]);
900 if (recoecalcands.size() < 1){
906 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
907 dqm->totals.at(vPos)->Fill(n+0.5);
913 for (
unsigned int j=0;
j<recoecalcands.size();
j++){
914 if(!( recoecalcands.at(
j).isAvailable())){
915 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
916 edm::LogError(
"EmDQMInvalidRefs") <<
"Event content inconsistent: TriggerEventWithRefs contains invalid Refs. Invalid refs for: " <<
dqm->
theHLTCollectionLabels[
n].label() <<
". The collection that this module uses may has been dropped in the event.";
921 if (!
dqm->mcMatchedOnly_) {
927 for (
unsigned int i=0;
i <
dqm->nCandCuts.at(n);
i++) {
930 float closestDeltaR = 0.5;
931 int closestEcalCandIndex = -1;
932 for (
unsigned int j=0;
j<recoecalcands.size();
j++) {
933 float deltaR =
DeltaR(recoecalcands[
j]->momentum(),currentGenParticleMomentum);
935 if (deltaR < closestDeltaR) {
937 closestEcalCandIndex =
j;
943 if ( closestEcalCandIndex >= 0 ) {
944 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->et() );
945 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta() );
946 if (!
dqm->noPhiPlots_)
dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
phi() );
975 for (
unsigned int i=0;
i<recoecalcands.size();
i++) {
993 dqm->ethists.at(vPos).at(n) ->Fill(recoecalcands[
i]->et() );
994 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta() );
995 if (!
dqm->noPhiPlots_)
dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi() );
1024 unsigned int matchedMcParts = 0;
1026 if(n==0) mindist=0.5;
1027 for(
unsigned int i =0;
i <
dqm->nCandCuts.at(n); ++
i){
1029 bool matchThis=
false;
1032 double closestDr = 1000.;
1033 for(
unsigned int trigOb = 0 ; trigOb < recoecalcands.size(); ++trigOb){
1034 double dr =
DeltaR(recoecalcands[trigOb]->momentum(),candDir);
1035 if (dr < closestDr) {
1039 if (closestDr > mindist) {
1051 dqm->ethistmatchs.at(vPos).at(n) ->Fill( sortedGen[
i].et() );
1052 if (sortedGen[
i].et() >
dqm->minEtForEtaEffPlot_) {
1053 dqm->etahistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta() );
1054 if (!
dqm->noPhiPlots_)
dqm->phihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
phi() );
1081 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1082 dqm->totalmatchs.at(vPos)->Fill(n+0.5);
1089 unsigned int vPos = 0;
1090 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
1097 std::vector<std::string> labelsNeverFound;
1103 labelsNeverFound.push_back(tag.
encode());
1107 if (labelsNeverFound.empty())
1110 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1116 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1136 std::vector<std::vector<std::string> >
1139 std::vector<std::vector<std::string> > Paths(5);
1146 if (
int(path.find(
"HLT_")) == 0) {
1147 if (path.find(
"HLT_Ele") != std::string::npos && path.rfind(
"Ele") == 4 && path.find(
"SC") == std::string::npos) {
1151 if (path.find(
"HLT_Ele") != std::string::npos && path.find(
"EleId") != std::string::npos && path.rfind(
"Ele") == path.find(
"EleId")) {
1155 else if (path.find(
"HLT_Ele") != std::string::npos && path.rfind(
"Ele") > 4) {
1159 else if (path.find(
"HLT_DoubleEle") != std::string::npos && path.find(
"Ele") == path.rfind(
"Ele")) {
1163 else if (path.find(
"HLT_Ele") != std::string::npos && path.find(
"SC") != std::string::npos) {
1167 else if (path.find(
"HLT_DoubleEle") != std::string::npos && path.find(
"Ele") != path.rfind(
"Ele")) {
1171 else if (path.find(
"HLT_TripleEle") != std::string::npos && path.find(
"Ele") == path.rfind(
"Ele")) {
1175 else if (path.find(
"HLT_Photon") != std::string::npos && path.find(
"Ele") != std::string::npos) {
1179 else if (path.find(
"HLT_Photon") != std::string::npos && path.rfind(
"Photon") == 4) {
1183 else if (path.find(
"HLT_Photon") != std::string::npos && path.rfind(
"Photon") > 4) {
1187 else if (path.find(
"HLT_DoublePhoton") != std::string::npos) {
1199 std::vector<std::string>
1202 std::vector<std::string>
filters;
1214 if (moduleEDMType ==
"EDFilter" || moduleType.find(
"Filter") != std::string::npos) {
1215 filters.push_back(module);
1229 boost::regex reg(
"^HLT_.*?([[:digit:]]+).*");
1232 if (boost::regex_match(path, what, reg, boost::match_extra))
1234 minEt = boost::lexical_cast<
double>(what[1]);
1251 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1254 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1258 if (moduleName.find(
"Single") != std::string::npos)
1260 else if (moduleName.find(
"Double") != std::string::npos)
1262 else if (moduleName.find(
"Triple") != std::string::npos)
1282 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1285 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1299 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1302 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1316 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1319 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1333 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1336 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1350 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1353 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1404 std::vector<edm::InputTag> isoCollections;
1405 isoCollections.push_back(isoTag);
1406 if (!nonIsoTag.label().empty())
1407 isoCollections.push_back(nonIsoTag);
1413 if (inputType ==
"EgammaHLTR9Producer" ||
1414 inputType ==
"EgammaHLTR9IDProducer" ||
1415 inputType ==
"EgammaHLTClusterShapeProducer" ||
1416 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1417 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1418 inputType ==
"EgammaHLTGsfTrackVarProducer"
1420 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1423 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1430 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1478 std::vector<edm::InputTag> isoCollections;
1479 isoCollections.push_back(isoTag);
1480 if (!nonIsoTag.label().empty())
1481 isoCollections.push_back(nonIsoTag);
1487 if (inputType ==
"EgammaHLTR9Producer" ||
1488 inputType ==
"EgammaHLTR9IDProducer" ||
1489 inputType ==
"EgammaHLTClusterShapeProducer" ||
1490 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1491 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1492 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional"
1494 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1497 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1504 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1547 std::vector<edm::InputTag> isoCollections;
1548 isoCollections.push_back(isoTag);
1549 if (!nonIsoTag.label().empty())
1550 isoCollections.push_back(nonIsoTag);
1558 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1559 inputType ==
"EgammaHLTElectronTrackIsolationProducers"
1561 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1564 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1571 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1582 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1584 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1585 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1587 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin",0.);
1588 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin",0.);
1589 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax",1000.);
1593 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1599 std::vector<edm::ParameterSet>
filters =
1600 psetIt->getParameter<std::vector<edm::ParameterSet> >(
"filters");
1612 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++)
1616 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1620 std::vector<double> bounds = filterconf->getParameter<std::vector<double> >(
"PlotBounds");
1622 assert(bounds.size() == 2);
1623 plotBounds.push_back(std::pair<double,double>(bounds[0],bounds[1]));
1624 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag> >(
"IsoCollections"));
1650 if (
isoNames.back().at(0).label()==
"none") {
1654 else plotiso.push_back(
false);
1656 nCandCuts.push_back(filterconf->getParameter<
int>(
"ncandcut"));
unsigned int size() const
number of trigger paths in trigger table
edm::ParameterSet makePSetForEgammaGenericFilter(const std::string &)
T getParameter(std::string const &) const
std::vector< MonitorElement * > totals
T getUntrackedParameter(std::string const &, T const &) const
virtual double et() const GCC11_FINAL
transverse energy
edm::ParameterSet makePSetForEgammaGenericQuadraticFilter(const std::string &)
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidZee_token
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &, const edm::Event &, unsigned int, unsigned int, std::vector< reco::Particle > &, bool &)
edm::EDGetTokenT< edm::View< reco::Candidate > > genParticles_token
const std::string moduleType(const std::string &module) const
C++ class name of module.
std::vector< std::vector< MonitorElement * > > histEtOfHltObjMatchToGens
std::vector< std::vector< std::string > > findEgammaPaths()
bool checkRecoParticlesRequirement(const edm::Event &event)
const std::string & triggerName(unsigned int triggerIndex) const
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
unsigned int numOfHLTCollectionLabels
std::vector< std::vector< MonitorElement * > > phihists
std::vector< std::set< std::string > > hltCollectionLabelsMissedPerPath
static const unsigned OUTPUT_ALL
#define DEFINE_FWK_MODULE(type)
std::set< std::string > hltCollectionLabelsFound
std::vector< std::vector< MonitorElement * > > histPhiOfHltObjMatchToGens
std::vector< std::set< std::string > > hltCollectionLabelsFoundPerPath
bool exists(std::string const ¶meterName) const
checks if a parameter exists
HLTConfigProvider hltConfig_
The instance of the HLTConfigProvider as a data member.
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
std::vector< int > theHLTOutputTypes
edm::ParameterSet makePSetForOneOEMinusOneOPFilter(const std::string &)
const std::string & tableName() const
HLT ConfDB table name.
static const unsigned TYPE_DOUBLE_PHOTON
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
edm::ParameterSet makePSetForElectronGenericFilter(const std::string &)
HistoFiller< reco::ElectronCollection > * histoFillerEle
std::vector< TPRegexp > filters
bool changed() const
changed?
std::vector< std::vector< MonitorElement * > > etahists
static const unsigned OUTPUT_ERRORS
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidWenu_token
const std::string & moduleLabel(unsigned int trigger, unsigned int module) const
static const std::string removeVersion(const std::string &trigger)
GreaterByPt< reco::GenParticle > pTGenComparator_
bool inited() const
Accessors (const methods)
std::vector< std::vector< edm::InputTag > > isoNames
edm::ParameterSet makePSetForL1SeedFilter(const std::string &)
std::vector< MonitorElement * > etagens
std::vector< std::vector< MonitorElement * > > ethists
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
std::vector< std::string > getFilterModules(const std::string &)
void beginRun(edm::Run const &, edm::EventSetup const &)
std::vector< edm::InputTag > theHLTCollectionLabels
HistoFiller< l1extra::L1EmParticleCollection > * histoFillerL1Iso
std::string moduleName(Provenance const &provenance)
unsigned int moduleIndex(unsigned int trigger, const std::string &module) const
slot position of module on trigger path (0 to size-1)
HistoFiller< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
std::vector< std::vector< MonitorElement * > > ethistmatchs
std::vector< unsigned int > nCandCuts
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerPho
edm::InputTag triggerObject_
void endRun(edm::Run const &, edm::EventSetup const &)
static const unsigned OUTPUT_WARNINGS
void addParameter(std::string const &name, T const &value)
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidGammaJet_token
std::set< std::string > hltCollectionLabelsMissed
std::vector< std::vector< MonitorElement * > > etahistmatchs
void SetVarsFromPSet(std::vector< edm::ParameterSet >::iterator)
Abs< T >::type abs(const T &t)
const edm::ParameterSet & pset
edm::InputTag gencutCollection_
edm::ParameterSet makePSetForEgammaDoubleEtDeltaPhiFilter(const std::string &)
void setVerbose(unsigned level)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::vector< std::vector< MonitorElement * > > phihistmatchs
EmDQM(const edm::ParameterSet &pset)
Constructor.
const std::string & processName() const
process name
double deltaR(double eta1, double eta2, double phi1, double phi2)
static const unsigned TYPE_SINGLE_PHOTON
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidDiGamma_token
bool checkGeneratedParticlesRequirement(const edm::Event &event)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void addUntrackedParameter(std::string const &name, T const &value)
std::vector< edm::ParameterSet > paramSets
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
std::vector< std::vector< MonitorElement * > > histEtaOfHltObjMatchToGens
void analyze(const edm::Event &event, const edm::EventSetup &)
std::vector< edm::InputTag > theHLTCollectionLabels
static const unsigned TYPE_SINGLE_ELE
double getPrimaryEtCut(const std::string &)
edm::ParameterSet makePSetForL1SeedToSuperClusterMatchFilter(const std::string &)
bool useHumanReadableHistTitles_
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObject_token
std::vector< MonitorElement * > totalmatchs
static const unsigned TYPE_DOUBLE_ELE
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerClu
static const unsigned TYPE_TRIPLE_ELE
std::vector< std::string > theHLTCollectionHumanNames
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_manualConf_token
GreaterByPt< reco::Particle > pTComparator_
std::vector< MonitorElement * > phigens
std::vector< int > theHLTOutputTypes
edm::ParameterSet makePSetForEtFilter(const std::string &)
edm::ParameterSet makePSetForPixelMatchFilter(const std::string &)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
unsigned int minEtForEtaEffPlot_
void setCurrentFolder(const std::string &fullpath)
edm::EDGetTokenT< edm::TriggerResults > hltResults_token
std::vector< std::pair< double, double > > plotBounds
std::vector< MonitorElement * > etgens
std::vector< bool > plotiso