Adding macros to create Calibration objects
[u/mrichter/AliRoot.git] / ZDC / MakeZDCChMapCalib.C
1 MakeZDCChMapCalib(){
2    // Create OCDB object for ZDC pedestal
3    const char* macroname = "MakeZDCChMapCalib.C";
4  
5    const int kNch=48; //const int kNScch=32;
6    Int_t readMap[kNch][6]; 
7
8    FILE *file;
9    if((file = fopen("./ShuttleInput/ZDCChMapping.dat","r")) != NULL){
10      for(Int_t j=0; j<kNch; j++){       
11        for(Int_t k=0; k<6; k++){
12          int read = fscanf(file,"%d",&readMap[j][k]);
13          if(read == 0) printf(" Failing in reading data from mapping file\n");
14        }
15      }
16      fclose(file);
17    }
18
19    AliZDCChMap *mapCalib = new AliZDCChMap();
20    for(Int_t k=0; k<kNch; k++){
21       mapCalib->SetADCModule(k,readMap[k][1]);
22       mapCalib->SetADCChannel(k,readMap[k][2]);
23       mapCalib->SetDetector(k,readMap[k][4]);
24       mapCalib->SetSector(k,readMap[k][5]);
25     }
26   
27    if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
28      // save in file
29      const char* filename = "ZDCChMap.root";
30      TFile f(filename, "RECREATE");
31      if(!f){
32        Error(macroname,"cannot open file for output\n");
33        return;
34      }
35      Info(macroname,"Saving alignment objects to the file %s", filename);
36      f.cd();
37      f.WriteObject(mapCalib,"ZDCPedestals","kSingleKey");
38      f.Close();
39    }
40    else{
41      // save in CDB storage
42      TString Storage = gSystem->Getenv("STORAGE");
43      if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
44        Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
45        return;
46      }
47      Info(macroname,"Saving alignment objects in CDB storage %s", Storage.Data());
48      AliCDBManager* cdb = AliCDBManager::Instance();
49      AliCDBStorage* storage = cdb->GetStorage(Storage.Data());
50      if(!storage){
51        Error(macroname,"Unable to open storage %s\n",Storage.Data());
52        return;
53      }
54      AliCDBMetaData* md = new AliCDBMetaData();
55      md->SetResponsible("Chiara Oppedisano");
56      md->SetComment("Calibration objects for ZDC mapping");
57      md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
58      md->SetObjectClassName("AliZDCPedestals");
59      AliCDBId id("ZDC/Calib/ChMap",0,AliCDBRunRange::Infinity());
60      storage->Put(mapCalib,id,md);
61    }
62    
63    mapCalib->Delete(); 
64
65 }