ROOT logo
//
// *** Class AliRsnTrainManager ***
//
//  Base class for Action
//
// authors: Martin Vala (martin.vala@cern.ch)
//          Jan Musinsky (jan.musinsky@cern.ch)
//

#include <TError.h>
#include <TObjString.h>
#include <TMap.h>
#include <TClass.h>

#include "AliRsnTrainManager.h"

ClassImp(AliRsnTrainManager)

AliRsnTrainManager *AliRsnTrainManager::fgRsnTrainManager = 0;

//__________________________________________________________________________________________________
AliRsnTrainManager::AliRsnTrainManager(const char *name,const char *title) : TNamed(name,title),
   fGlobals(0)
{
   //
   // Default constructor
   //

   fgRsnTrainManager = this;

   if (TClass::IsCallingNew() != TClass::kDummyNew) {
      fGlobals    = new TMap();
   }

}

//__________________________________________________________________________________________________
AliRsnTrainManager::AliRsnTrainManager(const AliRsnTrainManager &copy) : TNamed(copy),
   fGlobals(copy.fGlobals)
{
   //
   // Copy constructor
   //
}

//__________________________________________________________________________________________________
AliRsnTrainManager &AliRsnTrainManager::operator=(const AliRsnTrainManager &copy)
{
   //
   // Assignment constructor
   //
   TNamed::operator=(copy);
   if (this == &copy)
      return *this;

   fGlobals = copy.fGlobals;
   return (*this);
}

//__________________________________________________________________________________________________
AliRsnTrainManager::~AliRsnTrainManager()
{
   //
   // Destructor
   //
   delete fGlobals;
   fgRsnTrainManager = 0;
}

//______________________________________________________________________________
void AliRsnTrainManager::SetGlobalStr(const char *key, const char *value,Bool_t verbose)
{
   // Define a custom string variable mapped to a global unique name. The variable
   // can be then retrieved by a given analysis macro via GetGlobalStr(key).
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) {
      ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
      return;
   }
   Bool_t valid = kFALSE;
   TString existing = AliRsnTrainManager::GetGlobalStr(key, valid);
   if (valid) {
      if (verbose) ::Error("AliRsnTrainManager::SetGlobalStr", "Global %s = %s already defined.", key, existing.Data());
      return;
   }
   mgr->GetGlobals()->Add(new TObjString(key), new TObjString(value));
}

//______________________________________________________________________________
const char *AliRsnTrainManager::GetGlobalStr(const char *key, Bool_t &valid)
{
   // Static method to retrieve a global variable defined via SetGlobalStr.
   valid = kFALSE;
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) return 0;
   TObject *value = mgr->GetGlobals()->GetValue(key);
   if (!value) return 0;
   valid = kTRUE;
   return value->GetName();
}

//______________________________________________________________________________
void AliRsnTrainManager::SetGlobalInt(const char *key, Int_t value,Bool_t verbose)
{
   // Define a custom integer variable mapped to a global unique name. The variable
   // can be then retrieved by a given analysis macro via GetGlobalInt(key).
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) {
      ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
      return;
   }
   Bool_t valid = kFALSE;
   Int_t existing = AliRsnTrainManager::GetGlobalInt(key, valid);
   if (valid) {
      if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %i already defined.", key, existing);
      return;
   }
   mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%i",value)));
}

//______________________________________________________________________________
Int_t AliRsnTrainManager::GetGlobalInt(const char *key, Bool_t &valid)
{
   // Static method to retrieve a global variable defined via SetGlobalInt.
   valid = kFALSE;
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) return 0;
   TObject *value = mgr->GetGlobals()->GetValue(key);
   if (!value) return 0;
   valid = kTRUE;
   TString s = value->GetName();
   return s.Atoi();
}

//______________________________________________________________________________
void AliRsnTrainManager::SetGlobalDbl(const char *key, Double_t value,Bool_t verbose)
{
   // Define a custom double precision variable mapped to a global unique name. The variable
   // can be then retrieved by a given analysis macro via GetGlobalInt(key).
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) {
      ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
      return;
   }
   Bool_t valid = kFALSE;
   Double_t existing = AliRsnTrainManager::GetGlobalDbl(key, valid);
   if (valid) {
      if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %g already defined.", key, existing);
      return;
   }
   mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%f",value)));
}

