1 void MakeMUONFullMisAlignment(Bool_t volpaths = true,
2 Bool_t transforms = true,
4 // Macro for generating the geometry data files:
5 // (volpath.dat, transform.dat, svmap.dat)
6 // and local CDB storage with full misalignment
8 // The generated files do not replace the existing ones
9 // but have different names (with extension ".out").
11 // Author: I. Hrivnacova, IPN Orsay
15 gAlice->Init("$ALICE_ROOT/MUON/Config.C");
16 cout << "Init done " << endl;
19 AliMUON* muon = (AliMUON*)gAlice->GetModule("MUON");
21 AliFatal("MUON detector not defined.");
25 // Get geometry builder
26 AliMUONGeometryBuilder* builder = muon ->GetGeometryBuilder();
29 cout << "Generating volpath file ..." << endl;
30 builder->GetTransformer()->WriteVolumePaths("volpath.dat.out");
34 cout << "Generating transformation file ..." << endl;
35 builder->GetTransformer()->WriteTransformations("transform.dat.out");
39 cout << "Generating svmaps file ..." << endl;
40 builder->WriteSVMaps();
43 cout << "Generating full misalignment data in MUON/FullMisAlignCDB/Data..." << endl;
45 AliMUONGeometryMisAligner misAligner(0.0, 0.03, 0.0, 0.03, 0.0, 0.03);
46 AliMUONGeometryTransformer* newTransform
47 = misAligner.MisAlign(builder->GetTransformer(), true);
48 TClonesArray* array = newTransform->GetMisAlignmentData();
50 if(!gSystem->Getenv("$TOCDB")){
51 // Create a File to store the alignment data
52 TFile f("MUONfullMisalignment.root","RECREATE");
53 if(!f) {cerr<<"cannot open file for output\n";}
56 f.WriteObject(array,"MUONAlignObjs ","kSingleKey");
60 // save in CDB storage
61 const char* Storage = gSystem->Getenv("$STORAGE");
63 AliCDBManager* cdbManager = AliCDBManager::Instance();
64 AliCDBStorage* storage = cdbManager->GetStorage(Storage);
65 AliCDBMetaData* cdbData = new AliCDBMetaData();
66 cdbData->SetResponsible("Dimuon Offline project");
67 cdbData->SetComment("MUON alignment objects with full misalignment");
68 cdbData->SetAliRootVersion(gSystem->Getenv("$ARVERSION"));
69 AliCDBId id("MUON/Align/Data", 0, 9999999);
70 storage->Put(array, id, cdbData);