Go to the documentation of this file.00001 #ifndef HLTONIASOURCE_H
00002 #define HLTONIASOURCE_H
00003
00004
00005 #include <map>
00006
00007
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "FWCore/Framework/interface/EDAnalyzer.h"
00010 #include "FWCore/Framework/interface/Event.h"
00011 #include "FWCore/Framework/interface/MakerMacros.h"
00012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00013 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
00014 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
00015 #include "DQMServices/Core/interface/DQMStore.h"
00016 #include "DQMServices/Core/interface/MonitorElement.h"
00017 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00018 #include "DataFormats/TrackReco/interface/Track.h"
00019
00020
00021 class PtGreaterRef {
00022 public:
00023 template <typename T> bool operator () (const T& i, const T& j) {
00024 return (i->pt() > j->pt());
00025 }
00026 };
00027
00028 class HLTOniaSource : public edm::EDAnalyzer {
00029 public:
00030 explicit HLTOniaSource(const edm::ParameterSet&);
00031 ~HLTOniaSource();
00032
00033
00034 private:
00035 virtual void beginJob() ;
00036 virtual void beginRun(const edm::Run &, const edm::EventSetup &);
00037 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00038 virtual void endJob() ;
00039
00040
00041 reco::BeamSpot::Point BSPosition_;
00042
00043
00044
00045
00046 void bookOniaTriggerInvariantMassMEs( std::map<std::string, MonitorElement *> & , std::string , std::string );
00047 void bookOniaTriggerMEs( std::map<std::string, MonitorElement *> & , std::string);
00048 bool checkHLTConfiguration(const edm::Run &, const edm::EventSetup &,std::string);
00049 void fillOniaTriggerMEs( edm::Handle<reco::RecoChargedCandidateCollection> &, std::string , std::map<std::string, MonitorElement *> & );
00050 void fillOniaTriggerMEs( edm::Handle<reco::TrackCollection> &, std::string , std::map<std::string, MonitorElement *> & );
00051 void fillOniaTriggerMEs( std::vector<reco::RecoChargedCandidateRef> &, std::string , std::map<std::string, MonitorElement *> & );
00052 void fillInvariantMass(std::vector<reco::RecoChargedCandidateRef> & , reco::RecoChargedCandidateCollection & , std::string , std::string );
00053 void fillInvariantMass(std::vector<reco::RecoChargedCandidateRef> & , std::vector<reco::RecoChargedCandidateRef> &, std::string , std::string);
00054 void fillInvariantMass(std::vector<reco::RecoChargedCandidateRef> & , reco::TrackCollection & , std::string , std::string );
00055 std::string subsystemFolder_;
00056 std::string hltProcessName_;
00057
00058 std::vector< std::string> triggerPath_;
00059 std::vector<edm::InputTag> oniaMuonTag_;
00060 std::vector<edm::InputTag> pixelTagsAfterFilter_ ;
00061 std::vector<edm::InputTag> trackTagsAfterFilter_ ;
00062 edm::InputTag triggerSummaryRAWTag_;
00063 edm::InputTag pixelTag_;
00064 edm::InputTag beamSpotTag_;
00065 edm::InputTag trackTag_;
00066 DQMStore * dbe_;
00067 std::map<std::string, MonitorElement *> pixelAfterFilterME_;
00068 std::map<std::string, MonitorElement *> trackAfterFilterME_;
00069 std::map<std::string, MonitorElement *> pixelME_;
00070 std::map<std::string, MonitorElement *> muonME_;
00071 std::map<std::string, MonitorElement *> trackME_;
00072 std::map<std::string, MonitorElement *> massME_;
00073 bool hltConfigInit_;
00074
00075 };
00076
00077 #endif