//______________________________________________________________________________
Double_t AliRsnTrainManager::GetGlobalDbl(const char *key, Bool_t &valid)
{
   // Static method to retrieve a global variable defined via SetGlobalDbl.
   valid = kFALSE;
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) return 0;
   TObject *value = mgr->GetGlobals()->GetValue(key);
   if (!value) return 0;
   valid = kTRUE;
   TString s = value->GetName();
   return s.Atof();
}

//______________________________________________________________________________
void AliRsnTrainManager::SetGlobalObj(const char *key, TObject *value,Bool_t verbose)
{
   // Define a custom double precision variable mapped to a global unique name. The variable
   // can be then retrieved by a given analysis macro via GetGlobalInt(key).
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) {
      ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
      return;
   }
   Bool_t valid = kFALSE;
   TObject *existing = AliRsnTrainManager::GetGlobalObj(key, valid);
   if (valid) {
      if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %p already defined.", key, existing);
      return;
   }
   mgr->GetGlobals()->Add(new TObjString(key), value->Clone());
}

//______________________________________________________________________________
TObject *AliRsnTrainManager::GetGlobalObj(const char *key, Bool_t &valid)
{
   // Static method to retrieve a global variable defined via SetGlobalDbl.
   valid = kFALSE;
   AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
   if (!mgr) return 0;
   TObject *value = mgr->GetGlobals()->GetValue(key);
   return value;
}

