1 void MakeITSZeroMisAlignment(){
2 // Create TClonesArray of zero misalignment objects for ITS
4 TClonesArray *array = new TClonesArray("AliAlignObjParams",4000);
5 TClonesArray &alobj = *array;
7 if(!AliGeomManager::GetGeometry()){
8 if(!(AliCDBManager::Instance())->IsDefaultStorageSet())
9 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
10 AliCDBManager::Instance()->SetRun(0);
11 AliGeomManager::LoadGeometry();
13 // needed for the constructors with local coordinates not to fail
17 Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0., globalZ=0.;
18 AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
22 new(alobj[j]) AliAlignObjParams("ITS", 0, dx, dy, globalZ, dpsi, dtheta, dphi, kTRUE);
25 for ( Int_t l = AliGeomManager::kSPD1; l <= AliGeomManager::kSSD2; l++) {
27 printf("%i modules in layer %i\n", AliGeomManager::LayerSize(l), l);
28 for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(l); iModule++) {
30 iLayer = AliGeomManager::kInvalidLayer;
34 iLayer = AliGeomManager::kSPD1;
37 iLayer = AliGeomManager::kSPD2;
40 iLayer = AliGeomManager::kSDD1;
43 iLayer = AliGeomManager::kSDD2;
46 iLayer = AliGeomManager::kSSD1;
49 iLayer = AliGeomManager::kSSD2;
51 default: Printf("Wrong layer index in ITS (%d) !",l);
53 UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iModule);
54 const char *symname = AliGeomManager::SymName(volid);
56 new(alobj[j]) AliAlignObjParams(symname, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
62 const char* macroname = "MakeITSZeroMisAlignment.C";
63 if( gSystem->Getenv("TOCDB") != TString("kTRUE") ){
65 const char* filename = "ITSzeroMisalignment.root";
66 TFile f(filename,"RECREATE");
68 Error(macroname,"cannot open file for output\n");
71 Info(macroname,"Saving alignment objects to the file %s", filename);
73 f.WriteObject(array,"ITSAlignObjs","kSingleKey");
76 // save in CDB storage
77 TString Storage = gSystem->Getenv("STORAGE");
78 if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
79 Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
82 Info(macroname,"Saving alignment objects in CDB storage %s",
84 AliCDBManager* cdb = AliCDBManager::Instance();
85 AliCDBStorage* storage = cdb->GetStorage(Storage.Data());
87 Error(macroname,"Unable to open storage %s\n",Storage.Data());
90 AliCDBMetaData *md= new AliCDBMetaData();
91 md->SetResponsible("Ludovic Gaudichet");
92 md->SetComment("Alignment objects with zero ITS misalignment");
93 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
94 AliCDBId id("ITS/Align/Data",0,AliCDBRunRange::Infinity());
95 storage->Put(array,id, md);