ROOT logo
void MakePHOSGeometry(){
   //Fill OADB object with PHOS rotation-alignment matrixes
   //To fill this file you need any AliESD.root from official reconstruction
   //download it to the current directory
   
  AliOADBContainer * geomContainer = new AliOADBContainer("PHOSRotationMatrixes");
  TObjArray *matrixes = new TObjArray(5) ;
  matrixes->SetName("PHOSRotationMatrixes");

  //Read them from ESDs
  TFile* esdFile = TFile::Open("AliESDs.root");
  if (!esdFile || !esdFile->IsOpen()) {
    Error("MakePHOSGeometry", "Can not open ESD file, please download any from official reconstruction.");
    return ;
  }
  AliESDEvent * event = new AliESDEvent;
  TTree* tree = (TTree*) esdFile->Get("esdTree");
  if (!tree) {
    Error("MakePHOSGeometry", "no ESD tree found");
    return ;
  }
  event->ReadFromTree(tree);
  tree->GetEvent(0) ;

  for(Int_t mod=0; mod<5; mod++) {
    TGeoHMatrix * m = event->GetPHOSMatrix(mod) ;
    if(!m)
      matrixes->AddAt(0x0,mod);
    else
      matrixes->AddAt(new TGeoHMatrix(*m), mod) ;
  }
  esdFile->Close() ;

  //Controll
  for(Int_t mod=0; mod<5; mod++) {
     printf("Module %d: \n", mod) ;
     if(matrixes->At(mod))
       ((TGeoHMatrix*)matrixes->At(mod))->Print() ;
     else
       printf("Maxrix=null \n") ;
  }
  //Fill 
  geomContainer->AppendObject(matrixes,90000,AliCDBRunRange::Infinity()) ;
  geomContainer->AddDefaultObject(matrixes) ;
  geomContainer->WriteToFile("PHOSGeometry.root");
  
}
 MakePHOSGeometry.C:1
 MakePHOSGeometry.C:2
 MakePHOSGeometry.C:3
 MakePHOSGeometry.C:4
 MakePHOSGeometry.C:5
 MakePHOSGeometry.C:6
 MakePHOSGeometry.C:7
 MakePHOSGeometry.C:8
 MakePHOSGeometry.C:9
 MakePHOSGeometry.C:10
 MakePHOSGeometry.C:11
 MakePHOSGeometry.C:12
 MakePHOSGeometry.C:13
 MakePHOSGeometry.C:14
 MakePHOSGeometry.C:15
 MakePHOSGeometry.C:16
 MakePHOSGeometry.C:17
 MakePHOSGeometry.C:18
 MakePHOSGeometry.C:19
 MakePHOSGeometry.C:20
 MakePHOSGeometry.C:21
 MakePHOSGeometry.C:22
 MakePHOSGeometry.C:23
 MakePHOSGeometry.C:24
 MakePHOSGeometry.C:25
 MakePHOSGeometry.C:26
 MakePHOSGeometry.C:27
 MakePHOSGeometry.C:28
 MakePHOSGeometry.C:29
 MakePHOSGeometry.C:30
 MakePHOSGeometry.C:31
 MakePHOSGeometry.C:32
 MakePHOSGeometry.C:33
 MakePHOSGeometry.C:34
 MakePHOSGeometry.C:35
 MakePHOSGeometry.C:36
 MakePHOSGeometry.C:37
 MakePHOSGeometry.C:38
 MakePHOSGeometry.C:39
 MakePHOSGeometry.C:40
 MakePHOSGeometry.C:41
 MakePHOSGeometry.C:42
 MakePHOSGeometry.C:43
 MakePHOSGeometry.C:44
 MakePHOSGeometry.C:45
 MakePHOSGeometry.C:46
 MakePHOSGeometry.C:47
 MakePHOSGeometry.C:48