CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/HLTrigger/HLTanalyzers/interface/HLTJets.h

Go to the documentation of this file.
00001 #ifndef HLTJETS_H
00002 #define HLTJETS_H
00003 
00004 #include "TH1.h"
00005 #include "TH2.h"
00006 #include "TFile.h"
00007 #include "TNamed.h"
00008 #include <vector>
00009 #include <map>
00010 #include "TROOT.h"
00011 #include "TChain.h"
00012 
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 
00015 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00016 #include "DataFormats/JetReco/interface/PFJetCollection.h"
00017 #include "DataFormats/JetReco/interface/GenJetCollection.h"
00018 
00019 #include "DataFormats/METReco/interface/CaloMET.h"
00020 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00021 
00022 #include "DataFormats/METReco/interface/GenMET.h"
00023 #include "DataFormats/METReco/interface/GenMETCollection.h"
00024 #include "DataFormats/METReco/interface/METCollection.h"
00025 
00026 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00027 #include "DataFormats/Candidate/interface/Candidate.h"
00028 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00029 
00030 #include "DataFormats/TauReco/interface/HLTTau.h"
00031 #include "DataFormats/TauReco/interface/PFTau.h"
00032 #include "DataFormats/TauReco/interface/PFTauFwd.h"
00033 
00034 #include "HLTrigger/HLTanalyzers/interface/JetUtil.h"
00035 #include "HLTrigger/HLTanalyzers/interface/CaloTowerBoundries.h"
00036 
00037 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
00038 
00039 typedef std::vector<std::string> MyStrings;
00040 
00048 class GetPtGreater {
00049 public:
00050     template <typename T> bool operator () (const T& i, const T& j) {
00051         return (i.getPt() > j.getPt());
00052     }
00053 };
00054 
00055 class GetPFPtGreater {
00056 public:
00057     template <typename T> bool operator () (const T& i, const T& j) {
00058         return (i.pt() > j.pt());
00059     }
00060 };
00061 
00062 class HLTJets {
00063 public:
00064     HLTJets(); 
00065     
00066     void setup(const edm::ParameterSet& pSet, TTree* tree);
00067     
00069     void analyze(const edm::Handle<reco::CaloJetCollection>      & recojets,
00070                  const edm::Handle<reco::CaloJetCollection>      & corjets,
00071                  const edm::Handle<reco::GenJetCollection>       & gjets,
00072                  const edm::Handle<reco::CaloMETCollection>      & rmets,
00073                  const edm::Handle<reco::GenMETCollection>       & gmets,
00074                  const edm::Handle<reco::METCollection>          & ht,                
00075                  const edm::Handle<reco::HLTTauCollection>       & myHLTTau,
00076                  const edm::Handle<reco::PFTauCollection>        & myHLTPFTau,
00077                  const edm::Handle<reco::PFJetCollection>        & myHLTPFJets,                
00078                  const edm::Handle<reco::PFTauCollection>        & myRecoPFTau,
00079                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrByTanCOnePercent,
00080                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrByTanCHalfPercent,
00081                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrByTanCQuarterPercent,
00082                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrByTanCTenthPercent,
00083                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrByIsolation,
00084                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrAgainstElec,
00085                  const edm::Handle<reco::PFTauDiscriminator>     & theRecoPFTauDiscrAgainstMuon,
00086                  const edm::Handle<reco::PFJetCollection>        & recoPFJets,                
00087                  const edm::Handle<CaloTowerCollection>          & caloTowers,        
00088                  double thresholdForSavingTowers,
00089                  double                minPtCH,
00090                  double                minPtGamma,
00091                  TTree * tree);
00092     
00093 private:
00094     
00095     // Tree variables
00096     float *jcalpt, *jcalphi, *jcaleta, *jcale, *jcalemf, *jcaln90;
00097     float *jcorcalpt, *jcorcalphi, *jcorcaleta, *jcorcale, *jcorcalemf, *jcorcaln90;
00098     float *jgenpt, *jgenphi, *jgeneta, *jgene;
00099     float *towet, *toweta, *towphi, *towen, *towem, *towhd, *towoe;
00100     float mcalmet,mcalphi,mcalsum;
00101     float htcalet,htcalphi,htcalsum;
00102     float mgenmet,mgenphi,mgensum;
00103     int njetcal,ncorjetcal,njetgen,ntowcal;
00104     
00105     // Taus
00106     float *l2tauemiso, *l25tauPt;
00107     int *l3tautckiso;
00108     int nohtau;
00109     float *tauEta, *tauPt, *tauPhi; 
00110     //PFTau
00111     int nohPFTau;
00112     float *ohpfTauEta,*ohpfTauPhi,*ohpfTauPt,*ohpfTauJetPt,*ohpfTauLeadTrackPt,*ohpfTauLeadPionPt;
00113     float *ohpfTauTrkIso, *ohpfTauGammaIso;
00114     //PFJets
00115     float pfMHT;    
00116     int nohPFJet;
00117     float *pfJetEta, *pfJetPhi, *pfJetPt;
00118     //Reco PFTau
00119     int nRecoPFTau;
00120     float *recopfTauEta,*recopfTauPhi,*recopfTauPt,*recopfTauJetPt,*recopfTauLeadTrackPt,*recopfTauLeadPionPt;
00121     int   *recopfTauTrkIso, *recopfTauGammaIso;
00122     float *recopfTauDiscrByTancOnePercent,*recopfTauDiscrByTancHalfPercent, *recopfTauDiscrByTancQuarterPercent, *recopfTauDiscrByTancTenthPercent, *recopfTauDiscrByIso, *recopfTauDiscrAgainstMuon, *recopfTauDiscrAgainstElec;
00123     //Reco PF jets
00124     float *jpfrecopt, *jpfrecophi, *jpfrecoeta, *jpfreconeutralHadronFraction, *jpfreconeutralEMFraction, *jpfrecochargedHadronFraction, *jpfrecochargedEMFraction;
00125     int  *jpfreconeutralMultiplicity, *jpfrecochargedMultiplicity;
00126     int nrpj;
00127 
00128   
00129     // input variables
00130     bool _Monte,_Debug;
00131     float _CalJetMin, _GenJetMin;
00132     
00133     int evtCounter;
00134     
00135     const float etaBarrel() {return 1.4;}
00136     
00137     //create maps linking histogram pointers to HCAL Channel hits and digis
00138     TString gjetpfx, rjetpfx,gmetpfx, rmetpfx,calopfx;
00139     
00140 };
00141 
00142 #endif