12 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"Constructor SUSY_HLT_DiJet_MET::SUSY_HLT_DiJet_MET " << std::endl;
34 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"Destructor SUSY_HLT_DiJet_MET::~SUSY_HLT_DiJet_MET " << std::endl;
43 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"Initialization of HLTConfigProvider failed!!";
47 bool pathFound =
false;
49 for(
size_t j = 0;
j <allTrigNames.size(); ++
j) {
56 LogDebug(
"SUSY_HLT_DiJet_MET") <<
"Path not found" <<
"\n";
60 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::beginRun" << std::endl;
65 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::bookHistograms" << std::endl;
73 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::beginLuminosityBlock" << std::endl;
79 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::analyze" << std::endl;
87 if ( !pfMETCollection.
isValid() ){
88 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: PFMET" <<
"\n";
93 if ( !caloMETCollection.
isValid() ){
94 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: CaloMET" <<
"\n";
102 if ( !pfJetCollection.
isValid() ){
103 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: PFJets" <<
"\n";
108 if ( !caloJetCollection.
isValid() ){
109 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: CaloJets" <<
"\n";
119 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: TriggerResults" <<
"\n";
124 if(!triggerSummary.
isValid()) {
125 edm::LogError (
"SUSY_HLT_DiJet_MET") <<
"invalid collection: TriggerSummary" <<
"\n";
132 size_t filterIndex = triggerSummary->filterIndex(
triggerFilter_ );
136 if( !(filterIndex >= triggerSummary->sizeFilters()) ){
138 for(
size_t j = 0;
j < keys.size(); ++
j ){
145 std::vector<float> ptJet,
etaJet, phiJet;
146 if( !(jetFilterIndex >= triggerSummary->sizeFilters()) ){
147 const trigger::Keys& keys_jetfilter = triggerSummary->filterKeys( jetFilterIndex );
148 for(
size_t j = 0;
j < keys_jetfilter.size(); ++
j ){
154 ptJet.push_back(foundObject.
pt());
155 etaJet.push_back(foundObject.
eta());
156 phiJet.push_back(foundObject.
phi());
162 bool hasFired =
false;
163 bool hasFiredAuxiliaryForHadronicLeg =
false;
165 unsigned int numTriggers = trigNames.
size();
166 for(
unsigned int hltIndex=0; hltIndex<numTriggers; ++hltIndex ){
167 if (trigNames.
triggerName(hltIndex).find(
triggerPath_) != std::string::npos && hltresults->wasrun(hltIndex) && hltresults->accept(hltIndex)) hasFired =
true;
173 if(hasFiredAuxiliaryForHadronicLeg) {
175 int offlineJetCounter = 0;
176 int offlineCentralJets = 0;
177 int nMatch = 0, jet1Index = -1, jet2Index = -1;
179 for (reco::PFJetCollection::const_iterator i_pfjet = pfJetCollection->begin(); i_pfjet != pfJetCollection->end(); ++i_pfjet){
182 offlineCentralJets++;
185 for(
unsigned int itrigjet = 0; itrigjet < ptJet.size(); ++itrigjet) {
186 if(itrigjet < 2 && (
sqrt((i_pfjet->phi()-phiJet.at(itrigjet))*(i_pfjet->phi()-phiJet.at(itrigjet)) + (i_pfjet->eta()-etaJet.at(itrigjet))*(i_pfjet->eta()-etaJet.at(itrigjet))) < 0.4)) {
188 if(nMatch == 1) jet1Index = offlineJetCounter;
189 if(nMatch == 2) jet2Index = offlineJetCounter;
211 if(jet1Index > -1 && jet2Index > -1) {
230 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::endLuminosityBlock" << std::endl;
236 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::endRun" << std::endl;
246 h_pfJetPt = ibooker_.
book1D(
"pfJetPt",
"PF Jet p_{T} (trigger-matched jets, |#eta| < 2.4); GeV", 20, 0.0, 500.0);
247 h_pfJetEta = ibooker_.
book1D(
"pfJetEta",
"PF Jet #eta (trigger-matched jets, |#eta| < 2.4)", 20, -3.0, 3.0);
248 h_pfJetPhi = ibooker_.
book1D(
"pfJetPhi",
"PF Jet #phi (trigger-matched jets, |#eta| < 2.4)", 20, -3.5, 3.5);
249 h_pfJet1Jet2DPhi = ibooker_.
book1D(
"pfJet1Jet2DPhi",
"|#Delta#phi| between two leading trigger-matched jets", 20, 0.0, 3.5);
250 h_caloMetvsPFMet = ibooker_.
book2D(
"caloMetvsPFMet",
"Calo MET vs PF MET; GeV; GeV", 25, 0.0, 500.0, 25, 0.0, 500.0);
262 h_pfJet2PtTurnOn_num = ibooker_.
book1D(
"pfJet2PtTurnOn_num",
"PF Jet2 Pt (NCentralPFJets >= 2, PFMET > 250)", 20, 0.0, 500.0 );
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
MonitorElement * h_triggerJetEta
edm::InputTag triggerFilter_
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
MonitorElement * h_pfMetTurnOn_num
MonitorElement * h_pfMetPhi
MonitorElement * h_pfJetPt
const std::vector< std::string > & triggerNames() const
names of trigger paths
MonitorElement * h_caloMetvsPFMet
MonitorElement * h_pfJetEta
Strings::size_type size() const
void endLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
MonitorElement * h_triggerMetPhi
void bookHistos(DQMStore::IBooker &)
virtual ~SUSY_HLT_DiJet_MET()
Single trigger physics object (e.g., an isolated muon)
edm::EDGetTokenT< reco::PFMETCollection > thePfMETCollection_
MonitorElement * h_triggerMet
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * h_pfJet2PtTurnOn_den
MonitorElement * h_pfJet1Jet2DPhi
MonitorElement * book1D(Args &&...args)
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
static const char *const trigNames[]
double deltaPhi(double phi1, double phi2)
MonitorElement * h_pfJetPhi
void analyze(edm::Event const &e, edm::EventSetup const &eSetup)
void setCurrentFolder(const std::string &fullpath)
edm::InputTag triggerJetFilter_
MonitorElement * book2D(Args &&...args)
std::string const & triggerName(unsigned int index) const
std::vector< size_type > Keys
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
HLTConfigProvider fHltConfig
MonitorElement * h_pfJet2PtTurnOn_num
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
edm::EDGetTokenT< reco::CaloMETCollection > theCaloMETCollection_
std::string triggerPathAuxiliaryForHadronic_
MonitorElement * h_pfMetTurnOn_den
void beginLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup)
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * h_triggerJetPt
MonitorElement * h_triggerJetPhi
SUSY_HLT_DiJet_MET(const edm::ParameterSet &ps)