CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
FlavourHistograms2D< T, G > Class Template Reference

#include <FlavourHistorgrams2D.h>

Public Member Functions

std::string baseNameDescription () const
 
std::string baseNameTitle () const
 
void divide (const FlavourHistograms2D< T, G > &bHD) const
 
void fill (const int &flavour, const T &variableX, const G &variableY) const
 
void fill (const int &flavour, const T &variableX, const G &variableY, const float &w) const
 
void fill (const int &flavour, const T *variableX, const G *variableY) const
 
void fill (const int &flavour, const T *variableX, const G *variableY, const float &w) const
 
 FlavourHistograms2D (TString baseNameTitle_, TString baseNameDescription_, int nBinsX_, double lowerBoundX_, double upperBoundX_, int nBinsY_, double lowerBoundY_, double upperBoundY_, bool statistics_, bool update, std::string folder, unsigned int mc, bool createProfile, DQMStore::IBooker &ibook)
 
std::vector< TH2F * > getHistoVector () const
 
std::vector< TProfile * > getProfileVector () const
 
TH2F * histo_all () const
 
TH2F * histo_b () const
 
TH2F * histo_c () const
 
TH2F * histo_d () const
 
TH2F * histo_dus () const
 
TH2F * histo_dusg () const
 
TH2F * histo_g () const
 
TH2F * histo_ni () const
 
TH2F * histo_pu () const
 
TH2F * histo_s () const
 
TH2F * histo_u () const
 
double lowerBoundX () const
 
double lowerBoundY () const
 
int nBinsX () const
 
int nBinsY () const
 
TProfile * profile_all () const
 
TProfile * profile_b () const
 
TProfile * profile_c () const
 
TProfile * profile_d () const
 
TProfile * profile_dus () const
 
TProfile * profile_dusg () const
 
TProfile * profile_g () const
 
TProfile * profile_ni () const
 
TProfile * profile_pu () const
 
TProfile * profile_s () const
 
TProfile * profile_u () const
 
void SetMaximum (const double &max)
 
void SetMinimum (const double &min)
 
void settitle (const char *titleX, const char *titleY)
 
bool statistics () const
 
double upperBoundX () const
 
double upperBoundY () const
 
virtual ~FlavourHistograms2D ()
 

Protected Member Functions

void fillVariable (const int &flavour, const T &varX, const G &varY, const float &w) const
 

Protected Attributes

int * theArrayDimension
 
std::string theBaseNameDescription
 
std::string theBaseNameTitle
 
MonitorElementtheHisto_all
 
MonitorElementtheHisto_b
 
MonitorElementtheHisto_c
 
MonitorElementtheHisto_d
 
MonitorElementtheHisto_dus
 
MonitorElementtheHisto_dusg
 
MonitorElementtheHisto_g
 
MonitorElementtheHisto_ni
 
MonitorElementtheHisto_pu
 
MonitorElementtheHisto_s
 
MonitorElementtheHisto_u
 
int theIndexToPlot
 
double theLowerBoundX
 
double theLowerBoundY
 
double theMax
 
int theMaxDimension
 
double theMin
 
int theNBinsX
 
int theNBinsY
 
MonitorElementtheProfile_all
 
MonitorElementtheProfile_b
 
MonitorElementtheProfile_c
 
MonitorElementtheProfile_d
 
MonitorElementtheProfile_dus
 
MonitorElementtheProfile_dusg
 
MonitorElementtheProfile_g
 
MonitorElementtheProfile_ni
 
MonitorElementtheProfile_pu
 
MonitorElementtheProfile_s
 
MonitorElementtheProfile_u
 
bool theStatistics
 
double theUpperBoundX
 
double theUpperBoundY
 

Private Member Functions

 FlavourHistograms2D ()
 

Private Attributes

bool createProfile_
 
unsigned int mcPlots_
 

Detailed Description

template<class T, class G>
class FlavourHistograms2D< T, G >

Definition at line 30 of file FlavourHistorgrams2D.h.

Constructor & Destructor Documentation

template<class T , class G >
FlavourHistograms2D< T, G >::FlavourHistograms2D ( TString  baseNameTitle_,
TString  baseNameDescription_,
int  nBinsX_,
double  lowerBoundX_,
double  upperBoundX_,
int  nBinsY_,
double  lowerBoundY_,
double  upperBoundY_,
bool  statistics_,
bool  update,
std::string  folder,
unsigned int  mc,
bool  createProfile,
DQMStore::IBooker ibook 
)

Definition at line 175 of file FlavourHistorgrams2D.h.

