CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes

FlavourHistograms2D< T, G > Class Template Reference

#include <FlavourHistorgrams2D.h>

List of all members.

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 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
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)
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_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_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_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_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 
)

Definition at line 171 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_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_s, FlavourHistograms2D< T, G >::theProfile_u, FlavourHistograms2D< T, G >::theStatistics, FlavourHistograms2D< T, G >::theUpperBoundX, and FlavourHistograms2D< T, G >::theUpperBoundY.

                                                                                                              :
  // BaseFlavourHistograms2D () ,
  // theVariable ( variable_ ) ,
  theMaxDimension(-1), theIndexToPlot(-1), theBaseNameTitle ( baseNameTitle_ ) , theBaseNameDescription ( baseNameDescription_ ) ,
  theNBinsX ( nBinsX_ ) , theNBinsY (nBinsY_), 
  theLowerBoundX ( lowerBoundX_ ) , theUpperBoundX ( upperBoundX_ ) ,
  theLowerBoundY ( lowerBoundY_ ) , theUpperBoundY ( upperBoundY_ ) ,
  theStatistics ( statistics_ ) , theMin(-1.), theMax(-1.), mcPlots_(mc), createProfile_(createProfile)
{
  // defaults for array dimensions
  theArrayDimension = 0  ;
    
  if (!update) {
    // book histos
    HistoProviderDQM prov("Btag",folder);
    if(mcPlots_%2 == 0) theHisto_all   = (prov.book2D( theBaseNameTitle + "ALL"  , theBaseNameDescription + " all jets"  , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY )) ; 
    else theHisto_all = 0;
    if (mcPlots_) {  
      if (mcPlots_>2) {
        theHisto_d     = (prov.book2D ( theBaseNameTitle + "D"    , theBaseNameDescription + " d-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY )) ; 
        theHisto_u     = (prov.book2D ( theBaseNameTitle + "U"    , theBaseNameDescription + " u-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theHisto_s     = (prov.book2D ( theBaseNameTitle + "S"    , theBaseNameDescription + " s-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theHisto_g     = (prov.book2D ( theBaseNameTitle + "G"    , theBaseNameDescription + " g-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theHisto_dus   = (prov.book2D ( theBaseNameTitle + "DUS"  , theBaseNameDescription + " dus-jets"  , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
      }
      else {
        theHisto_d = 0;
        theHisto_u = 0;
        theHisto_s = 0;
        theHisto_g = 0;
        theHisto_dus = 0;
      }
      theHisto_c     = (prov.book2D ( theBaseNameTitle + "C"    , theBaseNameDescription + " c-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
      theHisto_b     = (prov.book2D ( theBaseNameTitle + "B"    , theBaseNameDescription + " b-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
      theHisto_ni    = (prov.book2D ( theBaseNameTitle + "NI"   , theBaseNameDescription + " ni-jets"   , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
      theHisto_dusg  = (prov.book2D ( theBaseNameTitle + "DUSG" , theBaseNameDescription + " dusg-jets" , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ;
    }else{
      theHisto_d = 0;
      theHisto_u = 0;
      theHisto_s = 0;
      theHisto_c = 0;
      theHisto_b = 0;
      theHisto_g = 0;
      theHisto_ni = 0;
      theHisto_dus = 0;
      theHisto_dusg = 0;
    }

    if (createProfile_) {
      if(mcPlots_%2 == 0) theProfile_all = (prov.bookProfile( theBaseNameTitle + "_Profile_ALL" , theBaseNameDescription + " all jets" , theNBinsX, theLowerBoundX, theUpperBoundX, theNBinsY, theLowerBoundY, theUpperBoundY));
      else theProfile_all = 0;
      if (mcPlots_) {
        if (mcPlots_>2) {
          theProfile_d     = (prov.bookProfile ( theBaseNameTitle + "_Profile_D"    , theBaseNameDescription + " d-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY )) ; 
          theProfile_u     = (prov.bookProfile ( theBaseNameTitle + "_Profile_U"    , theBaseNameDescription + " u-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
          theProfile_s     = (prov.bookProfile ( theBaseNameTitle + "_Profile_S"    , theBaseNameDescription + " s-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
          theProfile_g     = (prov.bookProfile ( theBaseNameTitle + "_Profile_G"    , theBaseNameDescription + " g-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
          theProfile_dus   = (prov.bookProfile ( theBaseNameTitle + "_Profile_DUS"  , theBaseNameDescription + " dus-jets"  , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        }
        else {
          theProfile_d = 0;
          theProfile_u = 0;
          theProfile_s = 0;
          theProfile_g = 0;
          theProfile_dus = 0;
        }
        theProfile_c     = (prov.bookProfile ( theBaseNameTitle + "_Profile_C"    , theBaseNameDescription + " c-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theProfile_b     = (prov.bookProfile ( theBaseNameTitle + "_Profile_B"    , theBaseNameDescription + " b-jets"    , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theProfile_ni    = (prov.bookProfile ( theBaseNameTitle + "_Profile_NI"   , theBaseNameDescription + " ni-jets"   , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ; 
        theProfile_dusg  = (prov.bookProfile ( theBaseNameTitle + "_Profile_DUSG" , theBaseNameDescription + " dusg-jets" , theNBinsX , theLowerBoundX , theUpperBoundX , theNBinsY, theLowerBoundY, theUpperBoundY)) ;
      } else{
          theProfile_d = 0;
          theProfile_u = 0;
          theProfile_s = 0;
          theProfile_c = 0;
          theProfile_b = 0;
          theProfile_g = 0;
          theProfile_ni = 0;
          theProfile_dus = 0;
          theProfile_dusg = 0;
      } 
    }  else {
          theProfile_all = 0;
          theProfile_d = 0;
          theProfile_u = 0;
          theProfile_s = 0;
          theProfile_c = 0;
          theProfile_b = 0;
          theProfile_g = 0;
          theProfile_ni = 0;
          theProfile_dus = 0;
          theProfile_dusg = 0;
    }
      // statistics if requested
    if ( theStatistics ) {
      if(theHisto_all) theHisto_all ->getTH2F()->Sumw2() ; 
      if(createProfile)
        if(theProfile_all) theProfile_all ->getTProfile()->Sumw2() ; 
      if (mcPlots_) {  
        if (mcPlots_>2) {
          theHisto_d   ->getTH2F()->Sumw2() ; 
          theHisto_u   ->getTH2F()->Sumw2() ; 
          theHisto_s   ->getTH2F()->Sumw2() ;
          theHisto_g   ->getTH2F()->Sumw2() ; 
          theHisto_dus ->getTH2F()->Sumw2() ; 
        } 
        theHisto_c   ->getTH2F()->Sumw2() ; 
        theHisto_b   ->getTH2F()->Sumw2() ; 
        theHisto_ni  ->getTH2F()->Sumw2() ; 
        theHisto_dusg->getTH2F()->Sumw2() ;

        if(createProfile) {
          if (mcPlots_>2) {
            theProfile_d   ->getTProfile()->Sumw2() ; 
            theProfile_u   ->getTProfile()->Sumw2() ; 
            theProfile_s   ->getTProfile()->Sumw2() ;
            theProfile_g   ->getTProfile()->Sumw2() ; 
            theProfile_dus ->getTProfile()->Sumw2() ; 
          } 
          theProfile_c   ->getTProfile()->Sumw2() ; 
          theProfile_b   ->getTProfile()->Sumw2() ; 
          theProfile_ni  ->getTProfile()->Sumw2() ; 
          theProfile_dusg->getTProfile()->Sumw2() ;
        }
      }
    }
  } else {
    HistoProviderDQM prov("Btag",folder);
    if(theHisto_all) theHisto_all   = prov.access(theBaseNameTitle + "ALL" ) ; 
    if (mcPlots_) {  
      if (mcPlots_>2) {
        theHisto_d     = prov.access(theBaseNameTitle + "D"   ) ; 
        theHisto_u     = prov.access(theBaseNameTitle + "U"   ) ; 
        theHisto_s     = prov.access(theBaseNameTitle + "S"   ) ;
        theHisto_g     = prov.access(theBaseNameTitle + "G"   ) ; 
        theHisto_dus   = prov.access(theBaseNameTitle + "DUS" ) ; 
      } 
      theHisto_c     = prov.access(theBaseNameTitle + "C"   ) ; 
      theHisto_b     = prov.access(theBaseNameTitle + "B"   ) ; 
      theHisto_ni    = prov.access(theBaseNameTitle + "NI"  ) ; 
      theHisto_dusg  = prov.access(theBaseNameTitle + "DUSG") ;
    }

    if(createProfile_) {
      if(theProfile_all) theProfile_all = prov.access(theBaseNameTitle + "_Profile_ALL");
      if(mcPlots_) {
        if (mcPlots_>2) {
          theProfile_d     = prov.access(theBaseNameTitle + "_Profile_D"   ) ; 
          theProfile_u     = prov.access(theBaseNameTitle + "_Profile_U"   ) ; 
          theProfile_s     = prov.access(theBaseNameTitle + "_Profile_S"   ) ;
          theProfile_g     = prov.access(theBaseNameTitle + "_Profile_G"   ) ; 
          theProfile_dus   = prov.access(theBaseNameTitle + "_Profile_DUS" ) ; 
        } 
        theProfile_c     = prov.access(theBaseNameTitle + "_Profile_C"   ) ; 
        theProfile_b     = prov.access(theBaseNameTitle + "_Profile_B"   ) ; 
        theProfile_ni    = prov.access(theBaseNameTitle + "_Profile_NI"  ) ; 
        theProfile_dusg  = prov.access(theBaseNameTitle + "_Profile_DUSG") ;
      }
    }
  }
}
template<class T , class G >
FlavourHistograms2D< T, G >::~FlavourHistograms2D ( ) [virtual]

Definition at line 339 of file FlavourHistorgrams2D.h.

{}
template<class T, class G>
FlavourHistograms2D< T, G >::FlavourHistograms2D ( ) [inline, private]

Definition at line 161 of file FlavourHistorgrams2D.h.

{}

Member Function Documentation

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

Definition at line 68 of file FlavourHistorgrams2D.h.

template<class T, class G>
std::string FlavourHistograms2D< T, G >::baseNameTitle ( ) const [inline]

Definition at line 67 of file FlavourHistorgrams2D.h.

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

Definition at line 455 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_s(), and FlavourHistograms2D< T, G >::histo_u().

                                                                                     {
  // divide histos using binomial errors
  //
  // ATTENTION: It's the responsability of the user to make sure that the HistoDescriptions
  //            involved in this operation have been constructed with the statistics option switched on!!
  //
  if(theHisto_all) theHisto_all  ->getTH2F()-> Divide ( theHisto_all->getTH2F()  , bHD.histo_all () , 1.0 , 1.0 , "b" ) ;    
    if (mcPlots_) {  
      if (mcPlots_>2) {
        theHisto_d    ->getTH2F()-> Divide ( theHisto_d ->getTH2F()   , bHD.histo_d   () , 1.0 , 1.0 , "b" ) ;    
        theHisto_u    ->getTH2F()-> Divide ( theHisto_u ->getTH2F()   , bHD.histo_u   () , 1.0 , 1.0 , "b" ) ;
        theHisto_s    ->getTH2F()-> Divide ( theHisto_s ->getTH2F()   , bHD.histo_s   () , 1.0 , 1.0 , "b" ) ;
        theHisto_g    ->getTH2F()-> Divide ( theHisto_g  ->getTH2F()  , bHD.histo_g   () , 1.0 , 1.0 , "b" ) ;
        theHisto_dus  ->getTH2F()-> Divide ( theHisto_dus->getTH2F()  , bHD.histo_dus () , 1.0 , 1.0 , "b" ) ;
      }
      theHisto_c    ->getTH2F()-> Divide ( theHisto_c ->getTH2F()   , bHD.histo_c   () , 1.0 , 1.0 , "b" ) ;
      theHisto_b    ->getTH2F()-> Divide ( theHisto_b ->getTH2F()   , bHD.histo_b   () , 1.0 , 1.0 , "b" ) ;
      theHisto_ni   ->getTH2F()-> Divide ( theHisto_ni->getTH2F()   , bHD.histo_ni  () , 1.0 , 1.0 , "b" ) ;
      theHisto_dusg ->getTH2F()-> Divide ( theHisto_dusg->getTH2F() , bHD.histo_dusg() , 1.0 , 1.0 , "b" ) ;
    }
}
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 353 of file FlavourHistorgrams2D.h.

{
  // For single variables and arrays (for arrays only a single index can be filled)
  fillVariable ( flavour , variableX , variableY , w ) ;
}
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 366 of file FlavourHistorgrams2D.h.

References i.

{
  if ( theArrayDimension == 0 ) {       
    // single variable
    fillVariable ( flavour , *variableX, *variableY , w) ;
  } else {
    // array      
    int iMax = *theArrayDimension ;
    if ( *theArrayDimension > theMaxDimension ) iMax = theMaxDimension ;
    //
    for ( int i = 0 ; i != iMax ; ++i ) {
      // check if only one index to be plotted (<0: switched off -> plot all)
      if ( ( theIndexToPlot < 0 ) || ( i == theIndexToPlot ) ) { 
        fillVariable ( flavour , *(variableX+i) , *(variableY+i) , w) ;
      }
    }

    // if single index to be filled but not enough entries: fill 0.0 (convention!)
    if ( theIndexToPlot >= iMax ) { 
      // cout << "==>> The index to be filled is too big -> fill 0.0 : " << theBaseNameTitle << " : " << theIndexToPlot << " >= " << iMax << endl ;
      const T& theZeroT = static_cast<T> ( 0.0) ;
      const G& theZeroG = static_cast<T> ( 0.0 );
      fillVariable ( flavour , theZeroT , theZeroG , w ) ;
    }
  }
} 
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G &  variableY 
) const

Definition at line 360 of file FlavourHistorgrams2D.h.

References lumiContext::fill.

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

{
  fill ( flavour , variableX , variableY , 1. ) ;
}
template<class T, class G>
void FlavourHistograms2D< T, G >::fill ( const int &  flavour,
const T variableX,
const G *  variableY 
) const

Definition at line 394 of file FlavourHistorgrams2D.h.

References lumiContext::fill.

{
  fill ( flavour,  variableX , variableY , 1. );
}
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 479 of file FlavourHistorgrams2D.h.

                                                                                                                              {
  // all
  if(theHisto_all) theHisto_all->Fill ( varX, varY,w ) ;
  if(createProfile_)
    //if(theProfile_all) theProfile_all->Fill( varX, varY, w );
    if(theProfile_all) theProfile_all->Fill( varX, varY);

  //exit(-1);
  // flavour specific
  if (!mcPlots_) return;

  switch( flavour ) {
    case 1:
      if (mcPlots_>2) {
        theHisto_d->Fill( varX, varY,w );
        theHisto_dus->Fill( varX, varY,w );
      }
      theHisto_dusg->Fill( varX, varY,w );
      if(createProfile_) {
        //theProfile_d->Fill(varX, varY,w);
        //theProfile_dus->Fill(varX, varY,w);
        //theProfile_dusg->Fill(varX, varY,w);
        if (mcPlots_>2) {
          theProfile_d->Fill(varX, varY);
          theProfile_dus->Fill(varX, varY);
        }
        theProfile_dusg->Fill(varX, varY);
      }
      return;
    case 2:
      if (mcPlots_>2) {
        theHisto_u->Fill( varX, varY,w );
        theHisto_dus->Fill( varX, varY,w );
      }
      theHisto_dusg->Fill( varX, varY,w );
      if(createProfile_) {
        //theProfile_u->Fill(varX, varY,w);
        //theProfile_dus->Fill(varX, varY,w);
        //theProfile_dusg->Fill(varX, varY,w);
        if (mcPlots_>2) {
          theProfile_u->Fill(varX, varY);
          theProfile_dus->Fill(varX, varY);
        }
        theProfile_dusg->Fill(varX, varY);
      }
      return;
    case 3:
      if (mcPlots_>2) {
        theHisto_s->Fill( varX, varY,w );
        theHisto_dus->Fill( varX, varY,w );
      }
      theHisto_dusg->Fill( varX, varY,w );
      if(createProfile_) {
        //theProfile_s->Fill(varX, varY,w);
        //theProfile_dus->Fill(varX, varY,w);
        //theProfile_dusg->Fill(varX, varY,w);
        if (mcPlots_>2) {
          theProfile_s->Fill(varX, varY);
          theProfile_dus->Fill(varX, varY);
        }
        theProfile_dusg->Fill(varX, varY);
      }
      return;
    case 4:
      theHisto_c->Fill( varX, varY,w );
      //if(createProfile_) theProfile_c->Fill(varX, varY,w);
      if(createProfile_) theProfile_c->Fill(varX, varY);
      return;
    case 5:
      theHisto_b->Fill( varX, varY,w );
      //if(createProfile_) theProfile_b->Fill(varX, varY,w);
      if(createProfile_) theProfile_b->Fill(varX, varY);
      return;
    case 21:
      if (mcPlots_>2) theHisto_g->Fill( varX, varY,w );
      theHisto_dusg->Fill( varX, varY,w );
      if(createProfile_) {
        //theProfile_g->Fill(varX, varY,w);
        //theProfile_dusg->Fill(varX, varY,w);
        if (mcPlots_>2) theProfile_g->Fill(varX, varY);
        theProfile_dusg->Fill(varX, varY);
      }
      return;
    default:
      theHisto_ni->Fill( varX, varY,w );
      //if(createProfile_) theProfile_ni->Fill(varX, varY,w);
      if(createProfile_) theProfile_ni->Fill(varX, varY);
      return;
  }
}
template<class T , class G >
std::vector< TH2F * > FlavourHistograms2D< T, G >::getHistoVector ( ) const

Definition at line 571 of file FlavourHistorgrams2D.h.

References getTH2F().

{
  std::vector<TH2F*> histoVector;
  if(theHisto_all) histoVector.push_back ( theHisto_all->getTH2F() );
    if (mcPlots_) {  
      if (mcPlots_>2) {
        histoVector.push_back ( theHisto_d->getTH2F()   );
        histoVector.push_back ( theHisto_u->getTH2F()   );
        histoVector.push_back ( theHisto_s->getTH2F()   );
        histoVector.push_back ( theHisto_g ->getTH2F()  );
        histoVector.push_back ( theHisto_dus->getTH2F() );
      }
      histoVector.push_back ( theHisto_c->getTH2F()   );
      histoVector.push_back ( theHisto_b->getTH2F()   );
      histoVector.push_back ( theHisto_ni->getTH2F()  );
      histoVector.push_back ( theHisto_dusg->getTH2F());
    }
  return histoVector;
}
template<class T , class G >
std::vector< TProfile * > FlavourHistograms2D< T, G >::getProfileVector ( ) const

Definition at line 592 of file FlavourHistorgrams2D.h.

References getTProfile().

{
  std::vector<TProfile*> profileVector;
  if(createProfile_) {
    if(theProfile_all) profileVector.push_back ( theProfile_all->getTProfile() );
      if (mcPlots_) {  
        if (mcPlots_>2) {
          profileVector.push_back ( theProfile_d->getTProfile()   );
          profileVector.push_back ( theProfile_u->getTProfile()   );
          profileVector.push_back ( theProfile_s->getTProfile()   );
          profileVector.push_back ( theProfile_g ->getTProfile()  );
          profileVector.push_back ( theProfile_dus->getTProfile() );
        }
        profileVector.push_back ( theProfile_c->getTProfile()   );
        profileVector.push_back ( theProfile_b->getTProfile()   );
        profileVector.push_back ( theProfile_ni->getTProfile()  );
        profileVector.push_back ( theProfile_dusg->getTProfile());
      }
  }
  return profileVector;
}
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().

{ return theHisto_all->getTH2F()  ; }    
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().

{ return theHisto_b->getTH2F()    ; }
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().

{ return theHisto_c->getTH2F()    ; }
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().

{ return theHisto_d ->getTH2F()   ; }    
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().

{ return theHisto_dus->getTH2F()  ; }
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().

{ return theHisto_dusg->getTH2F() ; }
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().

{ return theHisto_g->getTH2F()    ; }
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().

{ return theHisto_ni->getTH2F()   ; }
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().

{ return theHisto_s->getTH2F()    ; }
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().

{ return theHisto_u->getTH2F()    ; }
template<class T, class G>
double FlavourHistograms2D< T, G >::lowerBoundX ( ) const [inline]

Definition at line 71 of file FlavourHistorgrams2D.h.

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

Definition at line 73 of file FlavourHistorgrams2D.h.

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

Definition at line 69 of file FlavourHistorgrams2D.h.

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

Definition at line 70 of file FlavourHistorgrams2D.h.

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

Definition at line 89 of file FlavourHistorgrams2D.h.

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

Definition at line 94 of file FlavourHistorgrams2D.h.

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

Definition at line 93 of file FlavourHistorgrams2D.h.

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

Definition at line 90 of file FlavourHistorgrams2D.h.

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

Definition at line 97 of file FlavourHistorgrams2D.h.

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

Definition at line 98 of file FlavourHistorgrams2D.h.

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

Definition at line 95 of file FlavourHistorgrams2D.h.

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

Definition at line 96 of file FlavourHistorgrams2D.h.

{ return theProfile_ni->getTProfile()   ; }
template<class T, class G>
TProfile* FlavourHistograms2D< T, G >::profile_s ( ) const [inline]

Definition at line 92 of file FlavourHistorgrams2D.h.

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

Definition at line 91 of file FlavourHistorgrams2D.h.

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

Definition at line 62 of file FlavourHistorgrams2D.h.

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

Definition at line 63 of file FlavourHistorgrams2D.h.

{ theMin = min;}
template<class T , class G >
void FlavourHistograms2D< T, G >::settitle ( const char *  titleX,
const char *  titleY 
)

Definition at line 400 of file FlavourHistorgrams2D.h.

Referenced by TagCorrelationPlotter::TagCorrelationPlotter().

                                                                               {
 if(theHisto_all) theHisto_all ->setAxisTitle(titleX) ;
 if(theHisto_all) theHisto_all ->setAxisTitle(titleY, 2) ;
    if (mcPlots_) {  
      
      if(theHisto_d)  theHisto_d   ->setAxisTitle(titleX) ;
      if(theHisto_u)  theHisto_u   ->setAxisTitle(titleX) ;
      if(theHisto_s)  theHisto_s   ->setAxisTitle(titleX) ;
      if(theHisto_c)  theHisto_c   ->setAxisTitle(titleX) ;
      if(theHisto_b)  theHisto_b   ->setAxisTitle(titleX) ;
      if(theHisto_g)  theHisto_g   ->setAxisTitle(titleX) ;
      if(theHisto_ni) theHisto_ni  ->setAxisTitle(titleX) ;
      if(theHisto_dus) theHisto_dus ->setAxisTitle(titleX) ;
      if(theHisto_dusg)theHisto_dusg->setAxisTitle(titleX) ;
      if(theHisto_d)  theHisto_d   ->setAxisTitle(titleY, 2) ;
      if(theHisto_u)  theHisto_u   ->setAxisTitle(titleY, 2) ;
      if(theHisto_s)  theHisto_s   ->setAxisTitle(titleY, 2) ;
      if(theHisto_c)  theHisto_c   ->setAxisTitle(titleY, 2) ;
      if(theHisto_b)  theHisto_b   ->setAxisTitle(titleY, 2) ;
      if(theHisto_g)  theHisto_g   ->setAxisTitle(titleY, 2) ;
      if(theHisto_ni) theHisto_ni  ->setAxisTitle(titleY, 2) ;
      if(theHisto_dus) theHisto_dus ->setAxisTitle(titleY, 2) ;
      if(theHisto_dusg)theHisto_dusg->setAxisTitle(titleY, 2) ;
    }

  if(createProfile_) {
    if(theProfile_all) theProfile_all ->setAxisTitle(titleX) ;
    if(theProfile_all) theProfile_all ->setAxisTitle(titleY, 2) ;
    if (mcPlots_) {  
      
      if(theProfile_d)  theProfile_d   ->setAxisTitle(titleX) ;
      if(theProfile_u)  theProfile_u   ->setAxisTitle(titleX) ;
      if(theProfile_s)  theProfile_s   ->setAxisTitle(titleX) ;
      if(theProfile_c)  theProfile_c   ->setAxisTitle(titleX) ;
      if(theProfile_b)  theProfile_b   ->setAxisTitle(titleX) ;
      if(theProfile_g)  theProfile_g   ->setAxisTitle(titleX) ;
      if(theProfile_ni) theProfile_ni  ->setAxisTitle(titleX) ;
      if(theProfile_dus) theProfile_dus ->setAxisTitle(titleX) ;
      if(theProfile_dusg)theProfile_dusg->setAxisTitle(titleX) ;
      if(theProfile_d)  theProfile_d   ->setAxisTitle(titleY, 2) ;
      if(theProfile_u)  theProfile_u   ->setAxisTitle(titleY, 2) ;
      if(theProfile_s)  theProfile_s   ->setAxisTitle(titleY, 2) ;
      if(theProfile_c)  theProfile_c   ->setAxisTitle(titleY, 2) ;
      if(theProfile_b)  theProfile_b   ->setAxisTitle(titleY, 2) ;
      if(theProfile_g)  theProfile_g   ->setAxisTitle(titleY, 2) ;
      if(theProfile_ni) theProfile_ni  ->setAxisTitle(titleY, 2) ;
      if(theProfile_dus) theProfile_dus ->setAxisTitle(titleY, 2) ;
      if(theProfile_dusg)theProfile_dusg->setAxisTitle(titleY, 2) ;
    }
  }
}
template<class T, class G>
bool FlavourHistograms2D< T, G >::statistics ( ) const [inline]

Definition at line 75 of file FlavourHistorgrams2D.h.

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

Definition at line 72 of file FlavourHistorgrams2D.h.

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

Definition at line 74 of file FlavourHistorgrams2D.h.

{ 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_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 119 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 118 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_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]