58     fDataSetManager(
NULL),
 
   61     fNeedsRebuilding( 
kTRUE ),
 
   66     fNormalization( 
"NONE" ),
 
   68     fTrainingSumSignalWeights(-1),
 
   69     fTrainingSumBackgrWeights(-1),
 
   70     fTestingSumSignalWeights (-1),
 
   71     fTestingSumBackgrWeights (-1),
 
   75     fTargetsForMulticlass(0),
 
 
   88      if (fClasses[i]) 
delete fClasses[i];
 
   91   if (fTargetsForMulticlass) 
delete fTargetsForMulticlass;
 
 
  100   if(fDataSet) { 
delete fDataSet; fDataSet=
nullptr; }
 
 
  108   fLogger->SetMinType(t);
 
 
  119   fClasses.push_back( 
new ClassInfo(className) );
 
  120   fClasses.back()->SetNumber(fClasses.size()-1);
 
  124   Log() << kHEADER << 
Form(
"[%s] : ",fName.Data()) << 
"Added class \"" << className << 
"\""<< 
Endl;
 
  126   Log() << kDEBUG <<
"\t with internal class number " << fClasses.back()->GetNumber() << 
Endl;
 
  129   if (className == 
"Signal") fSignalClass = fClasses.size()-1;  
 
  131   return fClasses.back();
 
 
  138   for (std::vector<ClassInfo*>::iterator it = fClasses.begin(); it < fClasses.end(); ++it) {
 
  139      if ((*it)->GetName() == 
name) 
return (*it);
 
 
  149      return fClasses.at(
cls);
 
 
  161      Log() << kINFO << 
Form(
"Dataset[%s] : ",fName.Data()) << 
"Class index : " << 
cls << 
"  name : " << GetClassInfo(
cls)->GetName() << 
Endl;
 
 
  169   return (
ev->GetClass()  == fSignalClass);
 
 
  176   if( !fTargetsForMulticlass ) fTargetsForMulticlass = 
new std::vector<Float_t>( GetNClasses() );
 
  178   fTargetsForMulticlass->assign( GetNClasses(), 0.0 );
 
  179   fTargetsForMulticlass->at( 
ev->GetClass() ) = 1.0;
 
  180   return fTargetsForMulticlass;
 
 
  189   for (std::vector<ClassInfo*>::iterator it = fClasses.begin(); it < fClasses.end(); ++it) {
 
 
  199   ClassInfo* ptr = GetClassInfo(className);
 
 
  219   fNeedsRebuilding = 
kTRUE;
 
  220   return fVariables.back();
 
 
  228   fNeedsRebuilding = 
kTRUE;
 
  229   return fVariables.back();
 
 
  241   fVariables.reserve(fVariables.size() + 
size);
 
  242   for (
int i = 0; i < 
size; ++i) {
 
  247      fVariables.back().SetBit(kIsArrayVariable);
 
  249      fVariables.back().SetInternalName(
newVarName);
 
  261         Error(
"TMVA::DataSetInfo::AddVariablesArray", 
"'%c' variable type is not supported", 
varType);
 
  265   fNeedsRebuilding = 
kTRUE;
 
 
  285   fNeedsRebuilding = 
kTRUE;
 
  286   return fTargets.back();
 
 
  294   fNeedsRebuilding = 
kTRUE;
 
  295   return fTargets.back();
 
 
  312   fNeedsRebuilding = 
kTRUE;
 
  313   return fSpectators.back();
 
 
  321   fNeedsRebuilding = 
kTRUE;
 
  322   return fSpectators.back();
 
 
  331      if (var == GetVariableInfo(
ivar).GetInternalName()) 
return ivar;
 
  334      Log() << kINFO  << 
Form(
"Dataset[%s] : ",fName.Data()) <<  GetVariableInfo(
ivar).GetInternalName() << 
Endl;
 
  336   Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
"<FindVarIndex> Variable \'" << var << 
"\' not found." << 
Endl;
 
 
  348   if (className != 
"") {
 
  354      if (fClasses.empty()) {
 
  355         Log() << kWARNING << 
Form(
"Dataset[%s] : ",fName.Data()) << 
"No classes registered yet, cannot specify weight expression!" << 
Endl;
 
  357      for (std::vector<ClassInfo*>::iterator it = fClasses.begin(); it < fClasses.end(); ++it) {
 
  358         (*it)->SetWeight( 
expr );
 
 
  367   GetClassInfo(className)->SetCorrelationMatrix(
matrix);
 
 
  375   if (className == 
"") {  
 
  376      for (std::vector<ClassInfo*>::iterator it = fClasses.begin(); it < fClasses.end(); ++it) {
 
  377         (*it)->SetCut( cut );
 
 
  391   if (className == 
"") {  
 
  392      for (std::vector<ClassInfo*>::iterator it = fClasses.begin(); it < fClasses.end(); ++it) {
 
  394         (*it)->SetCut( 
oldCut+cut );
 
  399      ci->SetCut( 
ci->GetCut()+cut );
 
 
  408   std::vector<TString> 
vNames;
 
  409   std::vector<TMVA::VariableInfo>::const_iterator 
viIt = GetVariableInfos().
begin();
 
  410   for(;
viIt != GetVariableInfos().
end(); ++
viIt) 
vNames.push_back( (*viIt).GetInternalName() );
 
 
  423    << 
"Correlation matrix (" << className << 
"):" << 
Endl;
 
 
  435   const UInt_t nvar = GetNVariables();
 
  450      h2->GetXaxis()->SetBinLabel( 
ivar+1, GetVariableInfo(
ivar).GetTitle() );
 
  451      h2->GetYaxis()->SetBinLabel( 
ivar+1, GetVariableInfo(
ivar).GetTitle() );
 
  466   h2->GetXaxis()->SetLabelSize( 
labelSize );
 
  467   h2->GetYaxis()->SetLabelSize( 
labelSize );
 
  468   h2->SetMarkerSize( 1.5 );
 
  469   h2->SetMarkerColor( 0 );
 
  470   h2->LabelsOption( 
"d" ); 
 
  471   h2->SetLabelOffset( 0.011 );
 
  472   h2->SetMinimum( -100.0 );
 
  473   h2->SetMaximum( +100.0 );
 
  485   Log() << kDEBUG << 
Form(
"Dataset[%s] : ",fName.Data()) << 
"Created correlation matrix as 2D histogram: " << h2->GetName() << 
Endl;
 
 
  495   if (fDataSet==0 || fNeedsRebuilding) {
 
  496      if (fNeedsRebuilding) Log() << kINFO << 
"Rebuilding Dataset " << fName << 
Endl;
 
  500      if( !fDataSetManager )
 
  501         Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
"DataSetManager has not been set in DataSetInfo (GetDataSet() )." << 
Endl;
 
  502      fDataSet = fDataSetManager->CreateDataSet(GetName());
 
  504      fNeedsRebuilding = 
kFALSE;
 
 
  514      return fSpectators.size();
 
  516   for(std::vector<VariableInfo>::const_iterator 
spit=fSpectators.
begin(); 
spit!=fSpectators.
end(); ++
spit) {
 
  517      if(
spit->GetVarType()!=
'C') 
nsp++;
 
 
  527   for (
UInt_t cl = 0; cl < GetNClasses(); cl++) {
 
 
  539   for (
UInt_t i = 0; i < GetNVariables(); i++) {
 
 
  551   for (
UInt_t i = 0; i < GetNTargets(); i++) {
 
 
  561   if (fTrainingSumSignalWeights<0) Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
" asking for the sum of training signal event weights which is not initialized yet" << 
Endl;
 
  562   return fTrainingSumSignalWeights;
 
 
  568   if (fTrainingSumBackgrWeights<0) Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
" asking for the sum of training backgr event weights which is not initialized yet" << 
Endl;
 
  569   return fTrainingSumBackgrWeights;
 
 
  575   if (fTestingSumSignalWeights<0) Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
" asking for the sum of testing signal event weights which is not initialized yet" << 
Endl;
 
  576   return fTestingSumSignalWeights ;
 
 
  582   if (fTestingSumBackgrWeights<0) Log() << kFATAL << 
Form(
"Dataset[%s] : ",fName.Data()) << 
" asking for the sum of testing backgr event weights which is not initialized yet" << 
Endl;
 
  583   return fTestingSumBackgrWeights ;
 
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
TMatrixT< Float_t > TMatrixF
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
const_iterator begin() const
 
const_iterator end() const
 
A specialized string object used for TTree selections.
 
2-D histogram with a float per channel (see TH1 documentation)
 
Service class for 2-D histogram classes.
 
Class that contains all the information of a class.
 
const TMatrixD * GetCorrelationMatrix() const
 
UInt_t GetNSpectators(bool all=kTRUE) const
 
VariableInfo & AddVariable(const TString &expression, const TString &title="", const TString &unit="", Double_t min=0, Double_t max=0, char varType='F', Bool_t normalized=kTRUE, void *external=nullptr)
add a variable (can be a complex expression) to the set of variables used in the MV analysis
 
ClassInfo * AddClass(const TString &className)
 
const TMatrixD * CorrelationMatrix(const TString &className) const
 
Int_t GetTargetNameMaxLength() const
 
virtual ~DataSetInfo()
destructor
 
Double_t GetTestingSumBackgrWeights()
 
void SetMsgType(EMsgType t) const
 
DataSet * GetDataSet() const
returns data set
 
DataSetInfo(const TString &name="Default")
constructor
 
TH2 * CreateCorrelationMatrixHist(const TMatrixD *m, const TString &hName, const TString &hTitle) const
 
std::vector< TString > GetListOfVariables() const
returns list of variables
 
ClassInfo * GetClassInfo(Int_t clNum) const
 
Double_t GetTrainingSumSignalWeights()
 
void PrintClasses() const
 
Int_t GetClassNameMaxLength() const
 
Double_t GetTrainingSumBackgrWeights()
 
VariableInfo & AddTarget(const TString &expression, const TString &title, const TString &unit, Double_t min, Double_t max, Bool_t normalized=kTRUE, void *external=nullptr)
add a variable (can be a complex expression) to the set of variables used in the MV analysis
 
void PrintCorrelationMatrix(const TString &className)
calculates the correlation matrices for signal and background, prints them to standard output,...
 
void SetCut(const TCut &cut, const TString &className)
set the cut for the classes
 
Double_t GetTestingSumSignalWeights()
 
Int_t FindVarIndex(const TString &) const
find variable by name
 
Int_t GetVariableNameMaxLength() const
 
Bool_t IsSignal(const Event *ev) const
 
VariableInfo & AddSpectator(const TString &expression, const TString &title, const TString &unit, Double_t min, Double_t max, char type='F', Bool_t normalized=kTRUE, void *external=nullptr)
add a spectator (can be a complex expression) to the set of spectator variables used in the MV analys...
 
void SetWeightExpression(const TString &exp, const TString &className="")
set the weight expressions for the classes if class name is specified, set only for this class if cla...
 
void AddCut(const TCut &cut, const TString &className)
set the cut for the classes
 
void AddVariablesArray(const TString &expression, Int_t size, const TString &title="", const TString &unit="", Double_t min=0, Double_t max=0, char type='F', Bool_t normalized=kTRUE, void *external=nullptr)
add an array of variables identified by an expression corresponding to an array entry in the tree
 
std::vector< Float_t > * GetTargetsForMulticlass(const Event *ev)
 
void SetCorrelationMatrix(const TString &className, TMatrixD *matrix)
 
void ClearDataSet() const
 
Class that contains all the data information.
 
ostringstream derivative to redirect and format output
 
Class for type info of MVA input variable.
 
Mother of all ROOT objects.
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
MsgLogger & Endl(MsgLogger &ml)