2 // *** Class AliRsnTrainManager ***
4 // Base class for Action
6 // authors: Martin Vala (martin.vala@cern.ch)
7 // Jan Musinsky (jan.musinsky@cern.ch)
11 #include <TObjString.h>
15 #include "AliRsnTrainManager.h"
17 ClassImp(AliRsnTrainManager)
19 AliRsnTrainManager *AliRsnTrainManager::fgRsnTrainManager = 0;
21 //__________________________________________________________________________________________________
22 AliRsnTrainManager::AliRsnTrainManager(const char *name,const char *title) : TNamed(name,title),
26 // Default constructor
29 fgRsnTrainManager = this;
31 if (TClass::IsCallingNew() != TClass::kDummyNew) {
32 fGlobals = new TMap();
37 //__________________________________________________________________________________________________
38 AliRsnTrainManager::AliRsnTrainManager(const AliRsnTrainManager ©) : TNamed(copy),
39 fGlobals(copy.fGlobals)
46 //__________________________________________________________________________________________________
47 AliRsnTrainManager &AliRsnTrainManager::operator=(const AliRsnTrainManager ©)
50 // Assignment constructor
52 TNamed::operator=(copy);
56 fGlobals = copy.fGlobals;
60 //__________________________________________________________________________________________________
61 AliRsnTrainManager::~AliRsnTrainManager()
67 fgRsnTrainManager = 0;
70 //______________________________________________________________________________
71 void AliRsnTrainManager::SetGlobalStr(const char *key, const char *value,Bool_t verbose)
73 // Define a custom string variable mapped to a global unique name. The variable
74 // can be then retrieved by a given analysis macro via GetGlobalStr(key).
75 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
77 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
80 Bool_t valid = kFALSE;
81 TString existing = AliRsnTrainManager::GetGlobalStr(key, valid);
83 if (verbose) ::Error("AliRsnTrainManager::SetGlobalStr", "Global %s = %s already defined.", key, existing.Data());
86 mgr->GetGlobals()->Add(new TObjString(key), new TObjString(value));
89 //______________________________________________________________________________
90 const char *AliRsnTrainManager::GetGlobalStr(const char *key, Bool_t &valid)
92 // Static method to retrieve a global variable defined via SetGlobalStr.
94 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
96 TObject *value = mgr->GetGlobals()->GetValue(key);
99 return value->GetName();
102 //______________________________________________________________________________
103 void AliRsnTrainManager::SetGlobalInt(const char *key, Int_t value,Bool_t verbose)
105 // Define a custom integer variable mapped to a global unique name. The variable
106 // can be then retrieved by a given analysis macro via GetGlobalInt(key).
107 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
109 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
112 Bool_t valid = kFALSE;
113 Int_t existing = AliRsnTrainManager::GetGlobalInt(key, valid);
115 if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %i already defined.", key, existing);
118 mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%i",value)));
121 //______________________________________________________________________________
122 Int_t AliRsnTrainManager::GetGlobalInt(const char *key, Bool_t &valid)
124 // Static method to retrieve a global variable defined via SetGlobalInt.
126 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
128 TObject *value = mgr->GetGlobals()->GetValue(key);
129 if (!value) return 0;
131 TString s = value->GetName();
135 //______________________________________________________________________________
136 void AliRsnTrainManager::SetGlobalDbl(const char *key, Double_t value,Bool_t verbose)
138 // Define a custom double precision variable mapped to a global unique name. The variable
139 // can be then retrieved by a given analysis macro via GetGlobalInt(key).
140 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
142 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
145 Bool_t valid = kFALSE;
146 Double_t existing = AliRsnTrainManager::GetGlobalDbl(key, valid);
148 if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %g already defined.", key, existing);
151 mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%f",value)));
154 //______________________________________________________________________________
155 Double_t AliRsnTrainManager::GetGlobalDbl(const char *key, Bool_t &valid)
157 // Static method to retrieve a global variable defined via SetGlobalDbl.
159 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
161 TObject *value = mgr->GetGlobals()->GetValue(key);
162 if (!value) return 0;
164 TString s = value->GetName();
168 //______________________________________________________________________________
169 void AliRsnTrainManager::SetGlobalObj(const char *key, TObject *value,Bool_t verbose)
171 // Define a custom double precision variable mapped to a global unique name. The variable
172 // can be then retrieved by a given analysis macro via GetGlobalInt(key).
173 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
175 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
178 Bool_t valid = kFALSE;
179 TObject *existing = AliRsnTrainManager::GetGlobalObj(key, valid);
181 if (verbose) ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %p already defined.", key, existing);
184 mgr->GetGlobals()->Add(new TObjString(key), value->Clone());
187 //______________________________________________________________________________
188 TObject *AliRsnTrainManager::GetGlobalObj(const char *key, Bool_t &valid)
190 // Static method to retrieve a global variable defined via SetGlobalDbl.
192 AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
194 TObject *value = mgr->GetGlobals()->GetValue(key);
198 //______________________________________________________________________________
199 void AliRsnTrainManager::Print(Option_t */*option*/) const {
203 if (!fGlobals) return;
204 Printf("=========================================================");
206 Printf(" Rsn Global variables: \n");
207 TIter next(fGlobals->GetTable());
210 while ((a = (TPair *)next())) {
212 // if (a->Key()&& a->Key()->IsOnHeap()){
214 if (a->Value() && a->Value()->IsOnHeap()) {
215 str = dynamic_cast<TObjString *>(a->Value());
218 if (str) Printf(" %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
221 Printf("\n=========================================================");
223 /* Printf(" Rsn Particles and Cuts \n");
228 while ((a = (TPair *)next())) {
230 // if (a->Key()&& a->Key()->IsOnHeap()){
232 if (a->Value() && a->Value()->IsOnHeap()){
233 str = dynamic_cast<TObjString *>(a->Value());
236 if (str) Printf(" %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
240 Printf("\n=========================================================");