Adding macros to create Calibration objects
[u/mrichter/AliRoot.git] / TRD / Macros / AliTRDcreateTrapConfigCDB.C
1 void AliTRDcreateTrapConfigCDB(const TString &dirname = ".") {
2
3   TString initName("initialize.r3610");
4   TRegexp initCheck("initialize.r[0-9]*$");
5   TRegexp cfgCheck("cf_.*.r[0-9]*$");
6
7   AliTRDCalTrapConfig *caltrap = new AliTRDCalTrapConfig();
8
9   TList cfgList;
10
11   void *dirhandle = gSystem->OpenDirectory(dirname);
12
13   const char* filename;
14   while (filename = gSystem->GetDirEntry(dirhandle)) {
15     TString file(filename);
16     if (file.Contains(initCheck)) {
17       initName = file;
18       continue;
19     }
20
21     if (file.Contains(cfgCheck)) {
22       cfgList.Add(new TObjString(file));
23     }
24   }
25
26   TIter cfgIter(&cfgList);
27
28   TObjString *cfgName = 0x0;
29   while (cfgName = (TObjString*) cfgIter()) {
30     ::Info("createTrapConfigCDB", Form("adding config: %s", cfgName->GetString().Data()));
31     AliTRDtrapConfig *cfg = new AliTRDtrapConfig(cfgName->GetString(), cfgName->GetString());
32     AliTRDtrapConfigHandler cfgHandler(cfg);
33     cfgHandler.ResetMCMs();
34     cfgHandler.Init();
35     cfgHandler.LoadConfig(dirname + "/" + initName);
36     cfgHandler.LoadConfig(dirname + "/" + cfgName->GetString());
37     caltrap->Add(cfg);
38   }
39
40   AliCDBMetaData *cdbMeta = new AliCDBMetaData("Jochen Klein <jochen.klein@cern.ch>");
41   AliCDBId cdbId("TRD/Calib/TrapConfig", 0, 999999999);;
42
43   AliCDBStorage *storage = AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT/OCDB");
44   storage->Put(caltrap, cdbId, cdbMeta);
45 }