References HistoProviderDQM::access(), HistoProviderDQM::book2D(), HistoProviderDQM::bookProfile(), FlavourHistograms2D< T, G >::createProfile_, MonitorElement::getTH2F(), MonitorElement::getTProfile(), FlavourHistograms2D< T, G >::mcPlots_, FlavourHistograms2D< T, G >::theArrayDimension, FlavourHistograms2D< T, G >::theBaseNameDescription, FlavourHistograms2D< T, G >::theBaseNameTitle, FlavourHistograms2D< T, G >::theHisto_all, FlavourHistograms2D< T, G >::theHisto_b, FlavourHistograms2D< T, G >::theHisto_c, FlavourHistograms2D< T, G >::theHisto_d, FlavourHistograms2D< T, G >::theHisto_dus, FlavourHistograms2D< T, G >::theHisto_dusg, FlavourHistograms2D< T, G >::theHisto_g, FlavourHistograms2D< T, G >::theHisto_ni, FlavourHistograms2D< T, G >::theHisto_pu, FlavourHistograms2D< T, G >::theHisto_s, FlavourHistograms2D< T, G >::theHisto_u, FlavourHistograms2D< T, G >::theLowerBoundX, FlavourHistograms2D< T, G >::theLowerBoundY, FlavourHistograms2D< T, G >::theNBinsX, FlavourHistograms2D< T, G >::theNBinsY, FlavourHistograms2D< T, G >::theProfile_all, FlavourHistograms2D< T, G >::theProfile_b, FlavourHistograms2D< T, G >::theProfile_c, FlavourHistograms2D< T, G >::theProfile_d, FlavourHistograms2D< T, G >::theProfile_dus, FlavourHistograms2D< T, G >::theProfile_dusg, FlavourHistograms2D< T, G >::theProfile_g, FlavourHistograms2D< T, G >::theProfile_ni, FlavourHistograms2D< T, G >::theProfile_pu, FlavourHistograms2D< T, G >::theProfile_s, FlavourHistograms2D< T, G >::theProfile_u, FlavourHistograms2D< T, G >::theStatistics, FlavourHistograms2D< T, G >::theUpperBoundX, and FlavourHistograms2D< T, G >::theUpperBoundY.

