00001 // -*- C++ -*- 00002 // 00003 // Package: L25TauAnalyzer 00004 // Class: L25TauAnalyzer 00005 // 00013 // 00014 // Original Author: Eduardo Luiggi 00015 // Created: Fri Apr 4 16:37:44 CDT 2008 00016 // $Id: L25TauAnalyzer.h,v 1.6 2008/10/03 19:09:11 bachtis Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 00024 // user include files 00025 #include "FWCore/Framework/interface/Frameworkfwd.h" 00026 #include "FWCore/Framework/interface/EDAnalyzer.h" 00027 #include "FWCore/Framework/interface/Event.h" 00028 #include "FWCore/Framework/interface/MakerMacros.h" 00029 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00030 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00031 #include "FWCore/ServiceRegistry/interface/Service.h" 00032 #include "DataFormats/Common/interface/Ref.h" 00033 #include "DataFormats/JetReco/interface/CaloJet.h" 00034 #include "DataFormats/JetReco/interface/JetTracksAssociation.h" 00035 #include "DataFormats/TrackReco/interface/Track.h" 00036 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h" 00037 #include "DataFormats/Math/interface/LorentzVector.h" 00038 #include "DataFormats/Math/interface/Vector3D.h" 00039 #include "DataFormats/JetReco/interface/GenJet.h" 00040 #include "HepMC/GenParticle.h" 00041 #include "TLorentzVector.h" 00042 #include <vector> 00043 #include <string> 00044 #include <TTree.h> 00045 #include <TFile.h> 00046 #include "TH1.h" 00047 00048 00049 typedef math::XYZTLorentzVectorD LV; 00050 typedef std::vector<LV> LVColl; 00051 00052 00053 00054 00055 struct MatchElementL25 { 00056 bool matched; 00057 double deltar; 00058 double mcEta; 00059 double mcEt; 00060 00061 }; 00062 00063 class L25TauAnalyzer : public edm::EDAnalyzer { 00064 public: 00065 explicit L25TauAnalyzer(const edm::ParameterSet&); 00066 ~L25TauAnalyzer(); 00067 00068 private: 00069 00070 virtual void beginJob(const edm::EventSetup&) ; 00071 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00072 virtual void endJob() ; 00073 MatchElementL25 match(const reco::Jet&,const LVColl&); 00074 float trackDrRMS(const reco::IsolatedTauTagInfo&,const reco::TrackRefVector&); 00075 00076 edm::InputTag jetTagSrc_; 00077 edm::InputTag jetMCTagSrc_; 00078 std::string rootFile_; 00079 bool signal_; 00080 float minTrackPt_; 00081 float signalCone_; 00082 float isolationCone_; 00083 00084 00085 TFile *l25file; 00086 TTree *l25tree; 00087 00088 int numPixTrkInJet; 00089 int numQPixTrkInJet; 00090 int numQPixTrkInSignalCone; 00091 int numQPixTrkInAnnulus; 00092 float jetEt; 00093 float jetEta; 00094 float jetMCEt; 00095 float jetMCEta; 00096 float trkDrRMS; 00097 float trkDrRMSA; 00098 float leadSignalTrackPt; 00099 float leadTrkJetDeltaR; 00100 bool hasLeadTrk; 00101 };