ROOT logo
void MakeADZeroMisAlignment()
{
  // Create TClonesArray of zero misalignment objects for AD
  // 
  const char* macroname = "MakeADZeroMisAlignment.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 * ADC1 = "AD/ADC1";
  const char * ADC2 = "AD/ADC2";
  const char * ADA1 = "AD/ADA1";
  const char * ADA2 = "AD/ADA2";

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

  new( alobj[0] ) AliAlignObjParams( ADC1, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE );
  new( alobj[1] ) AliAlignObjParams( ADC2, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE );
  new( alobj[2] ) AliAlignObjParams( ADA1, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE );
  new( alobj[3] ) AliAlignObjParams( ADA2, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE );

  if ( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ) {
     
    // save in file
    const char* filename = "ADzeroMisalignment.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, "ADAlignObjs", "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* storageCDB = cdb->GetStorage(storage.Data());
    if ( !storageCDB ) {
      Error( macroname,"Unable to open storage %s\n", storageCDB.Data());
      return;
    }
    AliCDBMetaData* md = new AliCDBMetaData();
    md->SetResponsible( "Ernesto Lopez" );
    md->SetComment( "Alignment objects for AD zero misalignment" );
    md->SetAliRootVersion( gSystem->Getenv("ARVERSION") );
    AliCDBId id( "AD/Align/Data", 0, AliCDBRunRange::Infinity() );
    storageCDB->Put( array, id, md );
  }

  array->Delete();

}

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