179  :
180  // BaseFlavourHistograms2D () ,
181  // theVariable ( variable_ ) ,
182  theMaxDimension(-1), theIndexToPlot(-1), theBaseNameTitle ( baseNameTitle_ ) , theBaseNameDescription ( baseNameDescription_ ) ,
183  theNBinsX ( nBinsX_ ) , theNBinsY (nBinsY_),
184  theLowerBoundX ( lowerBoundX_ ) , theUpperBoundX ( upperBoundX_ ) ,
185  theLowerBoundY ( lowerBoundY_ ) , theUpperBoundY ( upperBoundY_ ) ,
186  theStatistics ( statistics_ ) , theMin(-1.), theMax(-1.), mcPlots_(mc), createProfile_(createProfile)
187 {
188  // defaults for array dimensions
189  theArrayDimension = 0 ;
190 
191  if (!update) {
192  // book histos
193  HistoProviderDQM prov("Btag",folder,ibook);
195  else theHisto_all = 0;
196  if (mcPlots_) {
197  if (mcPlots_>2) {
203  }
204  else {
205  theHisto_d = 0;
206  theHisto_u = 0;
207  theHisto_s = 0;
208  theHisto_g = 0;
209  theHisto_dus = 0;
210  }
216  }else{
217  theHisto_d = 0;
218  theHisto_u = 0;
219  theHisto_s = 0;
220  theHisto_c = 0;
221  theHisto_b = 0;
222  theHisto_g = 0;
223  theHisto_ni = 0;
224  theHisto_dus = 0;
225  theHisto_dusg = 0;
226  theHisto_pu = 0;
227  }
228 
229  if (createProfile_) {
230  if(mcPlots_%2 == 0) theProfile_all = (prov.bookProfile( theBaseNameTitle + "_Profile_ALL" , theBaseNameDescription + " all jets" , theNBinsX, theLowerBoundX, theUpperBoundX, theNBinsY, theLowerBoundY, theUpperBoundY));
231  else theProfile_all = 0;
232  if (mcPlots_) {
233  if (mcPlots_>2) {
238  theProfile_dus = (prov.bookProfile ( theBaseNameTitle + "_Profile_DUS" , theBaseNameDescription + " dus-jets" , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ;
239  }
240  else {
241  theProfile_d = 0;
242  theProfile_u = 0;
243  theProfile_s = 0;
244  theProfile_g = 0;
245  theProfile_dus = 0;
246  }
250  theProfile_dusg = (prov.bookProfile ( theBaseNameTitle + "_Profile_DUSG" , theBaseNameDescription + " dusg-jets" , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ;
252  } else{
253  theProfile_d = 0;
254  theProfile_u = 0;
255  theProfile_s = 0;
256  theProfile_c = 0;
257  theProfile_b = 0;
258  theProfile_g = 0;
259  theProfile_ni = 0;
260  theProfile_dus = 0;
261  theProfile_dusg = 0;
262  theProfile_pu = 0;
263  }
264  } else {
265  theProfile_all = 0;
266  theProfile_d = 0;
267  theProfile_u = 0;
268  theProfile_s = 0;
269  theProfile_c = 0;
270  theProfile_b = 0;
271  theProfile_g = 0;
272  theProfile_ni = 0;
273  theProfile_dus = 0;
274  theProfile_dusg = 0;
275  theProfile_pu = 0;
276  }
277  // statistics if requested
278  if ( theStatistics ) {
279  if(theHisto_all) theHisto_all ->getTH2F()->Sumw2() ;
280  if(createProfile)
281  if(theProfile_all) theProfile_all ->getTProfile()->Sumw2() ;
282  if (mcPlots_) {
283  if (mcPlots_>2) {
284  theHisto_d ->getTH2F()->Sumw2() ;
285  theHisto_u ->getTH2F()->Sumw2() ;
286  theHisto_s ->getTH2F()->Sumw2() ;
287  theHisto_g ->getTH2F()->Sumw2() ;
288  theHisto_dus ->getTH2F()->Sumw2() ;
289  }
290  theHisto_c ->getTH2F()->Sumw2() ;
291  theHisto_b ->getTH2F()->Sumw2() ;
292  theHisto_ni ->getTH2F()->Sumw2() ;
293  theHisto_dusg->getTH2F()->Sumw2() ;
294  theHisto_pu ->getTH2F()->Sumw2() ;
295 
296  if(createProfile) {
297  if (mcPlots_>2) {
298  theProfile_d ->getTProfile()->Sumw2() ;
299  theProfile_u ->getTProfile()->Sumw2() ;
300  theProfile_s ->getTProfile()->Sumw2() ;
301  theProfile_g ->getTProfile()->Sumw2() ;
302  theProfile_dus ->getTProfile()->Sumw2() ;
303  }
304  theProfile_c ->getTProfile()->Sumw2() ;
305  theProfile_b ->getTProfile()->Sumw2() ;
306  theProfile_ni ->getTProfile()->Sumw2() ;
307  theProfile_dusg->getTProfile()->Sumw2() ;
308  theProfile_pu ->getTProfile()->Sumw2() ;
309  }
310  }
311  }
312  } else {
313  //is it useful? anyway access function is deprecated...
314  HistoProviderDQM prov("Btag",folder,ibook);
315  if(theHisto_all) theHisto_all = prov.access(theBaseNameTitle + "ALL" ) ;
316  if (mcPlots_) {
317  if (mcPlots_>2) {
318  theHisto_d = prov.access(theBaseNameTitle + "D" ) ;
319  theHisto_u = prov.access(theBaseNameTitle + "U" ) ;
320  theHisto_s = prov.access(theBaseNameTitle + "S" ) ;
321  theHisto_g = prov.access(theBaseNameTitle + "G" ) ;
322  theHisto_dus = prov.access(theBaseNameTitle + "DUS" ) ;
323  }
324  theHisto_c = prov.access(theBaseNameTitle + "C" ) ;
325  theHisto_b = prov.access(theBaseNameTitle + "B" ) ;
326  theHisto_ni = prov.access(theBaseNameTitle + "NI" ) ;
327  theHisto_dusg = prov.access(theBaseNameTitle + "DUSG") ;
328  theHisto_pu = prov.access(theBaseNameTitle + "PU" ) ;
329  }
330 
331  if(createProfile_) {
332  if(theProfile_all) theProfile_all = prov.access(theBaseNameTitle + "_Profile_ALL");
333  if(mcPlots_) {
334  if (mcPlots_>2) {
335  theProfile_d = prov.access(theBaseNameTitle + "_Profile_D" ) ;
336  theProfile_u = prov.access(theBaseNameTitle + "_Profile_U" ) ;
337  theProfile_s = prov.access(theBaseNameTitle + "_Profile_S" ) ;
338  theProfile_g = prov.access(theBaseNameTitle + "_Profile_G" ) ;
339  theProfile_dus = prov.access(theBaseNameTitle + "_Profile_DUS" ) ;
340  }
341  theProfile_c = prov.access(theBaseNameTitle + "_Profile_C" ) ;
342  theProfile_b = prov.access(theBaseNameTitle + "_Profile_B" ) ;
343  theProfile_ni = prov.access(theBaseNameTitle + "_Profile_NI" ) ;
344  theProfile_dusg = prov.access(theBaseNameTitle + "_Profile_DUSG") ;
345  theProfile_pu = prov.access(theBaseNameTitle + "_Profile_PU" ) ;
346  }
347  }
348  }
349 }
std::string theBaseNameDescription
MonitorElement * theProfile_s
MonitorElement * theProfile_pu
MonitorElement * theHisto_g
MonitorElement * theProfile_dusg
MonitorElement * theHisto_dusg
MonitorElement * theHisto_u
MonitorElement * theHisto_c
MonitorElement * theHisto_pu
MonitorElement * theProfile_all
MonitorElement * theProfile_ni
MonitorElement * theHisto_dus
MonitorElement * theProfile_u
MonitorElement * theHisto_s
MonitorElement * theProfile_b
MonitorElement * theProfile_c
MonitorElement * theProfile_d
MonitorElement * theProfile_dus
MonitorElement * theHisto_all
#define update(a, b)
TProfile * getTProfile(void) const
TH2F * getTH2F(void) const
MonitorElement * theProfile_g
MonitorElement * theHisto_b
MonitorElement * theHisto_ni
MonitorElement * theHisto_d
template<class T , class G >
FlavourHistograms2D< T, G >::~FlavourHistograms2D ( )
virtual

Definition at line 353 of file FlavourHistorgrams2D.h.

353 {}
template<class T, class G>
FlavourHistograms2D< T, G >::FlavourHistograms2D ( )
inlineprivate

Definition at line 165 of file FlavourHistorgrams2D.h.

165 {}

Member Function Documentation

template<class T, class G>
std::string FlavourHistograms2D< T, G >::baseNameDescription ( ) const
inline

Definition at line 68 of file FlavourHistorgrams2D.h.

68 { return theBaseNameDescription ; }
std::string theBaseNameDescription
template<class T, class G>
std::string FlavourHistograms2D< T, G >::baseNameTitle ( ) const
inline

Definition at line 67 of file FlavourHistorgrams2D.h.

67 { return theBaseNameTitle ; }
template<class T, class G>
void FlavourHistograms2D< T, G >::divide ( const FlavourHistograms2D< T, G > &  bHD) const

Definition at line 471 of file FlavourHistorgrams2D.h.

References MultipleCompare::Divide(), getTH2F(), FlavourHistograms2D< T, G >::histo_all(), FlavourHistograms2D< T, G >::histo_b(), FlavourHistograms2D< T, G >::histo_c(), FlavourHistograms2D< T, G >::histo_d(), FlavourHistograms2D< T, G >::histo_dus(), FlavourHistograms2D< T, G >::histo_dusg(), FlavourHistograms2D< T, G >::histo_g(), FlavourHistograms2D< T, G >::histo_ni(), FlavourHistograms2D< T, G >::histo_pu(), FlavourHistograms2D< T, G >::histo_s(), and FlavourHistograms2D< T, G >::histo_u().

Referenced by python.rootplot.utilities.Hist::__div__(), and cuy.FindIssue::__init__().

471  {
472  // divide histos using binomial errors
473  //
474  // ATTENTION: It's the responsability of the user to make sure that the HistoDescriptions
475  // involved in this operation have been constructed with the statistics option switched on!!
476  //
477  if(theHisto_all) theHisto_all ->getTH2F()-> Divide ( theHisto_all->getTH2F() , bHD.histo_all () , 1.0 , 1.0 , "b" ) ;
478  if (mcPlots_) {
479  if (mcPlots_>2) {
480  theHisto_d ->getTH2F()-> Divide ( theHisto_d ->getTH2F() , bHD.histo_d () , 1.0 , 1.0 , "b" ) ;
481  theHisto_u ->getTH2F()-> Divide ( theHisto_u ->getTH2F() , bHD.histo_u () , 1.0 , 1.0 , "b" ) ;
482  theHisto_s ->getTH2F()-> Divide ( theHisto_s ->getTH2F() , bHD.histo_s () , 1.0 , 1.0 , "b" ) ;
483  theHisto_g ->getTH2F()-> Divide ( theHisto_g ->getTH2F() , bHD.histo_g () , 1.0 , 1.0 , "b" ) ;
484  theHisto_dus ->getTH2F()-> Divide ( theHisto_dus->getTH2F() , bHD.histo_dus () , 1.0 , 1.0 , "b" ) ;
485  }
486  theHisto_c ->getTH2F()-> Divide ( theHisto_c ->getTH2F() , bHD.histo_c () , 1.0 , 1.0 , "b" ) ;
487  theHisto_b ->getTH2F()-> Divide ( theHisto_b ->getTH2F() , bHD.histo_b () , 1.0 , 1.0 , "b" ) ;
488  theHisto_ni ->getTH2F()-> Divide ( theHisto_ni->getTH2F() , bHD.histo_ni () , 1.0 , 1.0 , "b" ) ;
489  theHisto_dusg ->getTH2F()-> Divide ( theHisto_dusg->getTH2F() , bHD.histo_dusg() , 1.0 , 1.0 , "b" ) ;
490  theHisto_pu ->getTH2F()-> Divide ( theHisto_pu->getTH2F() , bHD.histo_pu () , 1.0 , 1.0 , "b" ) ;
491  }
492 }
MonitorElement * theHisto_g
TH2F * histo_all() const
MonitorElement * theHisto_dusg
MonitorElement * theHisto_u
MonitorElement * theHisto_c
MonitorElement * theHisto_pu
MonitorElement * theHisto_dus
TH2F * histo_dusg() const
MonitorElement * theHisto_s
TH2F * histo_dus() const
TH2F * histo_pu() const
TH2F * histo_ni() const
MonitorElement * theHisto_all
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
TH2F * getTH2F(void) const
MonitorElement * theHisto_b
MonitorElement * theHisto_ni
MonitorElement * theHisto_d
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G &  variableY 
) const

Definition at line 374 of file FlavourHistorgrams2D.h.

References lumiContext::fill.

Referenced by TrackIPTagPlotter::analyzeTag(), and TagCorrelationPlotter::analyzeTags().

375 {
376  fill ( flavour , variableX , variableY , 1. ) ;
377 }
void fill(const int &flavour, const T &variableX, const G &variableY) const
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G &  variableY,
const float &  w 
) const

Definition at line 367 of file FlavourHistorgrams2D.h.

368 {
369  // For single variables and arrays (for arrays only a single index can be filled)
370  fillVariable ( flavour , variableX , variableY , w ) ;
371 }
T w() const
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const int &flavour, const T &varX, const G &varY, const float &w) const
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G *  variableY 
) const