//______________________________________________________________________________
void AliRsnTrainManager::Print(Option_t */*option*/) const {



   if (!fGlobals) return;
   Printf("=========================================================");

   Printf("            Rsn Global variables: \n");
   TIter next(fGlobals->GetTable());
   TPair *a;
   TObjString *str;
   while ((a = (TPair *)next())) {
      str = 0;
//    if (a->Key()&& a->Key()->IsOnHeap()){
//    }
      if (a->Value() && a->Value()->IsOnHeap()) {
         str = dynamic_cast<TObjString *>(a->Value());
      }
      if (str) {
         if (str) Printf("  %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
      }
   }
   Printf("\n=========================================================");

   /* Printf("            Rsn Particles and Cuts \n");


      next.Reset();
   // AliRsnCut
      while ((a = (TPair *)next())) {
         str = 0;
   //    if (a->Key()&& a->Key()->IsOnHeap()){
   //    }
         if (a->Value() && a->Value()->IsOnHeap()){
            str = dynamic_cast<TObjString *>(a->Value());
         }
         if (str) {
            if (str) Printf("  %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
         }
      }

      Printf("\n=========================================================");

   */
}
 AliRsnTrainManager.cxx:1
 AliRsnTrainManager.cxx:2
 AliRsnTrainManager.cxx:3
 AliRsnTrainManager.cxx:4
 AliRsnTrainManager.cxx:5
 AliRsnTrainManager.cxx:6
 AliRsnTrainManager.cxx:7
 AliRsnTrainManager.cxx:8
 AliRsnTrainManager.cxx:9
 AliRsnTrainManager.cxx:10
 AliRsnTrainManager.cxx:11
 AliRsnTrainManager.cxx:12
 AliRsnTrainManager.cxx:13
 AliRsnTrainManager.cxx:14
 AliRsnTrainManager.cxx:15
 AliRsnTrainManager.cxx:16
 AliRsnTrainManager.cxx:17
 AliRsnTrainManager.cxx:18
 AliRsnTrainManager.cxx:19
 AliRsnTrainManager.cxx:20
 AliRsnTrainManager.cxx:21
 AliRsnTrainManager.cxx:22
 AliRsnTrainManager.cxx:23
 AliRsnTrainManager.cxx:24
 AliRsnTrainManager.cxx:25
 AliRsnTrainManager.cxx:26
 AliRsnTrainManager.cxx:27
 AliRsnTrainManager.cxx:28
 AliRsnTrainManager.cxx:29
 AliRsnTrainManager.cxx:30
 AliRsnTrainManager.cxx:31
 AliRsnTrainManager.cxx:32
 AliRsnTrainManager.cxx:33
 AliRsnTrainManager.cxx:34
 AliRsnTrainManager.cxx:35
 AliRsnTrainManager.cxx:36
 AliRsnTrainManager.cxx:37
 AliRsnTrainManager.cxx:38
 AliRsnTrainManager.cxx:39
 AliRsnTrainManager.cxx:40
 AliRsnTrainManager.cxx:41
 AliRsnTrainManager.cxx:42
 AliRsnTrainManager.cxx:43
 AliRsnTrainManager.cxx:44
 AliRsnTrainManager.cxx:45
 AliRsnTrainManager.cxx:46
 AliRsnTrainManager.cxx:47
 AliRsnTrainManager.cxx:48
 AliRsnTrainManager.cxx:49
 AliRsnTrainManager.cxx:50
 AliRsnTrainManager.cxx:51
 AliRsnTrainManager.cxx:52
 AliRsnTrainManager.cxx:53
 AliRsnTrainManager.cxx:54
 AliRsnTrainManager.cxx:55
 AliRsnTrainManager.cxx:56
 AliRsnTrainManager.cxx:57
 AliRsnTrainManager.cxx:58
 AliRsnTrainManager.cxx:59
 AliRsnTrainManager.cxx:60
 AliRsnTrainManager.cxx:61
 AliRsnTrainManager.cxx:62
 AliRsnTrainManager.cxx:63
 AliRsnTrainManager.cxx:64
 AliRsnTrainManager.cxx:65
 AliRsnTrainManager.cxx:66
 AliRsnTrainManager.cxx:67
 AliRsnTrainManager.cxx:68
 AliRsnTrainManager.cxx:69
 AliRsnTrainManager.cxx:70
 AliRsnTrainManager.cxx:71
 AliRsnTrainManager.cxx:72
 AliRsnTrainManager.cxx:73
 AliRsnTrainManager.cxx:74
 AliRsnTrainManager.cxx:75
 AliRsnTrainManager.cxx:76
 AliRsnTrainManager.cxx:77
 AliRsnTrainManager.cxx:78
 AliRsnTrainManager.cxx:79
 AliRsnTrainManager.cxx:80
 AliRsnTrainManager.cxx:81
 AliRsnTrainManager.cxx:82
 AliRsnTrainManager.cxx:83
 AliRsnTrainManager.cxx:84
 AliRsnTrainManager.cxx:85
 AliRsnTrainManager.cxx:86
 AliRsnTrainManager.cxx:87
 AliRsnTrainManager.cxx:88
 AliRsnTrainManager.cxx:89
 AliRsnTrainManager.cxx:90
 AliRsnTrainManager.cxx:91
 AliRsnTrainManager.cxx:92
 AliRsnTrainManager.cxx:93
 AliRsnTrainManager.cxx:94
 AliRsnTrainManager.cxx:95
 AliRsnTrainManager.cxx:96
 AliRsnTrainManager.cxx:97
 AliRsnTrainManager.cxx:98
 AliRsnTrainManager.cxx:99
 AliRsnTrainManager.cxx:100
 AliRsnTrainManager.cxx:101
 AliRsnTrainManager.cxx:102
 AliRsnTrainManager.cxx:103
 AliRsnTrainManager.cxx:104
 AliRsnTrainManager.cxx:105
 AliRsnTrainManager.cxx:106
 AliRsnTrainManager.cxx:107
 AliRsnTrainManager.cxx:108
 AliRsnTrainManager.cxx:109
 AliRsnTrainManager.cxx:110
 AliRsnTrainManager.cxx:111
 AliRsnTrainManager.cxx:112
 AliRsnTrainManager.cxx:113
 AliRsnTrainManager.cxx:114
 AliRsnTrainManager.cxx:115
 AliRsnTrainManager.cxx:116
 AliRsnTrainManager.cxx:117
 AliRsnTrainManager.cxx:118
 AliRsnTrainManager.cxx:119
 AliRsnTrainManager.cxx:120
 AliRsnTrainManager.cxx:121
 AliRsnTrainManager.cxx:122
 AliRsnTrainManager.cxx:123
 AliRsnTrainManager.cxx:124
 AliRsnTrainManager.cxx:125
 AliRsnTrainManager.cxx:126
 AliRsnTrainManager.cxx:127
 AliRsnTrainManager.cxx:128
 AliRsnTrainManager.cxx:129
 AliRsnTrainManager.cxx:130
 AliRsnTrainManager.cxx:131
 AliRsnTrainManager.cxx:132
 AliRsnTrainManager.cxx:133
 AliRsnTrainManager.cxx:134
 AliRsnTrainManager.cxx:135
 AliRsnTrainManager.cxx:136
 AliRsnTrainManager.cxx:137
 AliRsnTrainManager.cxx:138
 AliRsnTrainManager.cxx:139
 AliRsnTrainManager.cxx:140
 AliRsnTrainManager.cxx:141
 AliRsnTrainManager.cxx:142
 AliRsnTrainManager.cxx:143
 AliRsnTrainManager.cxx:144
 AliRsnTrainManager.cxx:145
 AliRsnTrainManager.cxx:146
 AliRsnTrainManager.cxx:147
 AliRsnTrainManager.cxx:148
 AliRsnTrainManager.cxx:149
 AliRsnTrainManager.cxx:150
 AliRsnTrainManager.cxx:151
 AliRsnTrainManager.cxx:152
 AliRsnTrainManager.cxx:153
 AliRsnTrainManager.cxx:154
 AliRsnTrainManager.cxx:155
 AliRsnTrainManager.cxx:156
 AliRsnTrainManager.cxx:157
 AliRsnTrainManager.cxx:158
 AliRsnTrainManager.cxx:159
 AliRsnTrainManager.cxx:160
 AliRsnTrainManager.cxx:161
 AliRsnTrainManager.cxx:162
 AliRsnTrainManager.cxx:163
 AliRsnTrainManager.cxx:164
 AliRsnTrainManager.cxx:165
 AliRsnTrainManager.cxx:166
 AliRsnTrainManager.cxx:167
 AliRsnTrainManager.cxx:168
 AliRsnTrainManager.cxx:169
 AliRsnTrainManager.cxx:170
 AliRsnTrainManager.cxx:171
 AliRsnTrainManager.cxx:172
 AliRsnTrainManager.cxx:173
 AliRsnTrainManager.cxx:174
 AliRsnTrainManager.cxx:175
 AliRsnTrainManager.cxx:176
 AliRsnTrainManager.cxx:177
 AliRsnTrainManager.cxx:178
 AliRsnTrainManager.cxx:179
 AliRsnTrainManager.cxx:180
 AliRsnTrainManager.cxx:181
 AliRsnTrainManager.cxx:182
 AliRsnTrainManager.cxx:183
 AliRsnTrainManager.cxx:184
 AliRsnTrainManager.cxx:185
 AliRsnTrainManager.cxx:186
 AliRsnTrainManager.cxx:187
 AliRsnTrainManager.cxx:188
 AliRsnTrainManager.cxx:189
 AliRsnTrainManager.cxx:190
 AliRsnTrainManager.cxx:191
 AliRsnTrainManager.cxx:192
 AliRsnTrainManager.cxx:193
 AliRsnTrainManager.cxx:194
 AliRsnTrainManager.cxx:195
 AliRsnTrainManager.cxx:196
 AliRsnTrainManager.cxx:197
 AliRsnTrainManager.cxx:198
 AliRsnTrainManager.cxx:199
 AliRsnTrainManager.cxx:200
 AliRsnTrainManager.cxx:201
 AliRsnTrainManager.cxx:202
 AliRsnTrainManager.cxx:203
 AliRsnTrainManager.cxx:204
 AliRsnTrainManager.cxx:205
 AliRsnTrainManager.cxx:206
 AliRsnTrainManager.cxx:207
 AliRsnTrainManager.cxx:208
 AliRsnTrainManager.cxx:209
 AliRsnTrainManager.cxx:210
 AliRsnTrainManager.cxx:211
 AliRsnTrainManager.cxx:212
 AliRsnTrainManager.cxx:213
 AliRsnTrainManager.cxx:214
 AliRsnTrainManager.cxx:215
 AliRsnTrainManager.cxx:216
 AliRsnTrainManager.cxx:217
 AliRsnTrainManager.cxx:218
 AliRsnTrainManager.cxx:219
 AliRsnTrainManager.cxx:220
 AliRsnTrainManager.cxx:221
 AliRsnTrainManager.cxx:222
 AliRsnTrainManager.cxx:223
 AliRsnTrainManager.cxx:224
 AliRsnTrainManager.cxx:225
 AliRsnTrainManager.cxx:226
 AliRsnTrainManager.cxx:227
 AliRsnTrainManager.cxx:228
 AliRsnTrainManager.cxx:229
 AliRsnTrainManager.cxx:230
 AliRsnTrainManager.cxx:231
 AliRsnTrainManager.cxx:232
 AliRsnTrainManager.cxx:233
 AliRsnTrainManager.cxx:234
 AliRsnTrainManager.cxx:235
 AliRsnTrainManager.cxx:236
 AliRsnTrainManager.cxx:237
 AliRsnTrainManager.cxx:238
 AliRsnTrainManager.cxx:239
 AliRsnTrainManager.cxx:240
 AliRsnTrainManager.cxx:241
 AliRsnTrainManager.cxx:242
 AliRsnTrainManager.cxx:243