#include "AliOADBFillingScheme.h"
#include "TMap.h"
#include "AliLog.h"
#include "TBrowser.h"
#include "TFolder.h"
#include <iostream>
using namespace std;
ClassImp(AliOADBFillingScheme)
AliOADBFillingScheme::AliOADBFillingScheme() : TNamed("AliOADBFillingScheme", "OADB object storing filling scheme infos"), fFSName(""), fBXIds(0){
}
AliOADBFillingScheme::AliOADBFillingScheme(char* name) : TNamed(name, "OADB object storing filling scheme infos"), fFSName(""), fBXIds(0){
Init();
}
void AliOADBFillingScheme::Init() {
fBXIds = new TMap();
fFSName = "";
}
AliOADBFillingScheme::~AliOADBFillingScheme(){
if(fBXIds) delete fBXIds;
}
const char * AliOADBFillingScheme::GetBXIDs(const char * beamSide) const
{
if( !strcmp(beamSide,"ACE") && !(TObjString*)fBXIds->GetValue(beamSide))
AliWarning("Beware, no correction for the BXIDs for ACE");
if (!strcmp(beamSide, "AC") && !(TObjString*)fBXIds->GetValue(beamSide)) {
TString &bxa = ((TObjString*)fBXIds->GetValue("A"))->String();
TString &bxc = ((TObjString*)fBXIds->GetValue("C"))->String();
if(bxa.IsNull() && bxc.IsNull()) return "";
if(bxc.IsNull()) return bxa.Data();
if(bxa.IsNull()) return bxc.Data();
static TString bxBoth = bxa.Data();
bxBoth += bxc.Data();
return bxBoth.Data();
}
if(!(TObjString*)fBXIds->GetValue(beamSide)) return "";
TString &bx = ((TObjString*)fBXIds->GetValue(beamSide))->String();
if(bx.IsNull()) return "";
return bx.Data();
}
void AliOADBFillingScheme::Browse(TBrowser *b)
{
if (b) {
b->Add(new TObjString(Form("Filling Scheme %s",GetFillingSchemeName())));
TIterator * mapIter = fBXIds->MakeIterator();
TObjString * key = 0;
while ((key = (TObjString*) mapIter->Next())) {
TFolder * folder = new TFolder(key->String().Data(), "beam side");
TObjString * value = (TObjString*) fBXIds->GetValue(key);
TObjArray * tokens = value->String().Tokenize(" ");
TIterator * tokIter = tokens->MakeIterator();
TObjString * bxNum = 0;
while ((bxNum = (TObjString*) tokIter->Next())){
folder->Add(bxNum);
}
b->Add(folder);
delete tokIter;
delete tokens;
}
delete mapIter;
}
else
TObject::Browse(b);
}
void AliOADBFillingScheme::Print(Option_t* option) const {
cout << "Filling scheme Name " << fFSName.Data() << option << endl;
fBXIds->Print(option);
}
AliOADBFillingScheme.cxx:1 AliOADBFillingScheme.cxx:2 AliOADBFillingScheme.cxx:3 AliOADBFillingScheme.cxx:4 AliOADBFillingScheme.cxx:5 AliOADBFillingScheme.cxx:6 AliOADBFillingScheme.cxx:7 AliOADBFillingScheme.cxx:8 AliOADBFillingScheme.cxx:9 AliOADBFillingScheme.cxx:10 AliOADBFillingScheme.cxx:11 AliOADBFillingScheme.cxx:12 AliOADBFillingScheme.cxx:13 AliOADBFillingScheme.cxx:14 AliOADBFillingScheme.cxx:15 AliOADBFillingScheme.cxx:16 AliOADBFillingScheme.cxx:17 AliOADBFillingScheme.cxx:18 AliOADBFillingScheme.cxx:19 AliOADBFillingScheme.cxx:20 AliOADBFillingScheme.cxx:21 AliOADBFillingScheme.cxx:22 AliOADBFillingScheme.cxx:23 AliOADBFillingScheme.cxx:24 AliOADBFillingScheme.cxx:25 AliOADBFillingScheme.cxx:26 AliOADBFillingScheme.cxx:27 AliOADBFillingScheme.cxx:28 AliOADBFillingScheme.cxx:29 AliOADBFillingScheme.cxx:30 AliOADBFillingScheme.cxx:31 AliOADBFillingScheme.cxx:32 AliOADBFillingScheme.cxx:33 AliOADBFillingScheme.cxx:34 AliOADBFillingScheme.cxx:35 AliOADBFillingScheme.cxx:36 AliOADBFillingScheme.cxx:37 AliOADBFillingScheme.cxx:38 AliOADBFillingScheme.cxx:39 AliOADBFillingScheme.cxx:40 AliOADBFillingScheme.cxx:41 AliOADBFillingScheme.cxx:42 AliOADBFillingScheme.cxx:43 AliOADBFillingScheme.cxx:44 AliOADBFillingScheme.cxx:45 AliOADBFillingScheme.cxx:46 AliOADBFillingScheme.cxx:47 AliOADBFillingScheme.cxx:48 AliOADBFillingScheme.cxx:49 AliOADBFillingScheme.cxx:50 AliOADBFillingScheme.cxx:51 AliOADBFillingScheme.cxx:52 AliOADBFillingScheme.cxx:53 AliOADBFillingScheme.cxx:54 AliOADBFillingScheme.cxx:55 AliOADBFillingScheme.cxx:56 AliOADBFillingScheme.cxx:57 AliOADBFillingScheme.cxx:58 AliOADBFillingScheme.cxx:59 AliOADBFillingScheme.cxx:60 AliOADBFillingScheme.cxx:61 AliOADBFillingScheme.cxx:62 AliOADBFillingScheme.cxx:63 AliOADBFillingScheme.cxx:64 AliOADBFillingScheme.cxx:65 AliOADBFillingScheme.cxx:66 AliOADBFillingScheme.cxx:67 AliOADBFillingScheme.cxx:68 AliOADBFillingScheme.cxx:69 AliOADBFillingScheme.cxx:70 AliOADBFillingScheme.cxx:71 AliOADBFillingScheme.cxx:72 AliOADBFillingScheme.cxx:73 AliOADBFillingScheme.cxx:74 AliOADBFillingScheme.cxx:75 AliOADBFillingScheme.cxx:76 AliOADBFillingScheme.cxx:77 AliOADBFillingScheme.cxx:78 AliOADBFillingScheme.cxx:79 AliOADBFillingScheme.cxx:80 AliOADBFillingScheme.cxx:81 AliOADBFillingScheme.cxx:82 AliOADBFillingScheme.cxx:83 AliOADBFillingScheme.cxx:84 AliOADBFillingScheme.cxx:85 AliOADBFillingScheme.cxx:86 AliOADBFillingScheme.cxx:87 AliOADBFillingScheme.cxx:88 AliOADBFillingScheme.cxx:89 AliOADBFillingScheme.cxx:90 AliOADBFillingScheme.cxx:91 AliOADBFillingScheme.cxx:92 AliOADBFillingScheme.cxx:93 AliOADBFillingScheme.cxx:94 AliOADBFillingScheme.cxx:95 AliOADBFillingScheme.cxx:96 AliOADBFillingScheme.cxx:97 AliOADBFillingScheme.cxx:98 AliOADBFillingScheme.cxx:99 AliOADBFillingScheme.cxx:100 AliOADBFillingScheme.cxx:101 AliOADBFillingScheme.cxx:102 AliOADBFillingScheme.cxx:103 AliOADBFillingScheme.cxx:104 AliOADBFillingScheme.cxx:105 AliOADBFillingScheme.cxx:106 AliOADBFillingScheme.cxx:107 AliOADBFillingScheme.cxx:108 AliOADBFillingScheme.cxx:109 AliOADBFillingScheme.cxx:110 AliOADBFillingScheme.cxx:111 AliOADBFillingScheme.cxx:112 AliOADBFillingScheme.cxx:113 AliOADBFillingScheme.cxx:114 AliOADBFillingScheme.cxx:115 AliOADBFillingScheme.cxx:116 AliOADBFillingScheme.cxx:117 AliOADBFillingScheme.cxx:118