CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HLTHiggsPlotter Class Reference

#include <HLTHiggsPlotter.h>

Public Member Functions

void analyze (const bool &isPassTrigger, const std::string &source, const std::vector< MatchStruct > &matches)
 
void beginJob ()
 
void beginRun (const edm::Run &, const edm::EventSetup &)
 
const std::string gethltpath () const
 
 HLTHiggsPlotter (const edm::ParameterSet &pset, const std::string &hltPath, const std::vector< unsigned int > &objectsType, DQMStore *dbe)
 
 ~HLTHiggsPlotter ()
 

Private Member Functions

void bookHist (const std::string &source, const std::string &objType, const std::string &variable)
 
void fillHist (const bool &passTrigger, const std::string &source, const std::string &objType, const std::string &var, const float &value)
 

Private Attributes

std::map< unsigned int, double > _cutMaxEta
 
std::map< unsigned int, double > _cutMinPt
 
std::map< unsigned int,
unsigned int > 
_cutMotherId
 
std::map< unsigned int,
std::vector< double > > 
_cutsDr
 
DQMStore_dbe
 
std::map< std::string,
MonitorElement * > 
_elements
 
std::string _hltPath
 
std::string _hltProcessName
 
unsigned int _nObjects
 
std::set< unsigned int > _objectsType
 
std::vector< double > _parametersEta
 
std::vector< double > _parametersPhi
 
std::vector< double > _parametersTurnOn
 

Detailed Description

Generate histograms for trigger efficiencies Higgs related Documentation available on the CMS TWiki: https://twiki.cern.ch/twiki/bin/view/CMS/HiggsWGHLTValidate

Author
J. Duarte Campderros (based and adapted on J. Klukas, M. Vander Donckt and J. Alcaraz code from the HLTriggerOffline/Muon package)
J. Klukas, M. Vander Donckt, J. Alcaraz

Definition at line 45 of file HLTHiggsPlotter.h.

Constructor & Destructor Documentation

HLTHiggsPlotter::HLTHiggsPlotter ( const edm::ParameterSet pset,
const std::string &  hltPath,
const std::vector< unsigned int > &  objectsType,
DQMStore dbe 
)

Definition at line 25 of file HLTHiggsPlotter.cc.

References _cutMaxEta, _cutMinPt, _objectsType, edm::ParameterSet::getParameter(), EVTColContainer::getTypeString(), and AlCaHLTBitMon_QueryRunRegistry::string.

28  :
29  _hltPath(hltPath),
30  _hltProcessName(pset.getParameter<std::string>("hltProcessName")),
31  _objectsType(std::set<unsigned int>(objectsType.begin(),objectsType.end())),
32  _nObjects(objectsType.size()),
33  _parametersEta(pset.getParameter<std::vector<double> >("parametersEta")),
34  _parametersPhi(pset.getParameter<std::vector<double> >("parametersPhi")),
35  _parametersTurnOn(pset.getParameter<std::vector<double> >("parametersTurnOn")),
36  _dbe(dbe)
37 {
38  for(std::set<unsigned int>::iterator it = _objectsType.begin();
39  it != _objectsType.end(); ++it)
40  {
41  // Some parameters extracted from the .py
43  _cutMinPt[*it] = pset.getParameter<double>( std::string(objStr+"_cutMinPt").c_str() );
44  _cutMaxEta[*it] = pset.getParameter<double>( std::string(objStr+"_cutMaxEta").c_str() );
45  }
46 }
T getParameter(std::string const &) const
static std::string getTypeString(const unsigned int &objtype)
std::string _hltProcessName
std::vector< double > _parametersPhi
std::set< unsigned int > _objectsType
std::string _hltPath
std::map< unsigned int, double > _cutMinPt
std::vector< double > _parametersTurnOn
std::vector< double > _parametersEta
unsigned int _nObjects
std::map< unsigned int, double > _cutMaxEta
HLTHiggsPlotter::~HLTHiggsPlotter ( )

Definition at line 48 of file HLTHiggsPlotter.cc.

49 {
50 }

Member Function Documentation

void HLTHiggsPlotter::analyze ( const bool &  isPassTrigger,
const std::string &  source,
const std::vector< MatchStruct > &  matches 
)

Definition at line 82 of file HLTHiggsPlotter.cc.

References _objectsType, eta(), fillHist(), EVTColContainer::getTypeString(), j, phi, RecoTauCleanerPlugins::pt, and AlCaHLTBitMon_QueryRunRegistry::string.