Definition at line 408 of file FlavourHistorgrams2D.h.

References lumiContext::fill.

409 {
410  fill ( flavour, variableX , variableY , 1. );
411 }
void fill(const int &flavour, const T &variableX, const G &variableY) const
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G *  variableY,
const float &  w 
) const

Definition at line 380 of file FlavourHistorgrams2D.h.

References callgraph::G, and i.

381 {
382  if ( theArrayDimension == 0 ) {
383  // single variable
384  fillVariable ( flavour , *variableX, *variableY , w) ;
385  } else {
386  // array
387  int iMax = *theArrayDimension ;
389  //
390  for ( int i = 0 ; i != iMax ; ++i ) {
391  // check if only one index to be plotted (<0: switched off -> plot all)
392  if ( ( theIndexToPlot < 0 ) || ( i == theIndexToPlot ) ) {
393  fillVariable ( flavour , *(variableX+i) , *(variableY+i) , w) ;
394  }
395  }
396 
397  // if single index to be filled but not enough entries: fill 0.0 (convention!)
398  if ( theIndexToPlot >= iMax ) {
399  // cout << "==>> The index to be filled is too big -> fill 0.0 : " << theBaseNameTitle << " : " << theIndexToPlot << " >= " << iMax << endl ;
400  const T& theZeroT = static_cast<T> ( 0.0) ;
401  const G& theZeroG = static_cast<T> ( 0.0 );
402  fillVariable ( flavour , theZeroT , theZeroG , w ) ;
403  }
404  }
405 }
int i
Definition: DBlmapReader.cc:9
tuple G
Definition: callgraph.py:12
T w() const
long double T
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const int &flavour, const T &varX, const G &varY, const float &w) const
template<class T, class G>
void FlavourHistograms2D< T, G >::fillVariable ( const int &  flavour,
const T varX,
const G &  varY,
const float &  w 
) const
protected

