New RAW I/O. I rolled my own, because I wasn't happy with the old
[u/mrichter/AliRoot.git] / FMD / scripts / ApplyAlignment.C
1 //____________________________________________________________________
2 //
3 // $Id$
4 //
5 // Read in the geometry, and get alignment data from CDB, and  apply
6 // that to the geometry. 
7 //
8 void
9 ApplyAlignment()
10 {
11   gSystem->Load("libFMDutil.so");
12   TGeoManager::Import("geometry.root");
13
14   AliCDBManager* cdb   = AliCDBManager::Instance();
15   cdb->SetDefaultStorage("local://cdb");
16   AliCDBEntry*   align = cdb->Get("FMD/Align/Data");
17   if (align) {
18     Info("ApplyAlignment","Got alignment data from CDB");
19     TClonesArray* array = dynamic_cast<TClonesArray*>(align->GetObject());
20     if (!array) {
21       Warning("ApplyAlignement", "Invalid align data from CDB");
22     }
23     else {
24       Int_t nAlign = array->GetEntries();
25       for (Int_t i = 0; i < nAlign; i++) {
26         AliAlignObjAngles* a = static_cast<AliAlignObjAngles*>(array->At(i));
27         if (!a->ApplyToGeometry()) {
28           Warning("ApplyAlignement", "Failed to apply alignment to %s", 
29                   a->GetVolPath());
30         }
31       }
32     }
33   }
34   TCanvas* c = new TCanvas("Geometry", "Geometry");
35   c->SetFillColor(1);
36   gGeoManager->GetTopVolume()->Draw();
37 }
38 //____________________________________________________________________
39 //
40 // EOF
41 //