Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef HLTTauRefProducer_h
00008 #define HLTTauRefProducer_h
00009
00010 #include "FWCore/Framework/interface/Frameworkfwd.h"
00011 #include "FWCore/Framework/interface/EDProducer.h"
00012 #include "FWCore/Framework/interface/Event.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "FWCore/Utilities/interface/InputTag.h"
00015 #include "DataFormats/Common/interface/Handle.h"
00016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00017 #include "DataFormats/Math/interface/LorentzVector.h"
00018
00019 #include "TLorentzVector.h"
00020
00021 #include "DataFormats/TauReco/interface/PFTau.h"
00022 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
00023 #include "DataFormats/TauReco/interface/CaloTau.h"
00024
00025
00026 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00027 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00028 #include "DataFormats/EgammaCandidates/interface/Electron.h"
00029 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
00030 #include "AnalysisDataFormats/Egamma/interface/ElectronIDAssociation.h"
00031 #include "AnalysisDataFormats/Egamma/interface/ElectronID.h"
00032 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
00033 #include "DataFormats/TrackReco/interface/Track.h"
00034
00035 #include "DataFormats/MuonReco/interface/Muon.h"
00036 #include "DataFormats/JetReco/interface/CaloJet.h"
00037 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00038 #include "TLorentzVector.h"
00039 #include "DataFormats/Math/interface/deltaR.h"
00040
00041
00042 #include "DataFormats/EgammaCandidates/interface/Photon.h"
00043 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h"
00044
00045 #include <vector>
00046 #include <string>
00047
00048 class HLTTauRefProducer : public edm::EDProducer {
00049
00050 public:
00051 explicit HLTTauRefProducer(const edm::ParameterSet&);
00052 ~HLTTauRefProducer();
00053
00054 virtual void produce(edm::Event&, const edm::EventSetup&);
00055
00056 private:
00057 typedef math::XYZTLorentzVectorD LorentzVector;
00058 typedef std::vector<LorentzVector> LorentzVectorCollection;
00059
00060 edm::InputTag PFTaus_;
00061 std::vector<edm::InputTag> PFTauDis_;
00062 bool doPFTaus_;
00063 double ptMinPFTau_;
00064
00065
00066 edm::InputTag Electrons_;
00067 bool doElectrons_;
00068 edm::InputTag e_idAssocProd_;
00069 edm::InputTag e_ctfTrackCollection_;
00070 double ptMinElectron_;
00071 bool e_doID_;
00072 bool e_doTrackIso_;
00073 double e_trackMinPt_;
00074 double e_lipCut_;
00075 double e_minIsoDR_;
00076 double e_maxIsoDR_;
00077 double e_isoMaxSumPt_;
00078 bool doElecFromZ_;
00079 double e_zMmin_,e_zMmax_;
00080 double e_FromZet_;
00081
00082 edm::InputTag Photons_;
00083 bool doPhotons_;
00084 double photonEcalIso_;
00085 double ptMinPhoton_;
00086
00087
00088 edm::InputTag Muons_;
00089 bool doMuons_;
00090 double ptMinMuon_;
00091
00092
00093 edm::InputTag Jets_;
00094 bool doJets_;
00095 double ptMinJet_;
00096
00097 edm::InputTag Towers_;
00098 bool doTowers_;
00099 double ptMinTower_;
00100 double towerIsol_;
00101
00102 double etaMax;
00103
00104 void doPFTaus(edm::Event&,const edm::EventSetup&);
00105 void doMuons(edm::Event&,const edm::EventSetup&);
00106 void doElectrons(edm::Event&,const edm::EventSetup&);
00107 void doElectronsFromZ(edm::Event&,const edm::EventSetup&,std::auto_ptr<LorentzVectorCollection>&);
00108 double ElectronTrkIsolation(const reco::TrackCollection*, const reco::GsfElectron&);
00109 void doJets(edm::Event&,const edm::EventSetup&);
00110 void doPhotons(edm::Event&,const edm::EventSetup&);
00111 void doTowers(edm::Event&,const edm::EventSetup&);
00112
00113 };
00114
00115 #endif