Skip to content

Commit

Permalink
Merge pull request cms-sw#9405 from rkunnawa/HI_JETDQM_v2_Jun1
Browse files Browse the repository at this point in the history
HI Jet DQM
  • Loading branch information
cmsbuild committed Jun 23, 2015
2 parents 75213d7 + 1a4cdd5 commit eb5b83b
Show file tree
Hide file tree
Showing 7 changed files with 810 additions and 257 deletions.
36 changes: 4 additions & 32 deletions DQMOffline/JetMET/interface/JetAnalyzer_HeavyIons.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ const Int_t MAXPARTICLE = 10000;
class MonitorElement;

class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {

public:

explicit JetAnalyzer_HeavyIons (const edm::ParameterSet&);
Expand Down Expand Up @@ -112,7 +113,6 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
edm::EDGetTokenT<reco::CandidateView> pfCandViewToken_;
edm::EDGetTokenT<reco::CandidateView> caloCandViewToken_;

//edm::EDGetTokenT<reco::VoronoiMap> backgrounds_;
edm::EDGetTokenT<edm::ValueMap<reco::VoronoiBackground>> backgrounds_;
edm::EDGetTokenT<std::vector<float>> backgrounds_value_;
edm::EDGetTokenT<reco::Centrality> centralityToken_;
Expand All @@ -133,10 +133,6 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
MonitorElement *mCaloVsPtInitial;
MonitorElement *mCaloArea;
MonitorElement *mSumpt;
MonitorElement *mvn;
MonitorElement *mpsin;
// MonitorElement *ueraw;

MonitorElement *mSumPFVsPt;
MonitorElement *mSumPFVsPtInitial;
MonitorElement *mSumPFPt;
Expand Down Expand Up @@ -167,7 +163,7 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {

MonitorElement *mSumSquaredCaloVsPtInitial_eta;
MonitorElement *mSumSquaredCaloVsPt_eta;
MonitorElement *mSumSquaredCaloPt_eta;
MonitorElement *mSumSquaredCaloPt_eta;

// Event variables (including centrality)
MonitorElement* mNvtx;
Expand All @@ -177,34 +173,10 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
MonitorElement *mSumPFVsPt_HF;
MonitorElement *mSumPFVsPtInitial_HF;
MonitorElement *mSumPFPt_HF;
MonitorElement *mPFVsPtInitial_eta_phi;
MonitorElement *mPFVsPt_eta_phi;
MonitorElement *mPFPt_eta_phi;
//MonitorElement *mSumDeltapT_HF;
MonitorElement *mDeltapT;
MonitorElement *mDeltapT_eta;
//MonitorElement *mDeltapT_phiMinusPsi2;
MonitorElement *mDeltapT_eta_phi;

MonitorElement *mSumCaloVsPt_HF;
MonitorElement *mSumCaloVsPtInitial_HF;
MonitorElement *mSumCaloPt_HF;
MonitorElement *mCaloVsPtInitial_eta_phi;
MonitorElement *mCaloVsPt_eta_phi;
MonitorElement *mCaloPt_eta_phi;

MonitorElement *mVs_0_x;
MonitorElement *mVs_0_y;
MonitorElement *mVs_1_x;
MonitorElement *mVs_1_y;
MonitorElement *mVs_2_x;
MonitorElement *mVs_2_y;
MonitorElement *mVs_0_x_versus_HF;
MonitorElement *mVs_0_y_versus_HF;
MonitorElement *mVs_1_x_versus_HF;
MonitorElement *mVs_1_y_versus_HF;
MonitorElement *mVs_2_x_versus_HF;
MonitorElement *mVs_2_y_versus_HF;

MonitorElement *mSumPFVsPtInitial_n5p191_n2p650;
MonitorElement *mSumPFVsPtInitial_n2p650_n2p043;
Expand Down Expand Up @@ -254,7 +226,7 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
MonitorElement *mSumPFPt_2p043_2p650;
MonitorElement *mSumPFPt_2p650_5p191;


MonitorElement *mSumCaloVsPtInitial_n5p191_n2p650;
MonitorElement *mSumCaloVsPtInitial_n2p650_n2p043;
MonitorElement *mSumCaloVsPtInitial_n2p043_n1p740;
Expand Down Expand Up @@ -325,7 +297,7 @@ class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
static const Int_t fourierOrder_ = 5;
static const Int_t etaBins_ = 15;

static const size_t nedge_pseudorapidity = etaBins_ + 1;
static const Int_t nedge_pseudorapidity = etaBins_ + 1;


};
Expand Down
180 changes: 180 additions & 0 deletions DQMOffline/JetMET/interface/JetAnalyzer_HeavyIons_matching.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
#ifndef JetAnalyzer_HeavyIons_matching_H
#define JetAnalyzer_HeavyIons_matching_H


//
// Jet Tester class for heavy ion jets. for DQM jet analysis monitoring
// For CMSSW_7_5_X, especially reading background subtracted jets
// author: Raghav Kunnawalkam Elayavalli,
// April 6th 2015
// Rutgers University, email: raghav.k.e at CERN dot CH
//
// The logic for the matching is taken from Pawan Kumar Netrakanti's macro analysis level macro available here
// https://github.com/pawannetrakanti/UserCode/blob/master/JetRAA/jetmatch.C
//


#include <memory>
#include <fstream>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/MonitorElement.h"

#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/HLTReco/interface/TriggerEvent.h"
#include "DataFormats/HLTReco/interface/TriggerObject.h"
#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
#include "CommonTools/TriggerUtils/interface/GenericTriggerEventFlag.h"
#include "FWCore/Utilities/interface/EDGetToken.h"

#include "DataFormats/JetReco/interface/Jet.h"
#include "DataFormats/JetReco/interface/CaloJet.h"
#include "DataFormats/JetReco/interface/CaloJetCollection.h"
#include "DataFormats/JetReco/interface/GenJet.h"
#include "DataFormats/JetReco/interface/GenJetCollection.h"
#include "DataFormats/JetReco/interface/JPTJet.h"
#include "DataFormats/JetReco/interface/JPTJetCollection.h"
#include "DataFormats/JetReco/interface/PFJet.h"

#include "DataFormats/CaloTowers/interface/CaloTower.h"
#include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/Candidate/interface/CandidateFwd.h"
#include "DataFormats/Candidate/interface/CandidateWithRef.h"

// include the basic jet for the PuPF jets.
#include "DataFormats/JetReco/interface/BasicJet.h"
#include "DataFormats/JetReco/interface/BasicJetCollection.h"
// include the pf candidates
#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
// include the voronoi subtraction
#include "DataFormats/HeavyIonEvent/interface/VoronoiBackground.h"
#include "RecoHI/HiJetAlgos/interface/UEParameters.h"
// include the centrality variables
#include "DataFormats/HeavyIonEvent/interface/Centrality.h"

#include "JetMETCorrections/Objects/interface/JetCorrector.h"
#include "RecoJets/JetProducers/interface/JetIDHelper.h"
#include "DQMOffline/JetMET/interface/JetMETDQMDCSFilter.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/DetId/interface/DetId.h"

#include "DataFormats/Scalers/interface/DcsStatus.h"
#include "PhysicsTools/SelectorUtils/interface/JetIDSelectionFunctor.h"
#include "PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
#include <map>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <utility>


class MonitorElement;

class JetAnalyzer_HeavyIons_matching : public DQMEDAnalyzer {
public:

explicit JetAnalyzer_HeavyIons_matching (const edm::ParameterSet&);
virtual ~JetAnalyzer_HeavyIons_matching();

void analyze(const edm::Event&, const edm::EventSetup&) override;
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;

// calojet1token = vscalo
// calojet2token = pucalo

private:

edm::InputTag mInputJet1Collection;
edm::InputTag mInputJet2Collection;

std::string mOutputFile;
std::string JetType1;
std::string JetType2;
double mRecoJetPtThreshold;
double mRecoDelRMatch;
double mRecoJetEtaCut;

//Tokens
edm::EDGetTokenT<reco::CaloJetCollection> caloJet1Token_;
edm::EDGetTokenT<reco::CaloJetCollection> caloJet2Token_;
edm::EDGetTokenT<reco::PFJetCollection> pfJetsToken_;
edm::EDGetTokenT<reco::BasicJetCollection> basicJetsToken_;
edm::EDGetTokenT<reco::JPTJetCollection> jptJetsToken_;

MonitorElement * mpT_ratio_Jet1Jet2;
MonitorElement * mpT_Jet1_matched;
MonitorElement * mpT_Jet2_matched;
MonitorElement * mpT_Jet1_unmatched;
MonitorElement * mpT_Jet2_unmatched;

MonitorElement * mHadEnergy_Jet1_unmatched;
MonitorElement * mEmEnergy_Jet1_unmatched;
MonitorElement * mChargedHadronEnergy_Jet1_unmatched;
MonitorElement * mNeutralHadronEnergy_Jet1_unmatched;
MonitorElement * mChargedEmEnergy_Jet1_unmatched;
MonitorElement * mNeutralEmEnergy_Jet1_unmatched;
MonitorElement * mChargedMuEnergy_Jet1_unmatched;

MonitorElement * mHadEnergy_Jet2_unmatched;
MonitorElement * mEmEnergy_Jet2_unmatched;
MonitorElement * mChargedHadronEnergy_Jet2_unmatched;
MonitorElement * mNeutralHadronEnergy_Jet2_unmatched;
MonitorElement * mChargedEmEnergy_Jet2_unmatched;
MonitorElement * mNeutralEmEnergy_Jet2_unmatched;
MonitorElement * mChargedMuEnergy_Jet2_unmatched;

struct MyJet{
int id;
float pt;
float eta;
float phi;
};


typedef std::pair< MyJet, MyJet > ABJetPair;

struct CompareMatchedJets {
//! A-B jet match
bool operator()(const ABJetPair &A1, const ABJetPair &A2){
MyJet jet1_pair1 = A1.first; //! Jet1 1st pair
MyJet jet2_pair1 = A1.second; //! Jet2 1st pair
MyJet jet1_pair2 = A2.first; //! Jet1 2nd pair
MyJet jet2_pair2 = A2.second; //! Jet2 2nd pair
float delr1 = deltaRR(jet1_pair1.eta, jet1_pair1.phi, jet2_pair1.eta, jet2_pair1.phi);
float delr2 = deltaRR(jet1_pair2.eta, jet1_pair2.phi, jet2_pair2.eta, jet2_pair2.phi);

return ((delr1 < delr2) && (jet1_pair1.pt > jet1_pair2.pt));

}
};


typedef std::multiset< ABJetPair, CompareMatchedJets > ABMatchedJets;
typedef std::multiset< ABJetPair >::iterator ABItr;

static float deltaRR(float eta1, float phi1, float eta2, float phi2)
{
float deta = eta1 - eta2;
float dphi = fabs(phi1 - phi2);
if(dphi > M_PI )dphi -= 2*M_PI;
float dr = sqrt(deta*deta + dphi*dphi);
return dr;
}



};



#endif
32 changes: 24 additions & 8 deletions DQMOffline/JetMET/python/jetAnalyzer_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,40 @@
jetDQMAnalyzerSequenceMiniAOD = cms.Sequence(jetDQMAnalyzerAk4PFCHSUncleanedMiniAOD*jetDQMAnalyzerAk4PFCHSCleanedMiniAOD)

jetDQMAnalyzerSequenceHI = cms.Sequence(jetDQMAnalyzerIC5CaloHIUncleaned
* jetDQMMatchAkPu3CaloAkVs3Calo
* jetDQMMatchAkPu3PFAkVs3PF
* jetDQMMatchAkPu3CaloAkPu3PF
* jetDQMMatchAkVs3CaloAkVs3PF

* jetDQMMatchAkPu4CaloAkVs4Calo
* jetDQMMatchAkPu4PFAkVs4PF
* jetDQMMatchAkPu4CaloAkPu4PF
* jetDQMMatchAkVs4CaloAkVs4PF

* jetDQMMatchAkPu5CaloAkVs5Calo
* jetDQMMatchAkPu5PFAkVs5PF
* jetDQMMatchAkPu5CaloAkPu5PF
* jetDQMMatchAkVs5CaloAkVs5PF

* jetDQMAnalyzerAkPU3Calo
#* jetDQMAnalyzerAkPU4Calo
#* jetDQMAnalyzerAkPU5Calo
* jetDQMAnalyzerAkPU4Calo
* jetDQMAnalyzerAkPU5Calo

* jetDQMAnalyzerAkPU3PF
#* jetDQMAnalyzerAkPU4PF
#* jetDQMAnalyzerAkPU5PF
* jetDQMAnalyzerAkPU4PF
* jetDQMAnalyzerAkPU5PF

#* jetDQMAnalyzerAkVs2Calo
* jetDQMAnalyzerAkVs3Calo
#* jetDQMAnalyzerAkVs4Calo
#* jetDQMAnalyzerAkVs5Calo
* jetDQMAnalyzerAkVs4Calo
* jetDQMAnalyzerAkVs5Calo
#* jetDQMAnalyzerAkVs6Calo
#* jetDQMAnalyzerAkVs7Calo

#* jetDQMAnalyzerAkVs2PF
* jetDQMAnalyzerAkVs3PF
#* jetDQMAnalyzerAkVs4PF
#* jetDQMAnalyzerAkVs5PF
* jetDQMAnalyzerAkVs4PF
* jetDQMAnalyzerAkVs5PF
#* jetDQMAnalyzerAkVs6PF
#* jetDQMAnalyzerAkVs7PF

Expand All @@ -43,3 +58,4 @@
#* jetDQMAnalyzerAk4PFCleaned
#* jetDQMAnalyzerAk5PFCleaned
)

Loading

0 comments on commit eb5b83b

Please sign in to comment.