Definition at line 496 of file FlavourHistorgrams2D.h.

496  {
497  // all
498  if(theHisto_all) theHisto_all->Fill ( varX, varY,w ) ;
499  if(createProfile_)
500  //if(theProfile_all) theProfile_all->Fill( varX, varY, w );
501  if(theProfile_all) theProfile_all->Fill( varX, varY);
502 
503  //exit(-1);
504  // flavour specific
505  if (!mcPlots_) return;
506 
507  switch( flavour ) {
508  case 1:
509  if (mcPlots_>2) {
510  theHisto_d->Fill( varX, varY,w );
511  theHisto_dus->Fill( varX, varY,w );
512  }
513  theHisto_dusg->Fill( varX, varY,w );
514  if(createProfile_) {
515  //theProfile_d->Fill(varX, varY,w);
516  //theProfile_dus->Fill(varX, varY,w);
517  //theProfile_dusg->Fill(varX, varY,w);
518  if (mcPlots_>2) {
519  theProfile_d->Fill(varX, varY);
520  theProfile_dus->Fill(varX, varY);
521  }
522  theProfile_dusg->Fill(varX, varY);
523  }
524  return;
525  case 2:
526  if (mcPlots_>2) {
527  theHisto_u->Fill( varX, varY,w );
528  theHisto_dus->Fill( varX, varY,w );
529  }
530  theHisto_dusg->Fill( varX, varY,w );
531  if(createProfile_) {
532  //theProfile_u->Fill(varX, varY,w);
533  //theProfile_dus->Fill(varX, varY,w);
534  //theProfile_dusg->Fill(varX, varY,w);
535  if (mcPlots_>2) {
536  theProfile_u->Fill(varX, varY);
537  theProfile_dus->Fill(varX, varY);
538  }
539  theProfile_dusg->Fill(varX, varY);
540  }
541  return;
542  case 3:
543  if (mcPlots_>2) {
544  theHisto_s->Fill( varX, varY,w );
545  theHisto_dus->Fill( varX, varY,w );
546  }
547  theHisto_dusg->Fill( varX, varY,w );
548  if(createProfile_) {
549  //theProfile_s->Fill(varX, varY,w);
550  //theProfile_dus->Fill(varX, varY,w);
551  //theProfile_dusg->Fill(varX, varY,w);
552  if (mcPlots_>2) {
553  theProfile_s->Fill(varX, varY);
554  theProfile_dus->Fill(varX, varY);
555  }
556  theProfile_dusg->Fill(varX, varY);
557  }
558  return;
559  case 4:
560  theHisto_c->Fill( varX, varY,w );
561  //if(createProfile_) theProfile_c->Fill(varX, varY,w);
562  if(createProfile_) theProfile_c->Fill(varX, varY);
563  return;
564  case 5:
565  theHisto_b->Fill( varX, varY,w );
566  //if(createProfile_) theProfile_b->Fill(varX, varY,w);
567  if(createProfile_) theProfile_b->Fill(varX, varY);
568  return;
569  case 21:
570  if (mcPlots_>2) theHisto_g->Fill( varX, varY,w );
571  theHisto_dusg->Fill( varX, varY,w );
572  if(createProfile_) {
573  //theProfile_g->Fill(varX, varY,w);
574  //theProfile_dusg->Fill(varX, varY,w);
575  if (mcPlots_>2) theProfile_g->Fill(varX, varY);
576  theProfile_dusg->Fill(varX, varY);
577  }
578  return;
579  case 20:
580  theHisto_pu->Fill( varX, varY,w );
581  //if(createProfile_) theProfile_pu->Fill(varX, varY,w);
582  if(createProfile_) theProfile_pu->Fill(varX, varY);
583  return;
584  default:
585  theHisto_ni->Fill( varX, varY,w );
586  //if(createProfile_) theProfile_ni->Fill(varX, varY,w);
587  if(createProfile_) theProfile_ni->Fill(varX, varY);
588  return;
589  }
590 }
MonitorElement * theProfile_s
MonitorElement * theProfile_pu
MonitorElement * theHisto_g
MonitorElement * theProfile_dusg
MonitorElement * theHisto_dusg
MonitorElement * theHisto_u
void Fill(long long x)
MonitorElement * theHisto_c
MonitorElement * theHisto_pu
MonitorElement * theProfile_all
MonitorElement * theProfile_ni
MonitorElement * theHisto_dus
MonitorElement * theProfile_u
MonitorElement * theHisto_s
MonitorElement * theProfile_b
MonitorElement * theProfile_c
MonitorElement * theProfile_d
MonitorElement * theProfile_dus
MonitorElement * theHisto_all
T w() const
MonitorElement * theProfile_g
MonitorElement * theHisto_b
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
MonitorElement * theHisto_ni
MonitorElement * theHisto_d
template<class T , class G >
std::vector< TH2F * > FlavourHistograms2D< T, G >::getHistoVector ( ) const

