ROOT logo
// Script to create calibration parameters and store them into CDB 
// from gain values determined for 2007 beam test
//
// JLK 2007-12-04
//
//
#if !defined(__CINT__)
#include "AliRun.h"
#include "AliEMCALCalibData.h"
#include "AliCDBMetaData.h"
#include "AliCDBId.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#endif

void SetCalibDB() {

  Int_t firstRun   =  0; // What is this                                                
  Int_t lastRun    = 9999999;
  Int_t beamPeriod =  1;
  char* objFormat  = "";

  TString DBFolder  ="local://$ALICE_ROOT/OCDB/EMCAL/beamtest07";
  firstRun  =  0;
  lastRun   =  999999999;
  objFormat = "EMCAL beam test 2007 gain factors and pedestals";

  AliEMCALCalibData *calibda=new AliEMCALCalibData("EMCAL");

  Float_t fADCpedestal = 0.009;
  Float_t fADCchannel  = 0.0153;  // 250 GeV / (16*1024)                               
  Float_t ped = 0.;
  Float_t cc = fADCchannel;

  Int_t nSMod  = 12;
  Int_t nCol   = 48;
  Int_t nRow   = 24;
  Int_t nRow2  = 12; //Modules 11 and 12 are half modules                          

  Int_t colOffset = 40;
  Int_t rowOffset = 8;

  Double_t gain_ratios[8][8] =
    {
      15.9289, 16.2141, 16.1204, 15.9118,
      15.9363, 15.9402, 16.2257, 16.0097,
      16.058, 16.1116, 16.039, 16.4167,
      16.2148, 16.1399, 16.1515, 16.2194,
      15.9082, 16.0776, 16.0496, 16.2353,
      15.8054, 16.2158, 16.2344, 16.1023,
      15.8903, 16.2387, 16.13, 16.157,
      16.0685, 16.172, 16.3495, 16.3887,
      16.2842, 16.049, 16.4328, 16.3954,
      16.4226, 15.7254, 16.1634, 16.3182,
      16.4216, 16.1201, 16.0000, 16.2305,
      16.0266, 16.3573, 16.1382, 16.237,
      16.2981, 16.1796, 15.854, 16.4189,
      15.6425, 16.287, 16.3293, 16.6308,
      16.2469, 16.0412, 16.252, 16.3367,
      16.1412, 16.0646, 16.3996, 16.3479
    };

  
  Float_t gains[8][8] =
    {
      4.43274, 6.7283, 8.23733, 3.59882,
      4.2717, 2.85658, 4.86389, 2.71961,
      3.05523, 3.02552, 3.50615, 3.26494,
      6.69024, 2.51058, 8.42275, 2.83824,
      8.05074, 5.36051, 4.36794, 4.73468,
      9.9684, 5.5, 6.42999, 5.6,
      7.37306, 5.28314, 5.27662, 5.26982,
      3.29468, 5.23107, 6.40948, 4.06855,
      4.09685, 5.37323, 5.32816, 5.89487,
      9.2395, 5.3, 4.77239, 5.0,
      4.85923, 3.44063, 4.74517, 5.28772,
      3.80171, 4.84878, 5.12039, 4.59205,
      2.34745, 3.16971, 3.61231, 3.65195,
      3.43496, 3.4, 3.65678, 2.9,
      2.71648, 3.39577, 3.40896, 3.31741,
      3.24286, 3.51346, 2.61503, 3.44246
    };

  for(Int_t supermodule=0; supermodule < nSMod; supermodule++) {
    for(Int_t column=0; column< nCol; column++) {
      if(supermodule >= 10)
        nRow = nRow2;
      for(Int_t row=0; row< nRow; row++) {
	if(supermodule < 2 && column > 39 && row > 7 && row < 16) {
	  cc = 1./gain_ratios[column-colOffset][row-rowOffset]/gains[column-colOffset][row-rowOffset];
	  cout << "column = " << column << " column - colOffset = " << column-colOffset << " row = " << " row Offset = " << row-rowOffset << endl;
	}
        calibda->SetADCchannel(supermodule,column,row,cc);
        calibda->SetADCpedestal(supermodule,column,row,ped);
      }
    }
  }

  //Store calibration data into database
  AliCDBMetaData md;
  md.SetComment(objFormat);
  md.SetBeamPeriod(beamPeriod);
  md.SetResponsible("David Silvermyr");
  AliCDBId id("EMCAL/Calib/Data",firstRun,lastRun); // create in
						    // EMCAL/Calib/Data DBFolder                     

  AliCDBManager* man = AliCDBManager::Instance();
  AliCDBStorage* loc = man->GetStorage(DBFolder.Data());
  loc->Put(calibda, id, &md);

}







 SetCalibDB.C:1
 SetCalibDB.C:2
 SetCalibDB.C:3
 SetCalibDB.C:4
 SetCalibDB.C:5
 SetCalibDB.C:6
 SetCalibDB.C:7
 SetCalibDB.C:8
 SetCalibDB.C:9
 SetCalibDB.C:10
 SetCalibDB.C:11
 SetCalibDB.C:12
 SetCalibDB.C:13
 SetCalibDB.C:14
 SetCalibDB.C:15
 SetCalibDB.C:16
 SetCalibDB.C:17
 SetCalibDB.C:18
 SetCalibDB.C:19
 SetCalibDB.C:20
 SetCalibDB.C:21
 SetCalibDB.C:22
 SetCalibDB.C:23
 SetCalibDB.C:24
 SetCalibDB.C:25
 SetCalibDB.C:26
 SetCalibDB.C:27
 SetCalibDB.C:28
 SetCalibDB.C:29
 SetCalibDB.C:30
 SetCalibDB.C:31
 SetCalibDB.C:32
 SetCalibDB.C:33
 SetCalibDB.C:34
 SetCalibDB.C:35
 SetCalibDB.C:36
 SetCalibDB.C:37
 SetCalibDB.C:38
 SetCalibDB.C:39
 SetCalibDB.C:40
 SetCalibDB.C:41
 SetCalibDB.C:42
 SetCalibDB.C:43
 SetCalibDB.C:44
 SetCalibDB.C:45
 SetCalibDB.C:46
 SetCalibDB.C:47
 SetCalibDB.C:48
 SetCalibDB.C:49
 SetCalibDB.C:50
 SetCalibDB.C:51
 SetCalibDB.C:52
 SetCalibDB.C:53
 SetCalibDB.C:54
 SetCalibDB.C:55
 SetCalibDB.C:56
 SetCalibDB.C:57
 SetCalibDB.C:58
 SetCalibDB.C:59
 SetCalibDB.C:60
 SetCalibDB.C:61
 SetCalibDB.C:62
 SetCalibDB.C:63
 SetCalibDB.C:64
 SetCalibDB.C:65
 SetCalibDB.C:66
 SetCalibDB.C:67
 SetCalibDB.C:68
 SetCalibDB.C:69
 SetCalibDB.C:70
 SetCalibDB.C:71
 SetCalibDB.C:72
 SetCalibDB.C:73
 SetCalibDB.C:74
 SetCalibDB.C:75
 SetCalibDB.C:76
 SetCalibDB.C:77
 SetCalibDB.C:78
 SetCalibDB.C:79
 SetCalibDB.C:80
 SetCalibDB.C:81
 SetCalibDB.C:82
 SetCalibDB.C:83
 SetCalibDB.C:84
 SetCalibDB.C:85
 SetCalibDB.C:86
 SetCalibDB.C:87
 SetCalibDB.C:88
 SetCalibDB.C:89
 SetCalibDB.C:90
 SetCalibDB.C:91
 SetCalibDB.C:92
 SetCalibDB.C:93
 SetCalibDB.C:94
 SetCalibDB.C:95
 SetCalibDB.C:96
 SetCalibDB.C:97
 SetCalibDB.C:98
 SetCalibDB.C:99
 SetCalibDB.C:100
 SetCalibDB.C:101
 SetCalibDB.C:102
 SetCalibDB.C:103
 SetCalibDB.C:104
 SetCalibDB.C:105
 SetCalibDB.C:106
 SetCalibDB.C:107
 SetCalibDB.C:108
 SetCalibDB.C:109
 SetCalibDB.C:110
 SetCalibDB.C:111
 SetCalibDB.C:112
 SetCalibDB.C:113
 SetCalibDB.C:114
 SetCalibDB.C:115
 SetCalibDB.C:116
 SetCalibDB.C:117
 SetCalibDB.C:118
 SetCalibDB.C:119
 SetCalibDB.C:120