85 {
86  if ( !isPassTrigger )
87  {
88  return;
89  }
90  std::map<unsigned int,int> countobjects;
91  // Initializing the count of the used object
92  for(std::set<unsigned int>::iterator co = _objectsType.begin();
93  co != _objectsType.end(); ++co)
94  {
95  countobjects[*co] = 0;
96  }
97 
98  int counttotal = 0;
99  const int totalobjectssize2 = 2*countobjects.size();
100  // Fill the histos if pass the trigger (just the two with higher pt)
101  for (size_t j = 0; j < matches.size(); ++j)
102  {
103  // Is this object owned by this trigger? If not we are not interested...
104  if ( _objectsType.find( matches[j].objType) == _objectsType.end() )
105  {
106  continue;
107  }
108 
109  const unsigned int objType = matches[j].objType;
110  const std::string objTypeStr = EVTColContainer::getTypeString(matches[j].objType);
111 
112  float pt = matches[j].pt;
113  float eta = matches[j].eta;
114  float phi = matches[j].phi;
115  this->fillHist(isPassTrigger,source,objTypeStr,"Eta",eta);
116  this->fillHist(isPassTrigger,source,objTypeStr,"Phi",phi);
117  if ( countobjects[objType] == 0 )
118  {
119  this->fillHist(isPassTrigger,source,objTypeStr,"MaxPt1",pt);
120  // Filled the high pt ...
121  ++(countobjects[objType]);
122  ++counttotal;
123  }
124  else if ( countobjects[objType] == 1 )
125  {
126  this->fillHist(isPassTrigger,source,objTypeStr,"MaxPt2",pt);
127  // Filled the second high pt ...
128  ++(countobjects[objType]);
129  ++counttotal;
130  }
131  else
132  {
133  if ( counttotal == totalobjectssize2 )
134  {
135  break;
136  }
137  }
138  }
139 }
static std::string getTypeString(const unsigned int &objtype)
T eta() const
std::set< unsigned int > _objectsType
int j
Definition: DBlmapReader.cc:9
void fillHist(const bool &passTrigger, const std::string &source, const std::string &objType, const std::string &var, const float &value)
static std::string const source
Definition: EdmProvDump.cc:43
Definition: DDAxes.h:10
void HLTHiggsPlotter::beginJob ( void  )

Definition at line 53 of file HLTHiggsPlotter.cc.

54 {
55 }
void HLTHiggsPlotter::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)

Definition at line 59 of file HLTHiggsPlotter.cc.

References _objectsType, bookHist(), EVTColContainer::getTypeString(), i, source, and AlCaHLTBitMon_QueryRunRegistry::string.

61 {
62  for (std::set<unsigned int>::iterator it = _objectsType.begin();
63  it != _objectsType.end(); ++it)
64  {
65  std::vector<std::string> sources(2);
66  sources[0] = "gen";
67  sources[1] = "rec";
68 
69  const std::string objTypeStr = EVTColContainer::getTypeString(*it);
70 
71  for (size_t i = 0; i < sources.size(); i++)
72  {
73  std::string source = sources[i];
74  bookHist(source, objTypeStr, "Eta");
75  bookHist(source, objTypeStr, "Phi");
76  bookHist(source, objTypeStr, "MaxPt1");
77  bookHist(source, objTypeStr, "MaxPt2");
78  }
79  }
80 }
int i
Definition: DBlmapReader.cc:9
static std::string getTypeString(const unsigned int &objtype)
std::set< unsigned int > _objectsType
void bookHist(const std::string &source, const std::string &objType, const std::string &variable)
static std::string const source
Definition: EdmProvDump.cc:43
void HLTHiggsPlotter::bookHist ( const std::string &  source,
const std::string &  objType,
const std::string &  variable 
)
private

Definition at line 142 of file HLTHiggsPlotter.cc.

References _dbe, _elements, _hltPath, _parametersEta, _parametersPhi, _parametersTurnOn, DQMStore::book1D(), prof2calltree::edges, h, i, max(), bookConverter::min, mergeVDriftHistosByStation::name, source, AlCaHLTBitMon_QueryRunRegistry::string, and indexGen::title.

Referenced by beginRun().