Definition at line 593 of file FlavourHistorgrams2D.h.

References getTH2F().

594 {
595  std::vector<TH2F*> histoVector;
596  if(theHisto_all) histoVector.push_back ( theHisto_all->getTH2F() );
597  if (mcPlots_) {
598  if (mcPlots_>2) {
599  histoVector.push_back ( theHisto_d->getTH2F() );
600  histoVector.push_back ( theHisto_u->getTH2F() );
601  histoVector.push_back ( theHisto_s->getTH2F() );
602  histoVector.push_back ( theHisto_g ->getTH2F() );
603  histoVector.push_back ( theHisto_dus->getTH2F() );
604  }
605  histoVector.push_back ( theHisto_c->getTH2F() );
606  histoVector.push_back ( theHisto_b->getTH2F() );
607  histoVector.push_back ( theHisto_ni->getTH2F() );
608  histoVector.push_back ( theHisto_dusg->getTH2F());
609  histoVector.push_back ( theHisto_pu->getTH2F() );
610  }
611  return histoVector;
612 }
MonitorElement * theHisto_g
MonitorElement * theHisto_dusg
MonitorElement * theHisto_u
MonitorElement * theHisto_c
MonitorElement * theHisto_pu
MonitorElement * theHisto_dus
MonitorElement * theHisto_s
MonitorElement * theHisto_all
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
TH2F * getTH2F(void) const
MonitorElement * theHisto_b
MonitorElement * theHisto_ni
MonitorElement * theHisto_d
template<class T , class G >
std::vector< TProfile * > FlavourHistograms2D< T, G >::getProfileVector ( ) const

Definition at line 615 of file FlavourHistorgrams2D.h.

References getTProfile().

