CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTTauDQMSource.cc
Go to the documentation of this file.
2 
3 
4 //
5 // constructors and destructor
6 //
8 {
9 
10  //Get General Monitoring Parameters
11  config_ = ps.getParameter<std::vector<edm::ParameterSet> >("MonitorSetup");
12  configType_ = ps.getParameter<std::vector<std::string> >("ConfigType");
13  doRefAnalysis_ = ps.getParameter<bool>("doMatching");
14  NPtBins_ = ps.getUntrackedParameter<int>("PtHistoBins",20);
15  NEtaBins_ = ps.getUntrackedParameter<int>("EtaHistoBins",20);
16  NPhiBins_ = ps.getUntrackedParameter<int>("PhiHistoBins",32);
17  EtMax_ = ps.getUntrackedParameter<double>("EtHistoMax",100);
18  L1MatchDr_ = ps.getUntrackedParameter<double>("L1MatchDeltaR",0.5);
19  HLTMatchDr_ = ps.getUntrackedParameter<double>("HLTMatchDeltaR",0.3);
20 
21  refFilter_ = ps.getUntrackedParameter<std::vector<edm::InputTag> >("matchFilter");
22  refID_ = ps.getUntrackedParameter<std::vector<int> >("matchObjectID");
23  ptThres_ = ps.getUntrackedParameter<std::vector<double> >("matchObjectMinPt");
24  prescaleEvt_ = ps.getUntrackedParameter<int>("prescaleEvt", -1);
25 
26  triggerEvent_ = ps.getParameter < edm::InputTag > ("TriggerEvent");
27 
28  //Read The Configuration
29  for(unsigned int i=0;i<config_.size();++i)
30  {
31 
32  if(configType_[i] == "L1")
33  {
34  HLTTauDQML1Plotter tmp(config_[i],NPtBins_,NEtaBins_,NPhiBins_,EtMax_,doRefAnalysis_,L1MatchDr_);
35  l1Plotters.push_back(tmp);
36  }
37 
38  if(configType_[i] == "Calo")
39  {
40  HLTTauDQMCaloPlotter tmp(config_[i],NPtBins_,NEtaBins_,NPhiBins_,EtMax_,doRefAnalysis_,HLTMatchDr_);
41  caloPlotters.push_back(tmp);
42  }
43 
44  else if(configType_[i] == "Track")
45  {
46  HLTTauDQMTrkPlotter tmp(config_[i],NPtBins_,NEtaBins_,NPhiBins_,EtMax_,doRefAnalysis_,HLTMatchDr_);
47  trackPlotters.push_back(tmp);
48  }
49 
50  else if(configType_[i] == "Path")
51  {
52  HLTTauDQMPathPlotter tmp(config_[i],doRefAnalysis_);
53  pathPlotters.push_back(tmp);
54  }
55 
56  else if(configType_[i] == "LitePath")
57  {
58  HLTTauDQMLitePathPlotter tmp(config_[i],NPtBins_,NEtaBins_,NPhiBins_,EtMax_,doRefAnalysis_,HLTMatchDr_);
59  litePathPlotters.push_back(tmp);
60  }
61 
62 
63  else if(configType_[i] == "Summary")
64  {
66  summaryPlotters.push_back(tmp);
67  }
68 
69 
70  }
71 }
72 
74 {
75 
76  // do anything here that needs to be done at desctruction time
77  // (e.g. close files, deallocate resources etc.)
78 
79 }
80 
81 
82 //--------------------------------------------------------
83 void
85 
86 }
87 
88 //--------------------------------------------------------
89 void HLTTauDQMSource::beginRun(const edm::Run& r, const edm::EventSetup& context) {
90 
91 }
92 
93 //--------------------------------------------------------
95  const edm::EventSetup& context) {
96 
97 }
98 
99 // ----------------------------------------------------------
100 void
102 {
103  using namespace std;
104  using namespace edm;
105  using namespace reco;
106  using namespace l1extra;
107  using namespace trigger;
108 
109 
110  //Apply the prescaler
112  {
113  //Do Analysis here
114 
115  //Create dummy Match Collections
116  std::vector<LVColl> refC;
117 
118  if(doRefAnalysis_)
119  {
120  Handle<TriggerEvent> trigEv;
121 
122  //get The triggerEvent
123  bool gotTEV =true;
124  try {
125  gotTEV*= iEvent.getByLabel(triggerEvent_,trigEv);
126  }
127  catch (cms::Exception& exception) {
128  gotTEV =false;
129  }
130 
131 
132 
133  if(gotTEV)
134  for(unsigned int i=0;i<refFilter_.size();++i)
135  {
136  size_t ID =trigEv->filterIndex(refFilter_[i]);
137  refC.push_back(getFilterCollection(ID,refID_[i],*trigEv,ptThres_[i]));
138  }
139  }
140 
141  //fill the empty slots with empty collections
142  LVColl dummy;
143  for(int k=refFilter_.size();k<3;k++)
144  {
145  refC.push_back(dummy);
146  }
147 
148 
149 
150  //Path Plotters
151  for(unsigned int i=0;i<pathPlotters.size();++i)
152  pathPlotters[i].analyze(iEvent,iSetup,refC);
153 
154  //Lite Path Plotters
155  for(unsigned int i=0;i<litePathPlotters.size();++i)
156  litePathPlotters[i].analyze(iEvent,iSetup,refC);
157 
158  //L1 Plotters
159  for(unsigned int i=0;i<l1Plotters.size();++i)
160  l1Plotters[i].analyze(iEvent,iSetup,refC);
161 
162  //Calo Plotters
163  for(unsigned int i=0;i<caloPlotters.size();++i)
164  caloPlotters[i].analyze(iEvent,iSetup,refC[0]);
165 
166  //Track Plotters
167  for(unsigned int i=0;i<trackPlotters.size();++i)
168  trackPlotters[i].analyze(iEvent,iSetup,refC[0]);
169 
170  }
171  else
172  counterEvt_++;
173 
174 }
175 
176 
177 
178 
179 //--------------------------------------------------------
181  const edm::EventSetup& context) {
182 
183  //Summary Plotters
184  for(unsigned int i=0;i<summaryPlotters.size();++i) summaryPlotters[i].plot();
185 
186 }
187 //--------------------------------------------------------
188 void HLTTauDQMSource::endRun(const edm::Run& r, const edm::EventSetup& context){
189 }
190 //--------------------------------------------------------
192  return;
193 }
194 
195 
196 LVColl
197 HLTTauDQMSource::getFilterCollection(size_t index,int id,const trigger::TriggerEvent& trigEv,double ptCut)
198 {
199  using namespace trigger;
200  //Create output Collection
201  LVColl out;
202  //get All the final trigger objects
203  const TriggerObjectCollection& TOC(trigEv.getObjects());
204 
205 
206  //filter index
207  if(index!=trigEv.sizeFilters())
208  {
209  const Keys& KEYS = trigEv.filterKeys(index);
210  for(size_t i = 0;i<KEYS.size();++i)
211  {
212  const TriggerObject& TO(TOC[KEYS[i]]);
213  LV a(TO.px(),TO.py(),TO.pz(),sqrt(TO.px()*TO.px()+TO.py()*TO.py()+TO.pz()*TO.pz()));
214  if(abs(TO.id()) == id)
215  if(a.pt()>ptCut)
216  out.push_back(a);
217  }
218  }
219  return out;
220 }
221 
222 
223 
224 
225 //LVColl HLTTauDQMSource::getFilterCollection(size_t filterID,int id,const trigger::TriggerEventWithRefs& trigEv,double ptMin)
226 //{
227 // using namespace trigger;
228 //
229 // LVColl out;
230 //
231 //
232 // if(id==trigger::TriggerL1IsoEG ||trigger::TriggerL1NoIsoEG)
233 // {
234 // VRl1em obj;
235 // trigEv.getObjects(filterID,id,obj);
236 // for(size_t i=0;i<obj.size();++i)
237 // if(&obj[i])
238 // if(obj[i]->pt()>ptMin)
239 // out.push_back(obj[i]->p4());
240 // }
241 //
242 // if(id==trigger::TriggerL1Mu)
243 // {
244 // VRl1muon obj;
245 // trigEv.getObjects(filterID,id,obj);
246 // for(size_t i=0;i<obj.size();++i)
247 // if(&obj[i])
248 // if(obj[i]->pt()>ptMin)
249 // out.push_back(obj[i]->p4());
250 // }
251 //
252 //
253 // if(id==trigger::TriggerMuon)
254 // {
255 // VRmuon obj;
256 // trigEv.getObjects(filterID,id,obj);
257 // for(size_t i=0;i<obj.size();++i)
258 // if(&obj[i])
259 // if(obj[i]->pt()>ptMin)
260 // out.push_back(obj[i]->p4());
261 // }
262 //
263 // if(id==trigger::TriggerElectron)
264 // {
265 // VRelectron obj;
266 // trigEv.getObjects(filterID,id,obj);
267 // for(size_t i=0;i<obj.size();++i)
268 // if(&obj[i])
269 // if(obj[i]->pt()>ptMin)
270 // out.push_back(obj[i]->p4());
271 // }
272 
273 // if(id==trigger::TriggerL1TauJet)
274 // {
275 // VRl1jet obj;
276 // trigEv.getObjects(filterID,id,obj);
277 // for(size_t i=0;i<obj.size();++i)
278 // if(&obj[i])
279 // if(obj[i]->pt()>ptMin)
280 // out.push_back(obj[i]->p4());
281 // }
282 
283 // if(id==trigger::TriggerTau)
284 // {
285 // VRjet obj;
286 // trigEv.getObjects(filterID,id,obj);
287 // for(size_t i=0;i<obj.size();++i)
288 // if(&obj[i])
289 // if(obj[i]->pt()>ptMin)
290 // out.push_back(obj[i]->p4());
291 // }
292 
293 // return out;
294 //
T getParameter(std::string const &) const
std::vector< double > ptThres_
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
Luminosity Block.
int id() const
getters
Definition: TriggerObject.h:57
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:27
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:130
uint32_t ID
Definition: Definitions.h:26
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:106
#define abs(x)
Definition: mlp_lapack.h:159
std::vector< edm::InputTag > refFilter_
int prescaleEvt_
counter
std::vector< HLTTauDQMPathPlotter > pathPlotters
LVColl getFilterCollection(size_t index, int id, const trigger::TriggerEvent &trigEv, double)
std::vector< int > refID_
math::XYZTLorentzVectorD LV
std::vector< edm::ParameterSet > config_
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:24
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
DQM Client Diagnostic.
int iEvent
Definition: GenABIO.cc:243
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:100
HLTTauDQMSource(const edm::ParameterSet &)
T sqrt(T t)
Definition: SSEVec.h:28
std::vector< std::string > configType_
void beginJob()
BeginJob.
void analyze(const edm::Event &e, const edm::EventSetup &c)
Fake Analyze.
std::vector< LV > LVColl
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
int k[5][pyjets_maxn]
tuple out
Definition: dbtoconf.py:99
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:83
std::vector< HLTTauDQMCaloPlotter > caloPlotters
std::vector< size_type > Keys
std::vector< HLTTauDQMTrkPlotter > trackPlotters
std::vector< HLTTauDQML1Plotter > l1Plotters
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
double a
Definition: hdecay.h:121
void endJob()
Endjob.
std::vector< HLTTauDQMLitePathPlotter > litePathPlotters
edm::InputTag triggerEvent_
every n events
std::vector< HLTTauDQMSummaryPlotter > summaryPlotters
Definition: Run.h:31