ROOT logo
void MakeSTRUCTZeroMisAlignment(){
  // Create TClonesArray of zero misalignment objects for all STRUCTures
  // (presently this includes only FRAME)
  // 
  const char* macroname = "MakeSTRUCTZeroMisAlignment.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 = "STRUCTzeroMisalignment.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("Zero 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();

}

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