CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DQMOffline/Trigger/interface/HLTTauRefProducer.h

Go to the documentation of this file.
00001 /*HLTTauRefProducer
00002 Producer that creates LorentzVector Collections
00003 from offline reconstructed quantities to be used
00004 in Offline Trigger DQM etc
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 // TAU includes
00021 #include "DataFormats/TauReco/interface/PFTau.h"
00022 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
00023 #include "DataFormats/TauReco/interface/CaloTau.h"
00024 
00025 // ELECTRON includes
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 // MUON includes
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 //Photon Includes
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