ROOT logo
void MakeSTRUCTResMisAlignment(){
  // Create TClonesArray of residual misalignment objects for all STRUCTures
  // (presently this includes only FRAME)
  // 
  const char* macroname = "MakeSTRUCTResMisAlignment.C";

  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);

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

  const char* baseSymName ="FRAME/Sector"; //base of symbolic name corresponding to base of path "ALIC_1/B077_1/BSEGMO";
  TString symname;

  for(Int_t sm=0; sm<18; sm++){
    symname = baseSymName;
    symname += sm;
    cout<<symname.Data()<<endl;
    new((*array)[sm]) AliAlignObjParams(symname.Data(),dvoluid,0.,0.,0.,0.,0.,0.,kTRUE);
  }

  if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
    // save on file
    const char* filename = "STRUCTresMisalignment.root";
    TFile f(filename,"RECREATE");
    if(!f){
      Error(macroname,"cannot open file for output\n");
      return;
    }
    Info(macroname,"Saving alignment objects in %s", filename);
    f.cd();
    f.WriteObject(array,"STRUCTAlignObjs","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("Grosso Raffaele");
    md->SetComment("Residual misalignment for STRUCT. Presently includes objects for FRAME.");
    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
    AliCDBId id("GRP/Align/Data",0,AliCDBRunRange::Infinity());
    storage->Put(array,id,md);
  }

  array->Delete();

}

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