5 name_ =
"HLTTauDQMPathPlotter";
16 refTauPt_ = reference_.getUntrackedParameter<
double>(
"refTauPt",20);
17 refLeptonPt_ = reference_.getUntrackedParameter<
double>(
"refLeptonPt",15);
22 edm::LogInfo(
"HLTTauDQMPathPlotter::HLTTauDQMPathPlotter") << e.
what() << std::endl;
27 for ( std::vector<edm::ParameterSet>::const_iterator iter =
filters_.begin(); iter !=
filters_.end(); ++iter ) {
62 using namespace l1extra;
63 using namespace trigger;
65 bool isGoodReferenceEvent =
false;
66 LVColl refTaus, refLeptons;
69 unsigned int highPtTaus = 0;
70 unsigned int highPtElectrons = 0;
71 unsigned int highPtMuons = 0;
74 bool leptons_ok =
true;
76 std::map<int,LVColl>::const_iterator iref;
80 if ( iref != refC.end() ) {
81 for ( LVColl::const_iterator lvi = iref->second.begin(); lvi != iref->second.end(); ++lvi ) {
85 refTaus.push_back(*lvi);
92 if ( iref != refC.end() ) {
93 for ( LVColl::const_iterator lvi = iref->second.begin(); lvi != iref->second.end(); ++lvi ) {
97 refLeptons.push_back(*lvi);
103 iref = refC.find(13);
104 if ( iref != refC.end() ) {
105 for ( LVColl::const_iterator lvi = iref->second.begin(); lvi != iref->second.end(); ++lvi ) {
109 refLeptons.push_back(*lvi);
114 if ( tau_ok && leptons_ok ) {
116 isGoodReferenceEvent =
true;
128 if ( ID != trigEv->size() ) {
132 if ( leptons.size() >=
filterObjs_[
i].getNTriggeredLeptons() && taus.size() >=
filterObjs_[
i].getNTriggeredTaus() ) {
137 for (
size_t j = 0;
j < taus.size(); ++
j ) {
142 for (
size_t j = 0;
j < leptons.size(); ++
j ) {
157 using namespace trigger;
163 for (
size_t i=0;
i<obj.size();++
i)
164 if (obj.at(
i).isAvailable())
165 out.push_back(obj[
i]->p4());
171 for (
size_t i=0;
i<obj.size();++
i)
172 if (obj.at(
i).isAvailable())
173 out.push_back(obj[
i]->p4());
179 for (
size_t i=0;
i<obj.size();++
i)
180 if (obj.at(
i).isAvailable())
181 out.push_back(obj[
i]->p4());
187 for (
size_t i=0;
i<obj.size();++
i)
188 if (obj.at(
i).isAvailable())
189 out.push_back(obj[
i]->p4());
195 for (
size_t i=0;
i<obj.size();++
i)
196 if (obj.at(
i).isAvailable())
197 out.push_back(obj[
i]->p4());
199 for (
size_t i=0;
i<obj.size();++
i)
200 if (obj.at(
i).isAvailable())
201 out.push_back(obj[
i]->p4());
208 for (
size_t i = 0;
i < obj.size(); ++
i) {
209 if (obj.at(
i).isAvailable()) {
210 out.push_back(obj[
i]->
p4());
215 for (
size_t i = 0;
i < pfjetobj.size(); ++
i) {
216 if (pfjetobj.at(
i).isAvailable()) {
217 out.push_back(pfjetobj[
i]->
p4());
222 for (
size_t i = 0;
i < pftauobj.size(); ++
i) {
223 if (pftauobj.at(
i).isAvailable()) {
224 out.push_back(pftauobj[
i]->
p4());
virtual char const * what() const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
enum start value shifted to 81 so as to avoid clashes with PDG codes
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)
std::vector< HLTTauDQMPlotter::FilterObject > filterObjs_
std::vector< l1extra::L1MuonParticleRef > VRl1muon
LVColl getFilterCollection(size_t, int, const trigger::TriggerEventWithRefs &)
void removeContents(void)
erase all monitoring elements in current directory (not including subfolders);
MonitorElement * accepted_events
unsigned int refNTriggeredLeptons_
std::string triggerTagAlias_
edm::ParameterSet reference_
std::vector< l1extra::L1EmParticleRef > VRl1em
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< edm::ParameterSet > filters_
MonitorElement * accepted_events_matched
std::vector< reco::CaloJetRef > VRjet
std::vector< reco::PFJetRef > VRpfjet
void getObjects(size_type filter, Vids &ids, VRphoton &photons) const
extract Ref<C>s for a specific filter and of specific physics type
HLTTauDQMPathPlotter(const edm::ParameterSet &, bool, std::string)
std::vector< reco::RecoChargedCandidateRef > VRmuon
std::vector< std::vector< double > > tmp
edm::InputTag triggerEventObject_
std::vector< reco::ElectronRef > VRelectron
void analyze(const edm::Event &, const edm::EventSetup &, const std::map< int, LVColl > &)
std::pair< bool, LV > match(const LV &, const LVColl &, double)
std::vector< l1extra::L1JetParticleRef > VRl1jet
std::vector< reco::PFTauRef > VRpftau
void setCurrentFolder(const std::string &fullpath)
std::string dqmBaseFolder_
unsigned int refNTriggeredTaus_