CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SUSY_HLT_Electron_BJet.cc
Go to the documentation of this file.
8 
10 {
11  edm::LogInfo("SUSY_HLT_Electron_BJet") << "Constructor SUSY_HLT_Electron_BJet::SUSY_HLT_Electron_BJet " << std::endl;
12  // Get parameters from configuration file
13  theTrigSummary_ = consumes<trigger::TriggerEvent>(ps.getParameter<edm::InputTag>("trigSummary"));
14  theElectronCollection_ = consumes<reco::GsfElectronCollection>(ps.getParameter<edm::InputTag>("ElectronCollection"));
15  thePfJetCollection_ = consumes<reco::PFJetCollection>(ps.getParameter<edm::InputTag>("pfJetCollection"));
16  theCaloJetCollection_ = consumes<reco::CaloJetCollection>(ps.getParameter<edm::InputTag>("caloJetCollection"));
17  triggerResults_ = consumes<edm::TriggerResults>(ps.getParameter<edm::InputTag>("TriggerResults"));
18  HLTProcess_ = ps.getParameter<std::string>("HLTProcess");
19  triggerPath_ = ps.getParameter<std::string>("TriggerPath");
20  triggerFilterEle_ = ps.getParameter<edm::InputTag>("TriggerFilterEle");
21  triggerFilterJet_ = ps.getParameter<edm::InputTag>("TriggerFilterJet");
22  ptThrJet_ = ps.getUntrackedParameter<double>("PtThrJet");
23  etaThrJet_ = ps.getUntrackedParameter<double>("EtaThrJet");
24 }
25 
27 {
28  edm::LogInfo("SUSY_HLT_Electron_BJet") << "Destructor SUSY_HLT_Electron_BJet::~SUSY_HLT_Electron_BJet " << std::endl;
29 }
30 
32 {
33 
34  bool changed;
35 
36  if (!fHltConfig.init(run, e, HLTProcess_, changed)) {
37  edm::LogError("SUSY_HLT_Electron_BJet") << "Initialization of HLTConfigProvider failed!!";
38  return;
39  }
40 
41  bool pathFound = false;
42  const std::vector<std::string> allTrigNames = fHltConfig.triggerNames();
43  for(size_t j = 0; j <allTrigNames.size(); ++j) {
44  if(allTrigNames[j].find(triggerPath_) != std::string::npos) {
45  pathFound = true;
46  }
47  }
48 
49  if(!pathFound) {
50  LogDebug("SUSY_HLT_Electron_BJet") << "Path not found" << "\n";
51  return;
52  }
53 
54  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::beginRun" << std::endl;
55 }
56 
58 {
59  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::bookHistograms" << std::endl;
60  //book at beginRun
61  bookHistos(ibooker_);
62 }
63 
65  edm::EventSetup const& context)
66 {
67  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::beginLuminosityBlock" << std::endl;
68 }
69 
70 
71 
73  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::analyze" << std::endl;
74 
75  //-------------------------------
76  //--- Trigger
77  //-------------------------------
79  e.getByToken(triggerResults_,hltresults);
80  if(!hltresults.isValid()){
81  edm::LogError ("SUSY_HLT_Electron_BJet") << "invalid collection: TriggerResults" << "\n";
82  return;
83  }
85  e.getByToken(theTrigSummary_, triggerSummary);
86  if(!triggerSummary.isValid()) {
87  edm::LogError ("SUSY_HLT_Electron_BJet") << "invalid collection: TriggerSummary" << "\n";
88  return;
89  }
90 
91 
92  //get online objects
93  std::vector<float> ptElectron;//, etaElectron, phiElectron;
94  size_t filterIndex = triggerSummary->filterIndex( triggerFilterEle_ );
95  trigger::TriggerObjectCollection triggerObjects = triggerSummary->getObjects();
96  if( !(filterIndex >= triggerSummary->sizeFilters()) ){
97  const trigger::Keys& keys = triggerSummary->filterKeys( filterIndex );
98  for( size_t j = 0; j < keys.size(); ++j ){
99  trigger::TriggerObject foundObject = triggerObjects[keys[j]];
100  if(fabs(foundObject.id()) == 11){ //It's an electron
101 
102  bool same= false;
103  for(unsigned int x=0;x<ptElectron.size();x++){
104  if(fabs(ptElectron[x] - foundObject.pt()) < 0.01)
105  same = true;
106  }
107 
108  if(!same){
109  h_triggerElePt->Fill(foundObject.pt());
110  h_triggerEleEta->Fill(foundObject.eta());
111  h_triggerElePhi->Fill(foundObject.phi());
112  ptElectron.push_back(foundObject.pt());
113  }
114  }
115  }
116  }
117 
118  size_t filterIndex2 = triggerSummary->filterIndex( triggerFilterJet_ );
119  if( !(filterIndex2 >= triggerSummary->sizeFilters()) ){
120  const trigger::Keys& keys = triggerSummary->filterKeys( filterIndex2 );
121  for( size_t j = 0; j < keys.size(); ++j ){
122  trigger::TriggerObject foundObject = triggerObjects[keys[j]];
123  h_triggerJetPt->Fill(foundObject.pt());
124  h_triggerJetEta->Fill(foundObject.eta());
125  h_triggerJetPhi->Fill(foundObject.phi());
126  }
127  }
128 
129 
130 }
131 
132 
134 {
135  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::endLuminosityBlock" << std::endl;
136 }
137 
138 
140 {
141  edm::LogInfo("SUSY_HLT_Electron_BJet") << "SUSY_HLT_Electron_BJet::endRun" << std::endl;
142 }
143 
145 {
146  ibooker_.cd();
147  ibooker_.setCurrentFolder("HLT/SUSYBSM/" + triggerPath_);
148 
149  //offline quantities
150 
151  //online quantities
152  h_triggerElePt = ibooker_.book1D("triggerElePt", "Trigger Electron Pt; GeV", 50, 0.0, 500.0);
153  h_triggerEleEta = ibooker_.book1D("triggerEleEta", "Trigger Electron Eta", 20, -3.0, 3.0);
154  h_triggerElePhi = ibooker_.book1D("triggerElePhi", "Trigger Electron Phi", 20, -3.5, 3.5);
155 
156  h_triggerJetPt = ibooker_.book1D("triggerJetPt", "Trigger Jet Pt; GeV", 50, 0.0, 500.0);
157  h_triggerJetEta = ibooker_.book1D("triggerJetEta", "Trigger Jet Eta", 20, -3.0, 3.0);
158  h_triggerJetPhi = ibooker_.book1D("triggerJetPhi", "Trigger Jet Phi", 20, -3.5, 3.5);
159 
160 
161  ibooker_.cd();
162 }
163 
164 //define this as a plug-in
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
int id() const
getters
Definition: TriggerObject.h:55
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
float phi() const
Definition: TriggerObject.h:58
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollection_
void cd(void)
Definition: DQMStore.cc:266
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
const std::vector< std::string > & triggerNames() const
names of trigger paths
SUSY_HLT_Electron_BJet(const edm::ParameterSet &ps)
float eta() const
Definition: TriggerObject.h:57
MonitorElement * h_triggerJetPhi
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
void Fill(long long x)
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
void analyze(edm::Event const &e, edm::EventSetup const &eSetup)
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:22
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
int j
Definition: DBlmapReader.cc:9
void beginLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup)
void endLuminosityBlock(edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup)
bool isValid() const
Definition: HandleBase.h:75
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:81
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
std::vector< size_type > Keys
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
MonitorElement * h_triggerJetEta
MonitorElement * h_triggerElePhi
MonitorElement * h_triggerEleEta
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
Definition: Run.h:43
void bookHistos(DQMStore::IBooker &)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override