ROOT logo
void MakeEMCALZeroMisAlignment(TString geoname = "EMCAL_COMPLETE12SMV1_DCAL_8SM"){
  // Create TClonesArray of zero misalignment objects for EMCAL
  //
  const char* macroname = "MakeEMCALZeroMisAlignment.C";
  if(geoname=="")geoname=AliEMCALGeometry::GetDefaultGeometryName();
  const AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(geoname,"");
  if(!geom) {
    Error("MakeEMCALZeroMisAlignment","Cannot obtain AliEMCALGeometry singleton\n");
    return;
  }

  TClonesArray *array = new TClonesArray("AliAlignObjParams",geom->GetNumberOfSuperModules());
  TClonesArray &alobj = *array;

  /*
  Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;

  const TString fbasepath = "EMCAL/FullSupermodule";
  const TString hbasepath = "EMCAL/HalfSupermodule";
  TString pathstr;

  Int_t iIndex=0; // let all modules have index=0 in a layer with no LUT
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);

  Int_t i;
  Int_t j=0;

  for(i=0; i<10; i++){
    pathstr=fbasepath;
    pathstr+=(i+1);
    new(alobj[j++]) AliAlignObjParams(pathstr, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  }

  for(i=0; i<2; i++){
    pathstr=hbasepath;
    pathstr+=(i+1);
    new(alobj[j++]) AliAlignObjParams(pathstr, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  }
  */

  AliEMCALSurvey emcalSurvey;
  emcalSurvey.CreateNullObjects(alobj,geom);

  if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
    // save on file
    const char* filename = "EMCALzeroMisalignment.root";
    TFile f(filename,"RECREATE");
    if(!f){
      Error(macroname,"cannot open file for output\n");
      return;
    }
    Info(macroname,"Saving alignment objects to the file %s", filename);
    f.cd();
    f.WriteObject(array,"EMCALAlignObjs","kSingleKey");
    f.Close();
  }else{
    // save in CDB storage
    TString Storage = gSystem->Getenv("STORAGE");
    if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
      Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
      return;
    }
    Info(macroname,"Saving alignment objects in CDB storage %s",
      Storage.Data());
    AliCDBManager* cdb = AliCDBManager::Instance();
    AliCDBStorage* storage = cdb->GetStorage(Storage.Data());
    if(!storage){
      Error(macroname,"Unable to open storage %s\n",Storage.Data());
      return;
    }
    AliCDBMetaData* md = new AliCDBMetaData();
    md->SetResponsible("Jennifer Klay");
    md->SetComment("Zero misalignment for EMCAL");
    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
    AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
    storage->Put(array,id,md);
  }

  array->Delete();

}

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