ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "AliCDBManager.h"
#include "AliITSCalibrationSDD.h"
#include "AliITSCorrMapSDD.h"
#include "AliCDBMetaData.h"
#include "AliCDBStorage.h"
#include "AliCDBId.h"
#include "AliCDBPath.h"
#include "AliCDBEntry.h"
#include <TObjArray.h>
#include <TRandom3.h>
#endif

void StoreMapsSDD(Int_t firstRun=0,Int_t lastRun=AliCDBRunRange::Infinity(), Bool_t optSmear=kFALSE){
  ///////////////////////////////////////////////////////////////////////
  // Macro to generate and store the correction maps for SDD           //
  // Generates:                                                        //
  //  1 file with 520 AliITSCorrMapSDD drift maps (MapsTimeSDD)        //
  ///////////////////////////////////////////////////////////////////////
  
  if(!AliCDBManager::Instance()->IsDefaultStorageSet()) {
    AliCDBManager::Instance()->SetDefaultStorage("local://OCDB");
  }
  

  AliCDBMetaData *md = new AliCDBMetaData();
  md->SetObjectClassName("TObjArray");
  md->SetResponsible("Francesco Prino");
  md->SetBeamPeriod(0);
  md->SetComment("Simulated data");



  AliCDBId mapT("ITS/Calib/MapsTimeSDD",firstRun,lastRun);
  TObjArray tmap(520);
  tmap.SetOwner(kFALSE);

  TRandom3 *gran = new TRandom3();
  
  AliITSCorrMapSDD* mapTime0;
  AliITSCorrMapSDD* mapTime1;
  for(Int_t mod=0;mod<260;mod++){
    // maps
    Char_t name[20];
    sprintf(name,"DriftTimeMap_%d_%d\n",mod,0);
    Int_t nbinsan=1;
    if(optSmear && (mod==10 || mod==240)){
      nbinsan=256;
      sprintf(name,"DriftTimeMap_%d_%d\n",mod,0);
      mapTime0 = new AliITSCorrMap2DSDD(name,nbinsan,72);
      sprintf(name,"DriftTimeMap_%d_%d\n",mod,1);
      mapTime1 = new AliITSCorrMap2DSDD(name,nbinsan,72);
    }else{
      sprintf(name,"DriftTimeMap_%d_%d\n",mod,0);
      mapTime0 = new AliITSCorrMap1DSDD(name,72);
      sprintf(name,"DriftTimeMap_%d_%d\n",mod,1);
      mapTime1 = new AliITSCorrMap1DSDD(name,72);
    }
    for(Int_t nan = 0;nan< nbinsan;nan++){
      for(Int_t nt = 0;nt<36*2;nt++){
	Double_t cnt0=0.;
	Double_t cnt1=0.;
	if(optSmear){
	  cnt0=gran->Gaus(0,20);
	  cnt1=gran->Gaus(0,20);
	}
	mapTime0->SetCellContent(nan,nt,cnt0);
	mapTime1->SetCellContent(nan,nt,cnt1);   
      }
    }
    tmap.Add(mapTime0);
    tmap.Add(mapTime1); 
    printf("Added module %d\n",mod);
  }
    
  AliCDBManager::Instance()->GetDefaultStorage()->Put(&tmap, mapT, md);

}
 StoreMapsSDD.C:1
 StoreMapsSDD.C:2
 StoreMapsSDD.C:3
 StoreMapsSDD.C:4
 StoreMapsSDD.C:5
 StoreMapsSDD.C:6
 StoreMapsSDD.C:7
 StoreMapsSDD.C:8
 StoreMapsSDD.C:9
 StoreMapsSDD.C:10
 StoreMapsSDD.C:11
 StoreMapsSDD.C:12
 StoreMapsSDD.C:13
 StoreMapsSDD.C:14
 StoreMapsSDD.C:15
 StoreMapsSDD.C:16
 StoreMapsSDD.C:17
 StoreMapsSDD.C:18
 StoreMapsSDD.C:19
 StoreMapsSDD.C:20
 StoreMapsSDD.C:21
 StoreMapsSDD.C:22
 StoreMapsSDD.C:23
 StoreMapsSDD.C:24
 StoreMapsSDD.C:25
 StoreMapsSDD.C:26
 StoreMapsSDD.C:27
 StoreMapsSDD.C:28
 StoreMapsSDD.C:29
 StoreMapsSDD.C:30
 StoreMapsSDD.C:31
 StoreMapsSDD.C:32
 StoreMapsSDD.C:33
 StoreMapsSDD.C:34
 StoreMapsSDD.C:35
 StoreMapsSDD.C:36
 StoreMapsSDD.C:37
 StoreMapsSDD.C:38
 StoreMapsSDD.C:39
 StoreMapsSDD.C:40
 StoreMapsSDD.C:41
 StoreMapsSDD.C:42
 StoreMapsSDD.C:43
 StoreMapsSDD.C:44
 StoreMapsSDD.C:45
 StoreMapsSDD.C:46
 StoreMapsSDD.C:47
 StoreMapsSDD.C:48
 StoreMapsSDD.C:49
 StoreMapsSDD.C:50
 StoreMapsSDD.C:51
 StoreMapsSDD.C:52
 StoreMapsSDD.C:53
 StoreMapsSDD.C:54
 StoreMapsSDD.C:55
 StoreMapsSDD.C:56
 StoreMapsSDD.C:57
 StoreMapsSDD.C:58
 StoreMapsSDD.C:59
 StoreMapsSDD.C:60
 StoreMapsSDD.C:61
 StoreMapsSDD.C:62
 StoreMapsSDD.C:63
 StoreMapsSDD.C:64
 StoreMapsSDD.C:65
 StoreMapsSDD.C:66
 StoreMapsSDD.C:67
 StoreMapsSDD.C:68
 StoreMapsSDD.C:69
 StoreMapsSDD.C:70
 StoreMapsSDD.C:71
 StoreMapsSDD.C:72
 StoreMapsSDD.C:73
 StoreMapsSDD.C:74
 StoreMapsSDD.C:75
 StoreMapsSDD.C:76
 StoreMapsSDD.C:77
 StoreMapsSDD.C:78
 StoreMapsSDD.C:79