616 {
617  std::vector<TProfile*> profileVector;
618  if(createProfile_) {
619  if(theProfile_all) profileVector.push_back ( theProfile_all->getTProfile() );
620  if (mcPlots_) {
621  if (mcPlots_>2) {
622  profileVector.push_back ( theProfile_d->getTProfile() );
623  profileVector.push_back ( theProfile_u->getTProfile() );
624  profileVector.push_back ( theProfile_s->getTProfile() );
625  profileVector.push_back ( theProfile_g ->getTProfile() );
626  profileVector.push_back ( theProfile_dus->getTProfile() );
627  }
628  profileVector.push_back ( theProfile_c->getTProfile() );
629  profileVector.push_back ( theProfile_b->getTProfile() );
630  profileVector.push_back ( theProfile_ni->getTProfile() );
631  profileVector.push_back ( theProfile_dusg->getTProfile());
632  profileVector.push_back ( theProfile_pu->getTProfile() );
633  }
634  }
635  return profileVector;
636 }
MonitorElement * theProfile_s
MonitorElement * theProfile_pu
TProfile * getTProfile(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
MonitorElement * theProfile_dusg
MonitorElement * theProfile_all
MonitorElement * theProfile_ni
MonitorElement * theProfile_u
MonitorElement * theProfile_b
MonitorElement * theProfile_c
MonitorElement * theProfile_d
MonitorElement * theProfile_dus
TProfile * getTProfile(void) const
MonitorElement * theProfile_g
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_all ( ) const
inline

Definition at line 78 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

78 { return theHisto_all->getTH2F() ; }
MonitorElement * theHisto_all
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_b ( ) const
inline

Definition at line 83 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

83 { return theHisto_b->getTH2F() ; }
TH2F * getTH2F(void) const
MonitorElement * theHisto_b
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_c ( ) const
inline

Definition at line 82 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

82 { return theHisto_c->getTH2F() ; }
MonitorElement * theHisto_c
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_d ( ) const
inline

Definition at line 79 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

79 { return theHisto_d ->getTH2F() ; }
TH2F * getTH2F(void) const
MonitorElement * theHisto_d
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_dus ( ) const
inline

Definition at line 86 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

86 { return theHisto_dus->getTH2F() ; }
MonitorElement * theHisto_dus
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_dusg ( ) const
inline

Definition at line 87 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

87 { return theHisto_dusg->getTH2F() ; }
MonitorElement * theHisto_dusg
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_g ( ) const
inline

Definition at line 84 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

84 { return theHisto_g->getTH2F() ; }
MonitorElement * theHisto_g
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_ni ( ) const
inline

Definition at line 85 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

85 { return theHisto_ni->getTH2F() ; }
TH2F * getTH2F(void) const
MonitorElement * theHisto_ni
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_pu ( ) const
inline

Definition at line 88 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

88 { return theHisto_pu->getTH2F() ; }
MonitorElement * theHisto_pu
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_s ( ) const
inline

Definition at line 81 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

81 { return theHisto_s->getTH2F() ; }
MonitorElement * theHisto_s
TH2F * getTH2F(void) const
template<class T, class G>
TH2F* FlavourHistograms2D< T, G >::histo_u ( ) const
inline

Definition at line 80 of file FlavourHistorgrams2D.h.

Referenced by FlavourHistograms2D< T, G >::divide().

80 { return theHisto_u->getTH2F() ; }
MonitorElement * theHisto_u
TH2F * getTH2F(void) const
template<class T, class G>
double FlavourHistograms2D< T, G >::lowerBoundX ( ) const
inline

Definition at line 71 of file FlavourHistorgrams2D.h.

71 { return theLowerBoundX ; }
template<class T, class G>
double FlavourHistograms2D< T, G >::lowerBoundY ( ) const
inline

Definition at line 73 of file FlavourHistorgrams2D.h.

73 { return theLowerBoundY ; }
template<class T, class G>
int FlavourHistograms2D< T, G >::nBinsX ( ) const
inline

Definition at line 69 of file FlavourHistorgrams2D.h.

69 { return theNBinsX ; }
template<class T, class G>
int FlavourHistograms2D< T, G >::nBinsY ( ) const
inline

Definition at line 70 of file FlavourHistorgrams2D.h.

70 { return theNBinsY ; }
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_all ( ) const
inline

Definition at line 90 of file FlavourHistorgrams2D.h.

90 { return theProfile_all->getTProfile() ; }
MonitorElement * theProfile_all
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_b ( ) const
inline

Definition at line 95 of file FlavourHistorgrams2D.h.

95 { return theProfile_b->getTProfile() ; }
MonitorElement * theProfile_b
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_c ( ) const
inline

Definition at line 94 of file FlavourHistorgrams2D.h.

94 { return theProfile_c->getTProfile() ; }
MonitorElement * theProfile_c
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_d ( ) const
inline

Definition at line 91 of file FlavourHistorgrams2D.h.

91 { return theProfile_d ->getTProfile() ; }
MonitorElement * theProfile_d
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_dus ( ) const
inline

Definition at line 98 of file FlavourHistorgrams2D.h.

98 { return theProfile_dus->getTProfile() ; }
MonitorElement * theProfile_dus
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_dusg ( ) const
inline

Definition at line 99 of file FlavourHistorgrams2D.h.

99 { return theProfile_dusg->getTProfile() ; }
MonitorElement * theProfile_dusg
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_g ( ) const
inline

Definition at line 96 of file FlavourHistorgrams2D.h.

96 { return theProfile_g->getTProfile() ; }
TProfile * getTProfile(void) const
MonitorElement * theProfile_g
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_ni ( ) const
inline

Definition at line 97 of file FlavourHistorgrams2D.h.

97 { return theProfile_ni->getTProfile() ; }
MonitorElement * theProfile_ni
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_pu ( ) const
inline

Definition at line 100 of file FlavourHistorgrams2D.h.

100 { return theProfile_pu->getTProfile() ; }
MonitorElement * theProfile_pu
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_s ( ) const
inline

Definition at line 93 of file FlavourHistorgrams2D.h.

93 { return theProfile_s->getTProfile() ; }
MonitorElement * theProfile_s
TProfile * getTProfile(void) const
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_u ( ) const
inline

Definition at line 92 of file FlavourHistorgrams2D.h.

92 { return theProfile_u->getTProfile() ; }
MonitorElement * theProfile_u
TProfile * getTProfile(void) const
template<class T, class G>
void FlavourHistograms2D< T, G >::SetMaximum ( const double &  max)
inline

Definition at line 62 of file FlavourHistorgrams2D.h.

62 { theMax = max;}
const T & max(const T &a, const T &b)
template<class T, class G>
void FlavourHistograms2D< T, G >::SetMinimum ( const double &  min)
inline

Definition at line 63 of file FlavourHistorgrams2D.h.

template<class T , class G >
void FlavourHistograms2D< T, G >::settitle ( const char *  titleX,
const char *  titleY 
)

Definition at line 414 of file FlavourHistorgrams2D.h.

Referenced by TagCorrelationPlotter::TagCorrelationPlotter().

414  {
415  if(theHisto_all) theHisto_all ->setAxisTitle(titleX) ;
416  if(theHisto_all) theHisto_all ->setAxisTitle(titleY, 2) ;
417  if (mcPlots_) {
418 
419  if(theHisto_d) theHisto_d ->setAxisTitle(titleX) ;
420  if(theHisto_u) theHisto_u ->setAxisTitle(titleX) ;
421  if(theHisto_s) theHisto_s ->setAxisTitle(titleX) ;
422  if(theHisto_c) theHisto_c ->setAxisTitle(titleX) ;
423  if(theHisto_b) theHisto_b ->setAxisTitle(titleX) ;
424  if(theHisto_g) theHisto_g ->setAxisTitle(titleX) ;
425  if(theHisto_ni) theHisto_ni ->setAxisTitle(titleX) ;
426  if(theHisto_dus) theHisto_dus ->setAxisTitle(titleX) ;
428  if(theHisto_d) theHisto_d ->setAxisTitle(titleY, 2) ;
429  if(theHisto_u) theHisto_u ->setAxisTitle(titleY, 2) ;
430  if(theHisto_s) theHisto_s ->setAxisTitle(titleY, 2) ;
431  if(theHisto_c) theHisto_c ->setAxisTitle(titleY, 2) ;
432  if(theHisto_b) theHisto_b ->setAxisTitle(titleY, 2) ;
433  if(theHisto_g) theHisto_g ->setAxisTitle(titleY, 2) ;
434  if(theHisto_ni) theHisto_ni ->setAxisTitle(titleY, 2) ;
435  if(theHisto_dus) theHisto_dus ->setAxisTitle(titleY, 2) ;
436  if(theHisto_dusg)theHisto_dusg->setAxisTitle(titleY, 2) ;
437  if(theHisto_pu) theHisto_pu ->setAxisTitle(titleY, 2) ;
438  }
439 
440  if(createProfile_) {
442  if(theProfile_all) theProfile_all ->setAxisTitle(titleY, 2) ;
443  if (mcPlots_) {
444 
445  if(theProfile_d) theProfile_d ->setAxisTitle(titleX) ;
446  if(theProfile_u) theProfile_u ->setAxisTitle(titleX) ;
447  if(theProfile_s) theProfile_s ->setAxisTitle(titleX) ;
448  if(theProfile_c) theProfile_c ->setAxisTitle(titleX) ;
449  if(theProfile_b) theProfile_b ->setAxisTitle(titleX) ;
450  if(theProfile_g) theProfile_g ->setAxisTitle(titleX) ;
454  if(theProfile_d) theProfile_d ->setAxisTitle(titleY, 2) ;
455  if(theProfile_u) theProfile_u ->setAxisTitle(titleY, 2) ;
456  if(theProfile_s) theProfile_s ->setAxisTitle(titleY, 2) ;
457  if(theProfile_c) theProfile_c ->setAxisTitle(titleY, 2) ;
458  if(theProfile_b) theProfile_b ->setAxisTitle(titleY, 2) ;
459  if(theProfile_g) theProfile_g ->setAxisTitle(titleY, 2) ;
460  if(theProfile_ni) theProfile_ni ->setAxisTitle(titleY, 2) ;
461  if(theProfile_dus) theProfile_dus ->setAxisTitle(titleY, 2) ;
463  if(theProfile_pu) theProfile_pu ->setAxisTitle(titleY, 2) ;
464  }
465  }
466 }
MonitorElement * theProfile_s
MonitorElement * theProfile_pu
MonitorElement * theHisto_g
MonitorElement * theProfile_dusg
MonitorElement * theHisto_dusg
MonitorElement * theHisto_u
MonitorElement * theHisto_c
MonitorElement * theHisto_pu
MonitorElement * theProfile_all
MonitorElement * theProfile_ni
MonitorElement * theHisto_dus
MonitorElement * theProfile_u
MonitorElement * theHisto_s
MonitorElement * theProfile_b
MonitorElement * theProfile_c
MonitorElement * theProfile_d
MonitorElement * theProfile_dus
MonitorElement * theHisto_all
MonitorElement * theProfile_g
MonitorElement * theHisto_b
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * theHisto_ni
MonitorElement * theHisto_d
template<class T, class G>
bool FlavourHistograms2D< T, G >::statistics ( ) const
inline

Definition at line 75 of file FlavourHistorgrams2D.h.

75 { return theStatistics ; }
template<class T, class G>
double FlavourHistograms2D< T, G >::upperBoundX ( ) const
inline

Definition at line 72 of file FlavourHistorgrams2D.h.

72 { return theUpperBoundX ; }
template<class T, class G>
double FlavourHistograms2D< T, G >::upperBoundY ( ) const
inline

Definition at line 74 of file FlavourHistorgrams2D.h.

74 { return theUpperBoundY ; }

Member Data Documentation

template<class T, class G>
bool FlavourHistograms2D< T, G >::createProfile_
private
template<class T, class G>
unsigned int FlavourHistograms2D< T, G >::mcPlots_
private
template<class T, class G>
int* FlavourHistograms2D< T, G >::theArrayDimension
protected
template<class T, class G>
std::string FlavourHistograms2D< T, G >::theBaseNameDescription
protected
template<class T, class G>
std::string FlavourHistograms2D< T, G >::theBaseNameTitle
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_all
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_b
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_c
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_d
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_dus
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_dusg
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_g
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_ni
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_pu
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_s
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theHisto_u
protected
template<class T, class G>
int FlavourHistograms2D< T, G >::theIndexToPlot
protected

Definition at line 121 of file FlavourHistorgrams2D.h.

template<class T, class G>
double FlavourHistograms2D< T, G >::theLowerBoundX
protected
template<class T, class G>
double FlavourHistograms2D< T, G >::theLowerBoundY
protected
template<class T, class G>
double FlavourHistograms2D< T, G >::theMax
protected
template<class T, class G>
int FlavourHistograms2D< T, G >::theMaxDimension
protected

Definition at line 120 of file FlavourHistorgrams2D.h.

template<class T, class G>
double FlavourHistograms2D< T, G >::theMin
protected
template<class T, class G>
int FlavourHistograms2D< T, G >::theNBinsX
protected
template<class T, class G>
int FlavourHistograms2D< T, G >::theNBinsY
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_all
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_b
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_c
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_d
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_dus
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_dusg
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_g
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_ni
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_pu
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_s
protected
template<class T, class G>
MonitorElement* FlavourHistograms2D< T, G >::theProfile_u
protected
template<class T, class G>
bool FlavourHistograms2D< T, G >::theStatistics
protected
template<class T, class G>
double FlavourHistograms2D< T, G >::theUpperBoundX
protected
template<class T, class G>
double FlavourHistograms2D< T, G >::theUpperBoundY
protected