ROOT logo
void MakeZDCZeroMisAlignment(){
  // Create TClonesArray of zero misalignment objects for ZDC
  // 
  const char* macroname = "MakeZDCZeroMisAlignment.C";

  TClonesArray *array = new TClonesArray("AliAlignObjParams",10);
  TClonesArray &alobj = *array;

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

  const char *ZDCCn="ZDC/NeutronZDC_C";
  const char *ZDCCp="ZDC/ProtonZDC_C";
  const char *ZDCAn="ZDC/NeutronZDC_A";
  const char *ZDCAp="ZDC/ProtonZDC_A";

  UShort_t iIndex=0;
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);

  new(alobj[0]) AliAlignObjParams(ZDCCn, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[1]) AliAlignObjParams(ZDCCp, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[2]) AliAlignObjParams(ZDCAn, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[3]) AliAlignObjParams(ZDCAp, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);

  if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
    // save in file
    const char* filename = "ZDCzeroMisalignment.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,"ZDCAlignObjs","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("Chiara Oppedisano");
    md->SetComment("Alignment objects for ZDC zero misalignment");
    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
    AliCDBId id("ZDC/Align/Data",0,AliCDBRunRange::Infinity());
    storage->Put(array,id,md);
  }

  array->Delete();

}

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