]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/AliRsnTrainManager.cxx
Fixed typo in macros/lego_train/AddRsnTaskTrain.C (mvala)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnTrainManager.cxx
1 //
2 // *** Class AliRsnTrainManager ***
3 //
4 //  Base class for Action
5 //
6 // authors: Martin Vala (martin.vala@cern.ch)
7 //          Jan Musinsky (jan.musinsky@cern.ch)
8 //
9
10 #include <TError.h>
11 #include <TObjString.h>
12 #include <TMap.h>
13 #include <TClass.h>
14
15 #include "AliRsnTrainManager.h"
16
17 ClassImp(AliRsnTrainManager)
18
19 AliRsnTrainManager *AliRsnTrainManager::fgRsnTrainManager = 0;
20
21 //__________________________________________________________________________________________________
22 AliRsnTrainManager::AliRsnTrainManager(const char *name,const char *title) : TNamed(name,title),
23                 fGlobals(0)
24 {
25         //
26         // Default constructor
27         //
28
29         fgRsnTrainManager = this;
30
31         if (TClass::IsCallingNew() != TClass::kDummyNew) {
32              fGlobals    = new TMap();
33            }
34
35 }
36
37 //__________________________________________________________________________________________________
38 AliRsnTrainManager::AliRsnTrainManager(const AliRsnTrainManager &copy) : TNamed(copy),
39                 fGlobals(copy.fGlobals)
40 {
41         //
42         // Copy constructor
43         //
44 }
45
46 //__________________________________________________________________________________________________
47 AliRsnTrainManager &AliRsnTrainManager::operator=(const AliRsnTrainManager &copy)
48 {
49         //
50         // Assignment constructor
51         //
52         TNamed::operator=(copy);
53         if (this == &copy)
54                 return *this;
55
56         fGlobals = copy.fGlobals;
57         return (*this);
58 }
59
60 //__________________________________________________________________________________________________
61 AliRsnTrainManager::~AliRsnTrainManager()
62 {
63         //
64         // Destructor
65         //
66         delete fGlobals;
67         fgRsnTrainManager = 0;
68 }
69
70 //______________________________________________________________________________
71 void AliRsnTrainManager::SetGlobalStr(const char *key, const char *value)
72 {
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();
76         if (!mgr) {
77                 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
78                 return;
79         }
80         Bool_t valid = kFALSE;
81         TString existing = AliRsnTrainManager::GetGlobalStr(key, valid);
82         if (valid) {
83                 ::Error("AliRsnTrainManager::SetGlobalStr", "Global %s = %s already defined.", key, existing.Data());
84                 return;
85         }
86         mgr->GetGlobals()->Add(new TObjString(key), new TObjString(value));
87 }
88
89 //______________________________________________________________________________
90 const char *AliRsnTrainManager::GetGlobalStr(const char *key, Bool_t &valid)
91 {
92         // Static method to retrieve a global variable defined via SetGlobalStr.
93         valid = kFALSE;
94         AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
95         if (!mgr) return 0;
96         TObject *value = mgr->GetGlobals()->GetValue(key);
97         if (!value) return 0;
98         valid = kTRUE;
99         return value->GetName();
100 }
101
102 //______________________________________________________________________________
103 void AliRsnTrainManager::SetGlobalInt(const char *key, Int_t value)
104 {
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();
108         if (!mgr) {
109                 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
110                 return;
111         }
112         Bool_t valid = kFALSE;
113         Int_t existing = AliRsnTrainManager::GetGlobalInt(key, valid);
114         if (valid) {
115                 ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %i already defined.", key, existing);
116                 return;
117         }
118         mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%i",value)));
119 }
120
121 //______________________________________________________________________________
122 Int_t AliRsnTrainManager::GetGlobalInt(const char *key, Bool_t &valid)
123 {
124         // Static method to retrieve a global variable defined via SetGlobalInt.
125         valid = kFALSE;
126         AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
127         if (!mgr) return 0;
128         TObject *value = mgr->GetGlobals()->GetValue(key);
129         if (!value) return 0;
130         valid = kTRUE;
131         TString s = value->GetName();
132         return s.Atoi();
133 }
134
135 //______________________________________________________________________________
136 void AliRsnTrainManager::SetGlobalDbl(const char *key, Double_t value)
137 {
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();
141         if (!mgr) {
142                 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
143                 return;
144         }
145         Bool_t valid = kFALSE;
146         Double_t existing = AliRsnTrainManager::GetGlobalDbl(key, valid);
147         if (valid) {
148                 ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %g already defined.", key, existing);
149                 return;
150         }
151         mgr->GetGlobals()->Add(new TObjString(key), new TObjString(TString::Format("%f.16",value)));
152 }
153
154 //______________________________________________________________________________
155 Double_t AliRsnTrainManager::GetGlobalDbl(const char *key, Bool_t &valid)
156 {
157         // Static method to retrieve a global variable defined via SetGlobalDbl.
158         valid = kFALSE;
159         AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
160         if (!mgr) return 0;
161         TObject *value = mgr->GetGlobals()->GetValue(key);
162         if (!value) return 0;
163         valid = kTRUE;
164         TString s = value->GetName();
165         return s.Atof();
166 }
167
168 //______________________________________________________________________________
169 void AliRsnTrainManager::SetGlobalObj(const char *key, TObject *value)
170 {
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();
174         if (!mgr) {
175                 ::Error("AliRsnTrainManager::SetGlobalStr", "No analysis manager defined");
176                 return;
177         }
178         Bool_t valid = kFALSE;
179         TObject *existing = AliRsnTrainManager::GetGlobalObj(key, valid);
180         if (valid) {
181                 ::Error("AliRsnTrainManager::SetGlobalInt", "Global %s = %p already defined.", key, existing);
182                 return;
183         }
184         mgr->GetGlobals()->Add(new TObjString(key), value->Clone());
185 }
186
187 //______________________________________________________________________________
188 TObject *AliRsnTrainManager::GetGlobalObj(const char *key, Bool_t &valid)
189 {
190         // Static method to retrieve a global variable defined via SetGlobalDbl.
191         valid = kFALSE;
192         AliRsnTrainManager *mgr = AliRsnTrainManager::GetRsnTrainManager();
193         if (!mgr) return 0;
194         TObject *value = mgr->GetGlobals()->GetValue(key);
195         return value;
196 }
197
198 //______________________________________________________________________________
199 void AliRsnTrainManager::Print(Option_t */*option*/) const {
200
201
202
203         if (!fGlobals) return;
204         Printf("=========================================================");
205
206         Printf("            Rsn Global variables: \n");
207         TIter next(fGlobals->GetTable());
208         TPair *a;
209         TObjString *str;
210         while ((a = (TPair *)next())) {
211                 str = 0;
212 //              if (a->Key()&& a->Key()->IsOnHeap()){
213 //              }
214                 if (a->Value() && a->Value()->IsOnHeap()){
215                         str = dynamic_cast<TObjString *>(a->Value());
216                 }
217                 if (str) {
218                         if (str) Printf("  %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
219                 }
220         }
221         Printf("\n=========================================================");
222         Printf("            Rsn Particles and Cuts \n");
223
224         next.Reset();
225 //      AliRsnCut
226         while ((a = (TPair *)next())) {
227                 str = 0;
228 //              if (a->Key()&& a->Key()->IsOnHeap()){
229 //              }
230                 if (a->Value() && a->Value()->IsOnHeap()){
231                         str = dynamic_cast<TObjString *>(a->Value());
232                 }
233                 if (str) {
234                         if (str) Printf("  %20s = %-20s",a->Key()->GetName(),str->GetString().Data());
235                 }
236         }
237
238         Printf("\n=========================================================");
239
240 }