CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Static Private Attributes
FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter > Class Template Reference
Inheritance diagram for FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >:
FSQ::BaseHandler

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, const edm::TriggerResults &triggerResults, const edm::TriggerNames &triggerNames, float weight) override
 
void book (DQMStore::IBooker &booker) override
 
template<class T >
int count (const edm::Event &iEvent, InputTag &input, StringCutObjectSelector< T > &sel, float weight)
 
void fillSingleObjectPlots (const TInputCandidateType &cand, float weight)
 
std::vector< std::string > findPathAndFilter (const HLTConfigProvider &hltConfig)
 
void getAndStoreTokens (edm::ConsumesCollector &&iC) override
 
template<>
void getAndStoreTokens (edm::ConsumesCollector &&iC)
 
template<>
void getAndStoreTokens (edm::ConsumesCollector &&iC)
 
template<>
void getAndStoreTokens (edm::ConsumesCollector &&iC)
 
template<>
void getAndStoreTokens (edm::ConsumesCollector &&iC)
 
std::vector< TOutputCandidateType > getBestCombination (std::vector< TOutputCandidateType > &cands)
 
void getFilteredCands (TInputCandidateType *, std::vector< TOutputCandidateType > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::Candidate::LorentzVector *, std::vector< reco::Candidate::LorentzVector > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::Track *, std::vector< int > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::GenParticle *, std::vector< int > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::Track *, std::vector< int > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::PFJet *, std::vector< reco::PFJet > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (reco::Candidate::LorentzVector *, std::vector< int > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
template<>
void getFilteredCands (trigger::TriggerObject *, std::vector< trigger::TriggerObject > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
 
 HandlerTemplate (const edm::ParameterSet &iConfig, triggerExpression::Data &eventCache)
 
 ~HandlerTemplate () override=default
 
- Public Member Functions inherited from FSQ::BaseHandler
 BaseHandler ()
 
 BaseHandler (const edm::ParameterSet &iConfig, triggerExpression::Data &eventCache)
 
virtual ~BaseHandler ()=default
 

Private Attributes

int m_combinedObjectDimension
 
std::vector< edm::ParameterSetm_combinedObjectDrawables
 
StringCutObjectSelector< std::vector< TOutputCandidateType > > m_combinedObjectSelection
 
StringObjectFunction< std::vector< TOutputCandidateType > > m_combinedObjectSortFunction
 
std::string m_dqmhistolabel
 
std::string m_filterPartialName
 
edm::InputTag m_input
 
bool m_isSetup
 
std::string m_pathPartialName
 
std::map< std::string, std::shared_ptr< StringObjectFunction< std::vector< TOutputCandidateType > > > > m_plottersCombinedObject
 
std::map< std::string, std::shared_ptr< StringObjectFunction< TInputCandidateType > > > m_plottersSingleObject
 
std::map< std::string, int > m_plotterType
 
std::vector< edm::ParameterSetm_singleObjectDrawables
 
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
 
std::map< std::string, edm::EDGetTokenm_tokens
 

Static Private Attributes

static const int CombinedObjectPlotter = 1
 
static const int SingleObjectPlotter = 0
 xxx More...
 

Additional Inherited Members

- Public Attributes inherited from FSQ::BaseHandler
std::string m_dirname
 
triggerExpression::Datam_eventCache
 
std::unique_ptr< triggerExpression::Evaluatorm_expression
 
std::map< std::string, MonitorElement * > m_histos
 
edm::ParameterSet m_pset
 
std::set< std::string > m_usedPaths
 

Detailed Description

template<class TInputCandidateType, class TOutputCandidateType, SpecialFilters filter = None>
class FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >

Definition at line 107 of file FSQDiJetAve.cc.

Constructor & Destructor Documentation

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::HandlerTemplate ( const edm::ParameterSet iConfig,
triggerExpression::Data eventCache 
)
inline

Definition at line 131 of file FSQDiJetAve.cc.

References edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

131  :
132  BaseHandler(iConfig, eventCache),
133  m_singleObjectSelection(iConfig.getParameter<std::string>("singleObjectsPreselection")),
134  m_combinedObjectSelection(iConfig.getParameter<std::string>("combinedObjectSelection")),
135  m_combinedObjectSortFunction(iConfig.getParameter<std::string>("combinedObjectSortCriteria"))
136  {
137  std::string type = iConfig.getParameter<std::string>("handlerType");
138  if (type != "FromHLT") {
139  m_input = iConfig.getParameter<edm::InputTag>("inputCol");
140  }
141 
142  m_dqmhistolabel = iConfig.getParameter<std::string>("dqmhistolabel");
143  m_filterPartialName = iConfig.getParameter<std::string>("partialFilterName"); // std::string find is used to match filter
144  m_pathPartialName = iConfig.getParameter<std::string>("partialPathName");
145  m_combinedObjectDimension = iConfig.getParameter<int>("combinedObjectDimension");
146  m_combinedObjectDrawables = iConfig.getParameter< std::vector< edm::ParameterSet > >("combinedObjectDrawables");
147  m_singleObjectDrawables = iConfig.getParameter< std::vector< edm::ParameterSet > >("singleObjectDrawables");
148  m_isSetup = false;
149  }
type
Definition: HCALResponse.h:21
T getParameter(std::string const &) const
std::string m_filterPartialName
Definition: FSQDiJetAve.cc:111
StringObjectFunction< std::vector< TOutputCandidateType > > m_combinedObjectSortFunction
Definition: FSQDiJetAve.cc:117
std::vector< edm::ParameterSet > m_singleObjectDrawables
Definition: FSQDiJetAve.cc:125
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::string m_pathPartialName
Definition: FSQDiJetAve.cc:110
std::string m_dqmhistolabel
Definition: FSQDiJetAve.cc:109
StringCutObjectSelector< std::vector< TOutputCandidateType > > m_combinedObjectSelection
Definition: FSQDiJetAve.cc:116
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
std::vector< edm::ParameterSet > m_combinedObjectDrawables
Definition: FSQDiJetAve.cc:124
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::~HandlerTemplate ( )
overridedefault

Member Function Documentation

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
void FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
const edm::TriggerResults triggerResults,
const edm::TriggerNames triggerNames,
float  weight 
)
inlineoverridevirtual

Implements FSQ::BaseHandler.

Definition at line 296 of file FSQDiJetAve.cc.

References egammaForCoreTracking_cff::cands, runEdmFileComparison::found, mps_fire::i, edm::TriggerNames::size(), edm::TriggerNames::triggerName(), and heppy_batch::val.

302  {
303  size_t found = 0;
304  for (size_t i = 0; i<triggerNames.size(); ++i){
305  auto itUsedPaths = m_usedPaths.begin();
306  for(; itUsedPaths != m_usedPaths.end(); ++itUsedPaths){
307  if (triggerNames.triggerName(i).find(*itUsedPaths)!= std::string::npos ){
308  ++found;
309  break;
310  }
311  }
312 
313  if (found == m_usedPaths.size()) break;
314  }
315  if (found != m_usedPaths.size()){
316  edm::LogInfo("FSQDiJetAve") << "One of requested paths not found, skipping event";
317  return;
318  }
320  m_expression->init(*m_eventCache);
321  }
322  if (not (*m_expression)(*m_eventCache)) return;
323 
324  /*
325  std::vector<std::string> pathAndFilter = findPathAndFilter(hltConfig);
326 
327  std::string pathFullName = pathAndFilter[0];
328  if (pathFullName == "") {
329  return;
330  }
331  unsigned indexNum = triggerNames.triggerIndex(pathFullName);
332  if(indexNum >= triggerNames.size()){
333  edm::LogError("FSQDiJetAve") << "Problem determining trigger index for " << pathFullName << " " << m_pathPartialName;
334  }
335  if (!triggerResults.accept(indexNum)) return;*/
336 
337  std::vector<TOutputCandidateType> cands;
338  getFilteredCands((TInputCandidateType *)nullptr, cands, iEvent, iSetup, hltConfig, trgEvent, weight);
339 
340  if (cands.empty()) return;
341 
342  std::vector<TOutputCandidateType> bestCombinationFromCands = getBestCombination(cands);
343  if (bestCombinationFromCands.empty()) return;
344 
345  // plot
346  std::map<std::string, MonitorElement*>::iterator it, itE;
347  it = m_histos.begin();
348  itE = m_histos.end();
349  for (;it!=itE;++it){
350  if (m_plotterType[it->first]!=CombinedObjectPlotter) continue;
351  float val = (*m_plottersCombinedObject[it->first])(bestCombinationFromCands);
352  it->second->Fill(val, weight);
353  }
354  }
std::map< std::string, int > m_plotterType
Definition: FSQDiJetAve.cc:123
Definition: weight.py:1
static const int CombinedObjectPlotter
Definition: FSQDiJetAve.cc:122
Strings::size_type size() const
Definition: TriggerNames.cc:31
std::map< std::string, MonitorElement * > m_histos
Definition: FSQDiJetAve.cc:96
std::vector< TOutputCandidateType > getBestCombination(std::vector< TOutputCandidateType > &cands)
Definition: FSQDiJetAve.cc:356
std::set< std::string > m_usedPaths
Definition: FSQDiJetAve.cc:97
void getFilteredCands(TInputCandidateType *, std::vector< TOutputCandidateType > &cands, const edm::Event &iEvent, const edm::EventSetup &iSetup, const HLTConfigProvider &hltConfig, const trigger::TriggerEvent &trgEvent, float weight)
Definition: FSQDiJetAve.cc:230
std::unique_ptr< triggerExpression::Evaluator > m_expression
Definition: FSQDiJetAve.cc:93
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:22
triggerExpression::Data * m_eventCache
Definition: FSQDiJetAve.cc:94
std::map< std::string, std::shared_ptr< StringObjectFunction< std::vector< TOutputCandidateType > > > > m_plottersCombinedObject
Definition: FSQDiJetAve.cc:118
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
void FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::book ( DQMStore::IBooker booker)
inlineoverridevirtual

Implements FSQ::BaseHandler.

Definition at line 151 of file FSQDiJetAve.cc.

References create_public_pileup_plots::bins, DQMStore::IBooker::book1D(), patCandidates_cff::func, mps_fire::i, DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

151  {
152  if(!m_isSetup){
153  booker.setCurrentFolder(m_dirname);
154  m_isSetup = true;
155  std::vector< std::vector< edm::ParameterSet > * > todo(2, (std::vector< edm::ParameterSet > * )nullptr);
158  for (size_t ti =0; ti<todo.size();++ti){
159  for (size_t i = 0; i < todo[ti]->size(); ++i){
160  std::string histoName = m_dqmhistolabel + "_" + todo[ti]->at(i).template getParameter<std::string>("name");
161  std::string expression = todo[ti]->at(i).template getParameter<std::string>("expression");
162  int bins = todo[ti]->at(i).template getParameter<int>("bins");
163  double rangeLow = todo[ti]->at(i).template getParameter<double>("min");
164  double rangeHigh = todo[ti]->at(i).template getParameter<double>("max");
165  m_histos[histoName] = booker.book1D(histoName, histoName, bins, rangeLow, rangeHigh);
166  m_plotterType[histoName] = ti;
167  if (ti == CombinedObjectPlotter){
168  auto * func
170  m_plottersCombinedObject[histoName] = std::shared_ptr<StringObjectFunction<std::vector<TOutputCandidateType> > >(func);
171  } else {
172  auto * func
174  m_plottersSingleObject[histoName] = std::shared_ptr<StringObjectFunction<TInputCandidateType> > (func);
175  }
176  }
177  }
178  }
179  }
std::map< std::string, int > m_plotterType
Definition: FSQDiJetAve.cc:123
static const int CombinedObjectPlotter
Definition: FSQDiJetAve.cc:122
static const int SingleObjectPlotter
xxx
Definition: FSQDiJetAve.cc:121
std::vector< edm::ParameterSet > m_singleObjectDrawables
Definition: FSQDiJetAve.cc:125
std::map< std::string, MonitorElement * > m_histos
Definition: FSQDiJetAve.cc:96
std::string m_dqmhistolabel
Definition: FSQDiJetAve.cc:109
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
std::map< std::string, std::shared_ptr< StringObjectFunction< TInputCandidateType > > > m_plottersSingleObject
Definition: FSQDiJetAve.cc:119
std::string m_dirname
Definition: FSQDiJetAve.cc:95
std::vector< edm::ParameterSet > m_combinedObjectDrawables
Definition: FSQDiJetAve.cc:124
std::map< std::string, std::shared_ptr< StringObjectFunction< std::vector< TOutputCandidateType > > > > m_plottersCombinedObject
Definition: FSQDiJetAve.cc:118
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
template<class T >
int FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::count ( const edm::Event iEvent,
InputTag input,
StringCutObjectSelector< T > &  sel,
float  weight 
)
inline

Definition at line 191 of file FSQDiJetAve.cc.

References edm::InputTag::encode(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), electronCleaner_cfi::preselection, triggerObjects_cff::sel, and mps_merge::weight.

191  {
192  int ret = 0;
194  iEvent.getByToken(m_tokens[input.encode()], hIn);
195  if(!hIn.isValid()) {
196  edm::LogError("FSQDiJetAve") << "product not found: "<< input.encode();
197  return -1; // return nonsense value
198  }
199  for (size_t i = 0; i<hIn->size(); ++i) {
200  bool preselection = sel(hIn->at(i));
201  if (preselection){
202  fillSingleObjectPlots(hIn->at(i), weight);
203  ret+=1;
204  }
205  }
206  return ret;
207  }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string encode() const
Definition: InputTag.cc:159
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
void FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::fillSingleObjectPlots ( const TInputCandidateType &  cand,
float  weight 
)
inline

Definition at line 210 of file FSQDiJetAve.cc.

References heppy_batch::val.

210  {
211  std::map<std::string, MonitorElement*>::iterator it, itE;
212  it = m_histos.begin();
213  itE = m_histos.end();
214  for (;it!=itE;++it){
215  if (m_plotterType[it->first]!=SingleObjectPlotter) continue;
216  float val = (*m_plottersSingleObject[it->first])(cand);
217  it->second->Fill(val, weight);
218  }
219  }
std::map< std::string, int > m_plotterType
Definition: FSQDiJetAve.cc:123
Definition: weight.py:1
static const int SingleObjectPlotter
xxx
Definition: FSQDiJetAve.cc:121
std::map< std::string, MonitorElement * > m_histos
Definition: FSQDiJetAve.cc:96
std::map< std::string, std::shared_ptr< StringObjectFunction< TInputCandidateType > > > m_plottersSingleObject
Definition: FSQDiJetAve.cc:119
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::vector<std::string > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::findPathAndFilter ( const HLTConfigProvider hltConfig)
inline

Definition at line 254 of file FSQDiJetAve.cc.

References mps_fire::i, HLTConfigProvider::moduleEDMType(), HLTConfigProvider::moduleLabels(), HLTConfigProvider::size(), AlCaHLTBitMon_QueryRunRegistry::string, and HLTConfigProvider::triggerName().

254  {
255  std::vector<std::string> ret(2,"");
256  std::string filterFullName = "";
257  std::string pathFullName = "";
258  std::vector<std::string> filtersForThisPath;
259  //int pathIndex = -1;
260  int numPathMatches = 0;
261  int numFilterMatches = 0;
262  for (size_t i = 0; i < hltConfig.size(); ++i) {
263  if (hltConfig.triggerName(i).find(m_pathPartialName) == std::string::npos) continue;
264  pathFullName = hltConfig.triggerName(i);
265  //pathIndex = i;
266  ++numPathMatches;
267  std::vector<std::string > moduleLabels = hltConfig.moduleLabels(i);
268  for (auto & moduleLabel : moduleLabels){
269  if ("EDFilter" == hltConfig.moduleEDMType(moduleLabel)) {
270  filtersForThisPath.push_back(moduleLabel);
271  if ( moduleLabel.find(m_filterPartialName)!= std::string::npos ){
272  filterFullName = moduleLabel;
273  ++numFilterMatches;
274  }
275  }
276  }
277  }
278 
279  // LogWarning or LogError?
280  if (numPathMatches != 1) {
281  edm::LogInfo("FSQDiJetAve") << "Problem: found " << numPathMatches
282  << " paths matching " << m_pathPartialName << std::endl;
283  return ret;
284  }
285  ret[0] = pathFullName;
286  if (numFilterMatches != 1) {
287  edm::LogError("FSQDiJetAve") << "Problem: found " << numFilterMatches
288  << " filter matching " << m_filterPartialName
289  << " in path "<< m_pathPartialName << std::endl;
290  return ret;
291  }
292  ret[1] = filterFullName;
293  return ret;
294  }
unsigned int size() const
number of trigger paths in trigger table
std::string m_filterPartialName
Definition: FSQDiJetAve.cc:111
const std::string & triggerName(unsigned int triggerIndex) const
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
std::string m_pathPartialName
Definition: FSQDiJetAve.cc:110
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
void FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::getAndStoreTokens ( edm::ConsumesCollector &&  iC)
inlineoverridevirtual

Implements FSQ::BaseHandler.

Definition at line 180 of file FSQDiJetAve.cc.

References edm::InputTag::encode().

180  {
181  edm::EDGetTokenT<std::vector<TInputCandidateType> > tok = iC.consumes<std::vector<TInputCandidateType> > (m_input);
183  }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128

Implements FSQ::BaseHandler.

Definition at line 431 of file FSQDiJetAve.cc.

433 {
436 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
template<>
void FSQ::HandlerTemplate< reco::Track, int, BestVertexMatching >::getAndStoreTokens ( edm::ConsumesCollector &&  iC)
virtual

Implements FSQ::BaseHandler.

Definition at line 500 of file FSQDiJetAve.cc.

References edm::InputTag::encode().

502 {
503  edm::EDGetTokenT<std::vector<reco::Track> > tok = iC.consumes<std::vector<reco::Track> > (m_input);
505 
506  edm::InputTag lVerticesTag = m_pset.getParameter<edm::InputTag>("vtxCollection");
508  m_tokens[lVerticesTag.encode()] = edm::EDGetToken(tok2);
509 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
edm::ParameterSet m_pset
Definition: FSQDiJetAve.cc:98
template<>
void FSQ::HandlerTemplate< reco::PFJet, reco::PFJet, ApplyJEC >::getAndStoreTokens ( edm::ConsumesCollector &&  iC)
virtual

Implements FSQ::BaseHandler.

Definition at line 586 of file FSQDiJetAve.cc.

References edm::InputTag::encode().

588 {
589  edm::EDGetTokenT<std::vector<reco::PFJet> > tok = iC.consumes<std::vector<reco::PFJet> > (m_input);
591 
592  edm::InputTag jetCorTag = m_pset.getParameter<edm::InputTag>("PFJetCorLabel");
594  m_tokens[jetCorTag.encode()] = edm::EDGetToken(jetcortoken);
595 
596 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
edm::ParameterSet m_pset
Definition: FSQDiJetAve.cc:98
template<>
void FSQ::HandlerTemplate< reco::Candidate::LorentzVector, int >::getAndStoreTokens ( edm::ConsumesCollector &&  iC)
virtual

Implements FSQ::BaseHandler.

Definition at line 639 of file FSQDiJetAve.cc.

641 {
644 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::vector<TOutputCandidateType> FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::getBestCombination ( std::vector< TOutputCandidateType > &  cands)
inline

Definition at line 356 of file FSQDiJetAve.cc.

References SoftLeptonByDistance_cfi::distance, mps_fire::i, and tier0::unique().

356  {
357  int columnSize = cands.size();
358  std::vector<int> currentCombination(m_combinedObjectDimension, 0);
359  std::vector<int> bestCombination(m_combinedObjectDimension, -1);
360 
361  int maxCombinations = 1;
362  int cnt = 0;
363  while (cnt < m_combinedObjectDimension){
364  cnt += 1;
365  maxCombinations *= columnSize;
366  }
367 
368  cnt = 0;
369  float bestCombinedCandVal = -1;
370  while ( cnt < maxCombinations){
371  cnt += 1;
372 
373  // 1. Check if current combination contains duplicates
374  std::vector<int> currentCombinationCopy(currentCombination);
375  std::vector<int>::iterator it;
376  std::sort(currentCombinationCopy.begin(), currentCombinationCopy.end());
377  it = std::unique(currentCombinationCopy.begin(), currentCombinationCopy.end());
378  currentCombinationCopy.resize( std::distance(currentCombinationCopy.begin(),it) );
379  bool duplicatesPresent = currentCombination.size() != currentCombinationCopy.size();
380  // 2. If no duplicates found -
381  // - check if current combination passes the cut
382  // - rank current combination
383  if (!duplicatesPresent) { // no duplicates, we can consider this combined object
384  std::vector<TOutputCandidateType > currentCombinationFromCands;
385  for (int i = 0; i<m_combinedObjectDimension;++i){
386  currentCombinationFromCands.push_back( cands.at(currentCombination.at(i)));
387  }
388  bool isOK = m_combinedObjectSelection(currentCombinationFromCands);
389  if (isOK){
390  float curVal = m_combinedObjectSortFunction(currentCombinationFromCands);
391  // FIXME
392  if (curVal < 0) {
393  edm::LogError("FSQDiJetAve") << "Problem: ranking function returned negative value: " << curVal << std::endl;
394  } else if (curVal > bestCombinedCandVal){
395  //std::cout << curVal << " " << bestCombinedCandVal << std::endl;
396  bestCombinedCandVal = curVal;
397  bestCombination = currentCombination;
398  }
399  }
400  }
401  // 3. Prepare next combination to test
402  // note to future self: less error prone method with modulo
403  currentCombination.at(m_combinedObjectDimension-1)+=1; // increase last number
404  int carry = 0;
405  for (int i = m_combinedObjectDimension-1; i>=0; --i){ // iterate over all numbers, check if we are out of range
406  currentCombination.at(i)+= carry;
407  carry = 0;
408  if (currentCombination.at(i)>=columnSize){
409  carry = 1;
410  currentCombination.at(i) = 0;
411  }
412  }
413  } // combinations loop ends
414 
415  std::vector<TOutputCandidateType > bestCombinationFromCands;
416  if (!bestCombination.empty() && bestCombination.at(0)>=0){
417  for (int i = 0; i<m_combinedObjectDimension;++i){
418  bestCombinationFromCands.push_back( cands.at(bestCombination.at(i)));
419  }
420  }
421  return bestCombinationFromCands;
422  }
StringObjectFunction< std::vector< TOutputCandidateType > > m_combinedObjectSortFunction
Definition: FSQDiJetAve.cc:117
StringCutObjectSelector< std::vector< TOutputCandidateType > > m_combinedObjectSelection
Definition: FSQDiJetAve.cc:116
def unique(seq, keepstr=True)
Definition: tier0.py:25
template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
void FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::getFilteredCands ( TInputCandidateType *  ,
std::vector< TOutputCandidateType > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)
inline

Definition at line 230 of file FSQDiJetAve.cc.

References edm::InputTag::encode(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), electronCleaner_cfi::preselection, and mps_merge::weight.

236  {
238  iEvent.getByToken(m_tokens[m_input.encode()], hIn);
239 
240  if(!hIn.isValid()) {
241  edm::LogError("FSQDiJetAve") << "product not found: "<< m_input.encode();
242  return;
243  }
244 
245  for (size_t i = 0; i<hIn->size(); ++i) {
246  bool preselection = m_singleObjectSelection(hIn->at(i));
247  if (preselection){
248  fillSingleObjectPlots(hIn->at(i), weight);
249  cands.push_back(hIn->at(i));
250  }
251  }
252  }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
template<>
void FSQ::HandlerTemplate< reco::Candidate::LorentzVector, reco::Candidate::LorentzVector >::getFilteredCands ( reco::Candidate::LorentzVector ,
std::vector< reco::Candidate::LorentzVector > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 438 of file FSQDiJetAve.cc.

References edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), electronCleaner_cfi::preselection, and mps_merge::weight.

446 {
448  iEvent.getByToken(m_tokens[m_input.encode()], hIn);
449  if(!hIn.isValid()) {
450  edm::LogError("FSQDiJetAve") << "product not found: "<< m_input.encode();
451  return;
452  }
453  for (auto const & i : *hIn) {
455  if (preselection){
457  cands.push_back(i.p4());
458  }
459  }
460 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
template<>
void FSQ::HandlerTemplate< reco::Track, int >::getFilteredCands ( reco::Track ,
std::vector< int > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 469 of file FSQDiJetAve.cc.

477 {
478  cands.clear();
479  cands.push_back(count<reco::Track>(iEvent, m_input, m_singleObjectSelection, weight) );
480 }
Definition: weight.py:1
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
template<>
void FSQ::HandlerTemplate< reco::GenParticle, int >::getFilteredCands ( reco::GenParticle ,
std::vector< int > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 482 of file FSQDiJetAve.cc.

487 {
488  cands.clear();
489  cands.push_back(count<reco::GenParticle>(iEvent, m_input, m_singleObjectSelection, weight) );
490 }
Definition: weight.py:1
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
template<>
void FSQ::HandlerTemplate< reco::Track, int, BestVertexMatching >::getFilteredCands ( reco::Track ,
std::vector< int > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 512 of file FSQDiJetAve.cc.

References PVValHelper::dxy, PVValHelper::dz, edm::InputTag::encode(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), mathSSE::sqrt(), and electrons_cff::vertices.

519 {
520  // this is not elegant, but should be thread safe
521  static const edm::InputTag lVerticesTag = m_pset.getParameter<edm::InputTag>("vtxCollection");
522  static const int lMinNDOF = m_pset.getParameter<int>("minNDOF"); //7
523  static const double lMaxZ = m_pset.getParameter<double>("maxZ"); // 15
524  static const double lMaxDZ = m_pset.getParameter<double>("maxDZ"); // 0.12
525  static const double lMaxDZ2dzsigma = m_pset.getParameter<double>("maxDZ2dzsigma"); // 3
526  static const double lMaxDXY = m_pset.getParameter<double>("maxDXY"); // 0.12
527  static const double lMaxDXY2dxysigma = m_pset.getParameter<double>("maxDXY2dxysigma"); // 3
528 
529  cands.clear();
530  cands.push_back(0);
531 
533  iEvent.getByToken(m_tokens[lVerticesTag.encode()], vertices);
534 
535  //double bestvz=-999.9, bestvx=-999.9, bestvy=-999.9;
536 
537  double dxy, dz, dzsigma, dxysigma;
538  math::XYZPoint vtxPoint(0.0,0.0,0.0);
539  double vzErr =0.0, vxErr=0.0, vyErr=0.0;
540 
541  // take first vertex passing the criteria
542  int bestVtx = -1;
543  for (size_t i = 0; i < vertices->size(); ++i){
544  if (vertices->at(i).ndof()<lMinNDOF) continue;
545  if (fabs(vertices->at(i).z())> lMaxZ) continue;
546 
547  vtxPoint=vertices->at(i).position();
548  vzErr=vertices->at(i).zError();
549  vxErr=vertices->at(i).xError();
550  vyErr=vertices->at(i).yError();
551  bestVtx = i;
552  break;
553  }
554  if (bestVtx < 0) return;
555  // const reco::Vertex & vtx = vertices->at(bestVtx);
556 
558  iEvent.getByToken(m_tokens[m_input.encode()], hIn);
559  if(!hIn.isValid()) {
560  edm::LogError("FSQDiJetAve") << "product not found: "<< m_input.encode();
561  return;
562  }
563 
564  for (auto const & i : *hIn) {
565  if (!m_singleObjectSelection(i)) continue;
566  dxy=0.0, dz=0.0, dxysigma=0.0, dzsigma=0.0;
567  dxy = -1.*i.dxy(vtxPoint);
568  dz = i.dz(vtxPoint);
569  dxysigma = sqrt(i.dxyError()*i.dxyError()+vxErr*vyErr);
570  dzsigma = sqrt(i.dzError()*i.dzError()+vzErr*vzErr);
571 
572  if(fabs(dz)>lMaxDZ)continue; // TODO...
573  if(fabs(dz/dzsigma)>lMaxDZ2dzsigma)continue;
574  if(fabs(dxy)>lMaxDXY)continue;
575  if(fabs(dxy/dxysigma)>lMaxDXY2dxysigma)continue;
576 
577  cands.at(0)+=1;
578  }//loop over tracks
579 }
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
T sqrt(T t)
Definition: SSEVec.h:18
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
edm::ParameterSet m_pset
Definition: FSQDiJetAve.cc:98
template<>
void FSQ::HandlerTemplate< reco::PFJet, reco::PFJet, ApplyJEC >::getFilteredCands ( reco::PFJet ,
std::vector< reco::PFJet > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 599 of file FSQDiJetAve.cc.

References edm::InputTag::encode(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), electronCleaner_cfi::preselection, and Scenarios_cff::scale.

606 {
607  cands.clear();
608  static const edm::InputTag jetCorTag = m_pset.getParameter<edm::InputTag>("PFJetCorLabel");
610  iEvent.getByToken(m_tokens[jetCorTag.encode()], pfcorrector);
611 
613  iEvent.getByToken(m_tokens[m_input.encode()], hIn);
614 
615  if(!hIn.isValid()) {
616  edm::LogError("FSQDiJetAve") << "product not found: "<< m_input.encode();
617  return;
618  }
619 
620  for (auto const & i : *hIn) {
621  double scale = pfcorrector->correction(i);
622  reco::PFJet newPFJet(scale*i.p4(), i.vertex(),
623  i.getSpecific(), i.getJetConstituents());
624 
625  bool preselection = m_singleObjectSelection(newPFJet);
626  if (preselection){
627  fillSingleObjectPlots(newPFJet, weight);
628  cands.push_back(newPFJet);
629  }
630  }
631 }
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Definition: weight.py:1
Jets made from PFObjects.
Definition: PFJet.h:21
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
edm::ParameterSet m_pset
Definition: FSQDiJetAve.cc:98
template<>
void FSQ::HandlerTemplate< reco::Candidate::LorentzVector, int >::getFilteredCands ( reco::Candidate::LorentzVector ,
std::vector< int > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 646 of file FSQDiJetAve.cc.

References edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), electronCleaner_cfi::preselection, and mps_merge::weight.

654 {
655  cands.clear();
656  cands.push_back(0);
657 
659  iEvent.getByToken(m_tokens[m_input.encode()], hIn);
660  if(!hIn.isValid()) {
661  edm::LogError("FSQDiJetAve") << "product not found: "<< m_input.encode();
662  return;
663  }
664  for (auto const & i : *hIn) {
666  if (preselection){
668  cands.at(0)+=1;
669  }
670  }
671 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string encode() const
Definition: InputTag.cc:159
edm::InputTag m_input
Definition: FSQDiJetAve.cc:127
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
bool isValid() const
Definition: HandleBase.h:74
std::map< std::string, edm::EDGetToken > m_tokens
Definition: FSQDiJetAve.cc:128
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115
template<>
void FSQ::HandlerTemplate< trigger::TriggerObject, trigger::TriggerObject >::getFilteredCands ( trigger::TriggerObject ,
std::vector< trigger::TriggerObject > &  cands,
const edm::Event iEvent,
const edm::EventSetup iSetup,
const HLTConfigProvider hltConfig,
const trigger::TriggerEvent trgEvent,
float  weight 
)

Definition at line 678 of file FSQDiJetAve.cc.

References trigger::TriggerEvent::filterIndex(), trigger::TriggerEvent::filterKeys(), trigger::TriggerEvent::getObjects(), electronCleaner_cfi::preselection, LaserDQM_cfg::process, trigger::TriggerEvent::sizeFilters(), AlCaHLTBitMon_QueryRunRegistry::string, and trigger::TriggerEvent::usedProcessName().

686 {
687  // 1. Find matching path. Inside matchin path find matching filter
688  std::string filterFullName = findPathAndFilter(hltConfig)[1];
689  if (filterFullName.empty()) {
690  return;
691  }
692 
693  // 2. Fetch HLT objects saved by selected filter. Save those fullfilling preselection
694  // objects are saved in cands variable
695  const std::string& process = trgEvent.usedProcessName(); // broken?
696  edm::InputTag hltTag(filterFullName ,"", process);
697 
698  const int hltIndex = trgEvent.filterIndex(hltTag);
699  if ( hltIndex >= trgEvent.sizeFilters() ) {
700  edm::LogInfo("FSQDiJetAve") << "Cannot determine hlt index for |" << filterFullName << "|" << process;
701  return;
702  }
703 
704  const trigger::TriggerObjectCollection & toc(trgEvent.getObjects());
705  const trigger::Keys & khlt = trgEvent.filterKeys(hltIndex);
706 
707  auto kj = khlt.begin();
708 
709  for(;kj != khlt.end(); ++kj){
710  bool preselection = m_singleObjectSelection(toc[*kj]);
711  if (preselection){
712  fillSingleObjectPlots(toc[*kj], weight);
713  cands.push_back( toc[*kj]);
714  }
715  }
716 
717 }
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:135
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:111
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:123
Definition: weight.py:1
void fillSingleObjectPlots(const TInputCandidateType &cand, float weight)
Definition: FSQDiJetAve.cc:210
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:98
const std::string & usedProcessName() const
getters
Definition: TriggerEvent.h:95
std::vector< std::string > findPathAndFilter(const HLTConfigProvider &hltConfig)
Definition: FSQDiJetAve.cc:254
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:81
std::vector< size_type > Keys
StringCutObjectSelector< TInputCandidateType > m_singleObjectSelection
Definition: FSQDiJetAve.cc:115

Member Data Documentation

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
const int FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::CombinedObjectPlotter = 1
staticprivate

Definition at line 122 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
int FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_combinedObjectDimension
private

Definition at line 113 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::vector< edm::ParameterSet > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_combinedObjectDrawables
private

Definition at line 124 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
StringCutObjectSelector<std::vector<TOutputCandidateType> > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_combinedObjectSelection
private

Definition at line 116 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
StringObjectFunction<std::vector<TOutputCandidateType> > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_combinedObjectSortFunction
private

Definition at line 117 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::string FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_dqmhistolabel
private

Definition at line 109 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::string FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_filterPartialName
private

Definition at line 111 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
edm::InputTag FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_input
private

Definition at line 127 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
bool FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_isSetup
private

Definition at line 126 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::string FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_pathPartialName
private

Definition at line 110 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::map<std::string, std::shared_ptr<StringObjectFunction<std::vector<TOutputCandidateType> > > > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_plottersCombinedObject
private

Definition at line 118 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::map<std::string, std::shared_ptr<StringObjectFunction<TInputCandidateType > > > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_plottersSingleObject
private

Definition at line 119 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::map<std::string, int > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_plotterType
private

Definition at line 123 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::vector< edm::ParameterSet > FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_singleObjectDrawables
private

Definition at line 125 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
StringCutObjectSelector<TInputCandidateType> FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_singleObjectSelection
private

Definition at line 115 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
std::map<std::string, edm::EDGetToken> FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::m_tokens
private

Definition at line 128 of file FSQDiJetAve.cc.

template<class TInputCandidateType , class TOutputCandidateType , SpecialFilters filter = None>
const int FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::SingleObjectPlotter = 0
staticprivate

xxx

Definition at line 121 of file FSQDiJetAve.cc.