ROOT logo
void CreateCalibPars_Miscalibrated_Scaled(){
  // Create TOF Calibration Object for miscalibrated detector
  // and write it on CDB
  AliTOFcalib *tofcalib = new AliTOFcalib();
  tofcalib->CreateCalArrays();
  TObjArray *tofCalOffline = (TObjArray*) tofcalib->GetTOFCalArrayOffline(); 
  // Input data for decalibration

  TFile f("$ALICE_ROOT/TOF/data/spectrumScaled.root","READ");  

  TH1F *hTimeToTFit=  (TH1F*)f.Get("hTimeToTScaled");
  TF1  *fit=hTimeToTFit->GetFunction("pol5");
  
  // Slewing parameters (same for all channels)

  Float_t par[6] = {0.,0.,0.,0.,0.,0.};
  Float_t kpar=0;
  for(Int_t i =0;i<6;i++){
    par[i]=fit->GetParameter(i);
    kpar=par[0];
    cout << " Slewing parameter " <<i<<" =" << par[i] << endl;
  }

  // Global time offset (randomly gen, gaussian with mean = 0.3, sig=0.08 ns)

  Float_t delay=0.;
  Float_t meanDelay=0.3;
  Float_t sigmaDelay=0.08;

  // ToT spectrum 

  TH1F *hToT=  (TH1F*)f.Get("hToTScaled");

  // Fill the Sim calibration object

  AliCDBManager *man = AliCDBManager::Instance();
  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  TRandom *rnd   = new TRandom(4357);
  Int_t nChannels = AliTOFGeometry::NSectors()*(2*(AliTOFGeometry::NStripC()+AliTOFGeometry::NStripB())+AliTOFGeometry::NStripA())*AliTOFGeometry::NpadZ()*AliTOFGeometry::NpadX();
  for (Int_t ipad = 0 ; ipad<nChannels; ipad++){
    AliTOFChannelOffline *calChannelOffline = (AliTOFChannelOffline*)tofCalOffline->At(ipad);
    delay=rnd->Gaus(meanDelay,sigmaDelay);
    par[0]=kpar+delay;
    calChannelOffline->SetSlewPar(par);
  }
  tofcalib->WriteParOfflineOnCDB("TOF/Calib","valid",0,AliCDBRunRange::Infinity());
  tofcalib->WriteSimHistoOnCDB("TOF/Calib",0,AliCDBRunRange::Infinity(),hToT);
  f.Close();
}


 CreateCalibPars_Miscalibrated_Scaled.C:1
 CreateCalibPars_Miscalibrated_Scaled.C:2
 CreateCalibPars_Miscalibrated_Scaled.C:3
 CreateCalibPars_Miscalibrated_Scaled.C:4
 CreateCalibPars_Miscalibrated_Scaled.C:5
 CreateCalibPars_Miscalibrated_Scaled.C:6
 CreateCalibPars_Miscalibrated_Scaled.C:7
 CreateCalibPars_Miscalibrated_Scaled.C:8
 CreateCalibPars_Miscalibrated_Scaled.C:9
 CreateCalibPars_Miscalibrated_Scaled.C:10
 CreateCalibPars_Miscalibrated_Scaled.C:11
 CreateCalibPars_Miscalibrated_Scaled.C:12
 CreateCalibPars_Miscalibrated_Scaled.C:13
 CreateCalibPars_Miscalibrated_Scaled.C:14
 CreateCalibPars_Miscalibrated_Scaled.C:15
 CreateCalibPars_Miscalibrated_Scaled.C:16
 CreateCalibPars_Miscalibrated_Scaled.C:17
 CreateCalibPars_Miscalibrated_Scaled.C:18
 CreateCalibPars_Miscalibrated_Scaled.C:19
 CreateCalibPars_Miscalibrated_Scaled.C:20
 CreateCalibPars_Miscalibrated_Scaled.C:21
 CreateCalibPars_Miscalibrated_Scaled.C:22
 CreateCalibPars_Miscalibrated_Scaled.C:23
 CreateCalibPars_Miscalibrated_Scaled.C:24
 CreateCalibPars_Miscalibrated_Scaled.C:25
 CreateCalibPars_Miscalibrated_Scaled.C:26
 CreateCalibPars_Miscalibrated_Scaled.C:27
 CreateCalibPars_Miscalibrated_Scaled.C:28
 CreateCalibPars_Miscalibrated_Scaled.C:29
 CreateCalibPars_Miscalibrated_Scaled.C:30
 CreateCalibPars_Miscalibrated_Scaled.C:31
 CreateCalibPars_Miscalibrated_Scaled.C:32
 CreateCalibPars_Miscalibrated_Scaled.C:33
 CreateCalibPars_Miscalibrated_Scaled.C:34
 CreateCalibPars_Miscalibrated_Scaled.C:35
 CreateCalibPars_Miscalibrated_Scaled.C:36
 CreateCalibPars_Miscalibrated_Scaled.C:37
 CreateCalibPars_Miscalibrated_Scaled.C:38
 CreateCalibPars_Miscalibrated_Scaled.C:39
 CreateCalibPars_Miscalibrated_Scaled.C:40
 CreateCalibPars_Miscalibrated_Scaled.C:41
 CreateCalibPars_Miscalibrated_Scaled.C:42
 CreateCalibPars_Miscalibrated_Scaled.C:43
 CreateCalibPars_Miscalibrated_Scaled.C:44
 CreateCalibPars_Miscalibrated_Scaled.C:45
 CreateCalibPars_Miscalibrated_Scaled.C:46
 CreateCalibPars_Miscalibrated_Scaled.C:47
 CreateCalibPars_Miscalibrated_Scaled.C:48
 CreateCalibPars_Miscalibrated_Scaled.C:49
 CreateCalibPars_Miscalibrated_Scaled.C:50
 CreateCalibPars_Miscalibrated_Scaled.C:51
 CreateCalibPars_Miscalibrated_Scaled.C:52