145 {
146  std::string sourceUpper = source;
147  sourceUpper[0] = std::toupper(sourceUpper[0]);
148  std::string name = source + objType + variable + "_" + _hltPath;
149  TH1F * h = 0;
150 
151  if (variable.find("MaxPt") != std::string::npos)
152  {
153  std::string desc = (variable == "MaxPt1") ? "Leading" : "Next-to-Leading";
154  std::string title = "pT of " + desc + " " + sourceUpper + " " + objType + " "
155  "where event pass the "+ _hltPath;
156  const size_t nBins = _parametersTurnOn.size() - 1;
157  float * edges = new float[nBins + 1];
158  for(size_t i = 0; i < nBins + 1; i++)
159  {
160  edges[i] = _parametersTurnOn[i];
161  }
162  h = new TH1F(name.c_str(), title.c_str(), nBins, edges);
163  delete [] edges;
164  }
165  else
166  {
167  std::string symbol = (variable == "Eta") ? "#eta" : "#phi";
168  std::string title = symbol + " of " + sourceUpper + " " + objType + " "+
169  "where event pass the "+ _hltPath;
170  std::vector<double> params = (variable == "Eta") ? _parametersEta : _parametersPhi;
171 
172  int nBins = (int)params[0];
173  double min = params[1];
174  double max = params[2];
175  h = new TH1F(name.c_str(), title.c_str(), nBins, min, max);
176  }
177  h->Sumw2();
178  _elements[name] = _dbe->book1D(name, h);
179  delete h;
180 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
std::vector< double > _parametersPhi
dictionary edges
std::map< std::string, MonitorElement * > _elements
std::string _hltPath
const T & max(const T &a, const T &b)
std::vector< double > _parametersTurnOn
std::vector< double > _parametersEta
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
static std::string const source
Definition: EdmProvDump.cc:43
void HLTHiggsPlotter::fillHist ( const bool &  passTrigger,
const std::string &  source,
const std::string &  objType,
const std::string &  var,
const float &  value 
)
private

Definition at line 182 of file HLTHiggsPlotter.cc.

References _elements, _hltPath, mergeVDriftHistosByStation::name, source, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by analyze().

187 {
188  std::string sourceUpper = source;
189  sourceUpper[0] = toupper(sourceUpper[0]);
190  std::string name = source + objType + variable + "_" + _hltPath;
191 
192  _elements[name]->Fill(value);
193 }
std::map< std::string, MonitorElement * > _elements
std::string _hltPath
static std::string const source
Definition: EdmProvDump.cc:43
const std::string HLTHiggsPlotter::gethltpath ( ) const
inline

Definition at line 58 of file HLTHiggsPlotter.h.

References _hltPath.

58 { return _hltPath; }
std::string _hltPath

Member Data Documentation

std::map<unsigned int,double> HLTHiggsPlotter::_cutMaxEta
private

Definition at line 79 of file HLTHiggsPlotter.h.

Referenced by HLTHiggsPlotter().

std::map<unsigned int,double> HLTHiggsPlotter::_cutMinPt
private

Definition at line 78 of file HLTHiggsPlotter.h.

Referenced by HLTHiggsPlotter().

std::map<unsigned int,unsigned int> HLTHiggsPlotter::_cutMotherId
private

Definition at line 80 of file HLTHiggsPlotter.h.

std::map<unsigned int,std::vector<double> > HLTHiggsPlotter::_cutsDr
private

Definition at line 81 of file HLTHiggsPlotter.h.

DQMStore* HLTHiggsPlotter::_dbe
private

Definition at line 84 of file HLTHiggsPlotter.h.

Referenced by bookHist().

std::map<std::string, MonitorElement *> HLTHiggsPlotter::_elements
private

Definition at line 85 of file HLTHiggsPlotter.h.

Referenced by bookHist(), and fillHist().

std::string HLTHiggsPlotter::_hltPath
private

Definition at line 66 of file HLTHiggsPlotter.h.

Referenced by bookHist(), fillHist(), and gethltpath().

std::string HLTHiggsPlotter::_hltProcessName
private

Definition at line 68 of file HLTHiggsPlotter.h.

unsigned int HLTHiggsPlotter::_nObjects
private

Definition at line 72 of file HLTHiggsPlotter.h.

std::set<unsigned int> HLTHiggsPlotter::_objectsType
private

Definition at line 70 of file HLTHiggsPlotter.h.

Referenced by analyze(), beginRun(), and HLTHiggsPlotter().

std::vector<double> HLTHiggsPlotter::_parametersEta
private

Definition at line 74 of file HLTHiggsPlotter.h.

Referenced by bookHist().

std::vector<double> HLTHiggsPlotter::_parametersPhi
private

Definition at line 75 of file HLTHiggsPlotter.h.

Referenced by bookHist().

std::vector<double> HLTHiggsPlotter::_parametersTurnOn
private

Definition at line 76 of file HLTHiggsPlotter.h.

Referenced by bookHist().