ROOT logo
/* $Id$*/

// Script to create alignment parameters and store them into CDB
// Three sets of alignment parameters can be created:
// 1) Ideal geometry
// 2) Geometry with disalignments and disorientations
// 3) Geometry small disalignments and disorientations

#if !defined(__CINT__)
#include "TControlBar.h"
#include "TString.h"
#include "TRandom.h"
#include "TClonesArray.h"

#include "AliAlignObjParams.h"
#include "AliCDBMetaData.h"
#include "AliCDBId.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#endif


void AliEMCALSetAlignment()
{
  TControlBar *menu = new TControlBar("vertical","EMCAL alignment control");
  menu->AddButton("Help to run EMCAL alignment control","Help()",
		  "Explains how to use EMCAL alignment control menus");

  menu->AddButton("Ideal geometry","IdealAlignment()",
		  "Set ideal EMCAL geometry with zero displacement");
  menu->AddButton("Misaligned geometry","FullMisalignment()",
		  "Set EMCAL geometry with large displacement");
  menu->AddButton("Residual misaligned geometry","ResidualAlignment()",
		  "Set EMCAL geometry with small residual displacement");

  menu->Show();
}

//------------------------------------------------------------------------
void Help()
{
  char *string =
  "\n\n\nSet EMCAL alignment parameters and write them into ALICE CDB.
  Press button \"Ideal geometry\" to create EMCAL geometry with ideal geometry.
  Press button \"Misaligned geometry\" to create EMCAL geometry with fully displaced and disorientated geometry.
  Press button \"Residual misaligned geometry\" to create EMCAL geometry with infinitesimal displacement and disorientation\n\n\n";
  printf(string);
}

//------------------------------------------------------------------------
void IdealAlignment()
{
  // Create alignment objects for EMCAL with ideally aligned geometry,
  // i.e. with zero displacements and zero disorientations
  
  // *************************    1st step    ***************
  // Create TClonesArray of alignment objects for EMCAL
  
  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
  TClonesArray &alobj = *array;
  
  AliAlignObjParams a;
  
  Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
  // null shifts and rotations
  
  UShort_t iIndex=0;
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
  
  //
  // EMCAL
  //
  TString basePath = "EMCAL/FullSupermodule";
  for (Int_t iModule = 0; iModule < 10; iModule++)
  {
    TString newPath = basePath;
    newPath += iModule+1;
    new(alobj[iModule]) AliAlignObjParams(newPath.Data(),
                                          dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  }
  
  //1/3 SMs
  new(alobj[10]) AliAlignObjParams("EMCAL/OneThrdSupermodule1",
                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[11]) AliAlignObjParams("EMCAL/OneThrdSupermodule2",
                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  //
  // DCal
  //
  basePath = "EMCAL/DCALSupermodule";
  for (Int_t iModule = 0; iModule < 6; iModule++)
  {
    TString newPath = basePath;
    newPath += iModule+1;
    new(alobj[12+iModule]) AliAlignObjParams(newPath.Data(),
                                             dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  }
  
  //1/3 SMs
  new(alobj[18]) AliAlignObjParams("EMCAL/OneThrdSupermodule3",
                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[19]) AliAlignObjParams("EMCAL/OneThrdSupermodule4",
                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
  
  
  // *************************    2nd step    ***************
  // Make CDB storage and put TClonesArray in
  //
  AliCDBManager *CDB = AliCDBManager::Instance();
  CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  
  AliCDBMetaData *md= new AliCDBMetaData();
  md->SetResponsible("EMCAL Expert");
  md->SetComment("Alignment objects for ideal geometry, i.e. applying them to TGeo has to leave geometry unchanged");
  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
  CDB->Put(array,id, md);
}

//------------------------------------------------------------------------
void ResidualAlignment()
{
  // Create alignment objects for EMCAL with residual alignment,
  // i.e. with infinitesimal displacement and disorientation
  
  // *************************    1st step    ***************
  // Create TClonesArray of alignment objects for EMCAL
  
  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
  TClonesArray &alobj = *array;
  
  AliAlignObjParams a;
  
  UShort_t iIndex=0;
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
  
  Double_t sigmaTrans = 0.01; Double_t sigmaRot = 0.001;
  Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
  
  TRandom *pRnd = new TRandom(4357);
  
  //
  // EMCAL
  //
  TString basePath = "EMCAL/FullSupermodule";
  for(Int_t iSM = 0; iSM < 10; iSM++)
  {
    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
    TString newPath = basePath;
    newPath += iSM + 1;
    new(alobj[iSM]) AliAlignObjParams(newPath.Data(),
                                      dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  }
  
  //1/3 SMs
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[10]) AliAlignObjParams("EMCAL/HalfSupermodule1",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[11]) AliAlignObjParams("EMCAL/HalfSupermodule2",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  //
  // DCal
  //
  basePath = "EMCAL/DCALSupermodule";
  for(Int_t iSM = 0; iSM < 6; iSM++)
  {
    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
    TString newPath = basePath;
    newPath += iSM + 1;
    new(alobj[12+iSM]) AliAlignObjParams(newPath.Data(),
                                         dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  }
  
  //1/3 SMs
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[18]) AliAlignObjParams("EMCAL/HalfSupermodule4",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[19]) AliAlignObjParams("EMCAL/HalfSupermodule3",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  
  // *************************    2nd step    ***************
  // Make CDB storage and put TClonesArray in
  //
  AliCDBManager *CDB = AliCDBManager::Instance();
  CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  
  AliCDBMetaData *md= new AliCDBMetaData();
  md->SetResponsible("EMCAL Expert");
  md->SetComment("Alignment objects for slightly misaligned geometry, i.e. applying them to TGeo has to distirbes geometry very little (resisual misalignment");
  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
  CDB->Put(array,id, md);
}

//------------------------------------------------------------------------
void FullMisalignment()
{
  // Create alignment objects for EMCAL with fully misaligned geometry
  
  // *************************    1st step    ***************
  // Create TClonesArray of alignment objects for EMCAL
  
  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
  TClonesArray &alobj = *array;
  
  AliAlignObjParams a;
  
  UShort_t iIndex=0;
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
  
  
  Double_t sigmaTrans = 10.; Double_t sigmaRot = 0.1;
  Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
  
  TRandom *pRnd = new TRandom(4357);
  
  //
  // EMCAL
  //
  TString basePath = "EMCAL/FullSupermodule";
  for(Int_t iSM = 0; iSM < 10; iSM++)
  {
    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
    TString newPath = basePath;
    newPath += iSM + 1;
    new(alobj[iSM]) AliAlignObjParams(newPath.Data(),
                                      dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  }
  
  //1/3 SMs
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[10]) AliAlignObjParams("EMCAL/HalfSupermodule1",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[11]) AliAlignObjParams("EMCAL/HalfSupermodule2",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  //
  // DCAL
  //
  for(Int_t iSM = 0; iSM < 6; iSM++)
  {
    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
    TString newPath = basePath;
    newPath += iSM + 1;
    new(alobj[12+iSM]) AliAlignObjParams(newPath.Data(),
                                         dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  }
  
  //1/3 SMs
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[18]) AliAlignObjParams("EMCAL/HalfSupermodule1",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
  new(alobj[19]) AliAlignObjParams("EMCAL/HalfSupermodule2",
                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
  
  
  // *************************    2nd step    ***************
  // Make CDB storage and put TClonesArray in
  //
  AliCDBManager *CDB = AliCDBManager::Instance();
  CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  
  AliCDBMetaData *md= new AliCDBMetaData();
  md->SetResponsible("EMCAL Expert");
  md->SetComment("Alignment objects for fully misaligned geometry, i.e. applying them to TGeo has to distirbes geometry very much");
  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
  CDB->Put(array,id, md);
}
 AliEMCALSetAlignment.C:1
 AliEMCALSetAlignment.C:2
 AliEMCALSetAlignment.C:3
 AliEMCALSetAlignment.C:4
 AliEMCALSetAlignment.C:5
 AliEMCALSetAlignment.C:6
 AliEMCALSetAlignment.C:7
 AliEMCALSetAlignment.C:8
 AliEMCALSetAlignment.C:9
 AliEMCALSetAlignment.C:10
 AliEMCALSetAlignment.C:11
 AliEMCALSetAlignment.C:12
 AliEMCALSetAlignment.C:13
 AliEMCALSetAlignment.C:14
 AliEMCALSetAlignment.C:15
 AliEMCALSetAlignment.C:16
 AliEMCALSetAlignment.C:17
 AliEMCALSetAlignment.C:18
 AliEMCALSetAlignment.C:19
 AliEMCALSetAlignment.C:20
 AliEMCALSetAlignment.C:21
 AliEMCALSetAlignment.C:22
 AliEMCALSetAlignment.C:23
 AliEMCALSetAlignment.C:24
 AliEMCALSetAlignment.C:25
 AliEMCALSetAlignment.C:26
 AliEMCALSetAlignment.C:27
 AliEMCALSetAlignment.C:28
 AliEMCALSetAlignment.C:29
 AliEMCALSetAlignment.C:30
 AliEMCALSetAlignment.C:31
 AliEMCALSetAlignment.C:32
 AliEMCALSetAlignment.C:33
 AliEMCALSetAlignment.C:34
 AliEMCALSetAlignment.C:35
 AliEMCALSetAlignment.C:36
 AliEMCALSetAlignment.C:37
 AliEMCALSetAlignment.C:38
 AliEMCALSetAlignment.C:39
 AliEMCALSetAlignment.C:40
 AliEMCALSetAlignment.C:41
 AliEMCALSetAlignment.C:42
 AliEMCALSetAlignment.C:43
 AliEMCALSetAlignment.C:44
 AliEMCALSetAlignment.C:45
 AliEMCALSetAlignment.C:46
 AliEMCALSetAlignment.C:47
 AliEMCALSetAlignment.C:48
 AliEMCALSetAlignment.C:49
 AliEMCALSetAlignment.C:50
 AliEMCALSetAlignment.C:51
 AliEMCALSetAlignment.C:52
 AliEMCALSetAlignment.C:53
 AliEMCALSetAlignment.C:54
 AliEMCALSetAlignment.C:55
 AliEMCALSetAlignment.C:56
 AliEMCALSetAlignment.C:57
 AliEMCALSetAlignment.C:58
 AliEMCALSetAlignment.C:59
 AliEMCALSetAlignment.C:60
 AliEMCALSetAlignment.C:61
 AliEMCALSetAlignment.C:62
 AliEMCALSetAlignment.C:63
 AliEMCALSetAlignment.C:64
 AliEMCALSetAlignment.C:65
 AliEMCALSetAlignment.C:66
 AliEMCALSetAlignment.C:67
 AliEMCALSetAlignment.C:68
 AliEMCALSetAlignment.C:69
 AliEMCALSetAlignment.C:70
 AliEMCALSetAlignment.C:71
 AliEMCALSetAlignment.C:72
 AliEMCALSetAlignment.C:73
 AliEMCALSetAlignment.C:74
 AliEMCALSetAlignment.C:75
 AliEMCALSetAlignment.C:76
 AliEMCALSetAlignment.C:77
 AliEMCALSetAlignment.C:78
 AliEMCALSetAlignment.C:79
 AliEMCALSetAlignment.C:80
 AliEMCALSetAlignment.C:81
 AliEMCALSetAlignment.C:82
 AliEMCALSetAlignment.C:83
 AliEMCALSetAlignment.C:84
 AliEMCALSetAlignment.C:85
 AliEMCALSetAlignment.C:86
 AliEMCALSetAlignment.C:87
 AliEMCALSetAlignment.C:88
 AliEMCALSetAlignment.C:89
 AliEMCALSetAlignment.C:90
 AliEMCALSetAlignment.C:91
 AliEMCALSetAlignment.C:92
 AliEMCALSetAlignment.C:93
 AliEMCALSetAlignment.C:94
 AliEMCALSetAlignment.C:95
 AliEMCALSetAlignment.C:96
 AliEMCALSetAlignment.C:97
 AliEMCALSetAlignment.C:98
 AliEMCALSetAlignment.C:99
 AliEMCALSetAlignment.C:100
 AliEMCALSetAlignment.C:101
 AliEMCALSetAlignment.C:102
 AliEMCALSetAlignment.C:103
 AliEMCALSetAlignment.C:104
 AliEMCALSetAlignment.C:105
 AliEMCALSetAlignment.C:106
 AliEMCALSetAlignment.C:107
 AliEMCALSetAlignment.C:108
 AliEMCALSetAlignment.C:109
 AliEMCALSetAlignment.C:110
 AliEMCALSetAlignment.C:111
 AliEMCALSetAlignment.C:112
 AliEMCALSetAlignment.C:113
 AliEMCALSetAlignment.C:114
 AliEMCALSetAlignment.C:115
 AliEMCALSetAlignment.C:116
 AliEMCALSetAlignment.C:117
 AliEMCALSetAlignment.C:118
 AliEMCALSetAlignment.C:119
 AliEMCALSetAlignment.C:120
 AliEMCALSetAlignment.C:121
 AliEMCALSetAlignment.C:122
 AliEMCALSetAlignment.C:123
 AliEMCALSetAlignment.C:124
 AliEMCALSetAlignment.C:125
 AliEMCALSetAlignment.C:126
 AliEMCALSetAlignment.C:127
 AliEMCALSetAlignment.C:128
 AliEMCALSetAlignment.C:129
 AliEMCALSetAlignment.C:130
 AliEMCALSetAlignment.C:131
 AliEMCALSetAlignment.C:132
 AliEMCALSetAlignment.C:133
 AliEMCALSetAlignment.C:134
 AliEMCALSetAlignment.C:135
 AliEMCALSetAlignment.C:136
 AliEMCALSetAlignment.C:137
 AliEMCALSetAlignment.C:138
 AliEMCALSetAlignment.C:139
 AliEMCALSetAlignment.C:140
 AliEMCALSetAlignment.C:141
 AliEMCALSetAlignment.C:142
 AliEMCALSetAlignment.C:143
 AliEMCALSetAlignment.C:144
 AliEMCALSetAlignment.C:145
 AliEMCALSetAlignment.C:146
 AliEMCALSetAlignment.C:147
 AliEMCALSetAlignment.C:148
 AliEMCALSetAlignment.C:149
 AliEMCALSetAlignment.C:150
 AliEMCALSetAlignment.C:151
 AliEMCALSetAlignment.C:152
 AliEMCALSetAlignment.C:153
 AliEMCALSetAlignment.C:154
 AliEMCALSetAlignment.C:155
 AliEMCALSetAlignment.C:156
 AliEMCALSetAlignment.C:157
 AliEMCALSetAlignment.C:158
 AliEMCALSetAlignment.C:159
 AliEMCALSetAlignment.C:160
 AliEMCALSetAlignment.C:161
 AliEMCALSetAlignment.C:162
 AliEMCALSetAlignment.C:163
 AliEMCALSetAlignment.C:164
 AliEMCALSetAlignment.C:165
 AliEMCALSetAlignment.C:166
 AliEMCALSetAlignment.C:167
 AliEMCALSetAlignment.C:168
 AliEMCALSetAlignment.C:169
 AliEMCALSetAlignment.C:170
 AliEMCALSetAlignment.C:171
 AliEMCALSetAlignment.C:172
 AliEMCALSetAlignment.C:173
 AliEMCALSetAlignment.C:174
 AliEMCALSetAlignment.C:175
 AliEMCALSetAlignment.C:176
 AliEMCALSetAlignment.C:177
 AliEMCALSetAlignment.C:178
 AliEMCALSetAlignment.C:179
 AliEMCALSetAlignment.C:180
 AliEMCALSetAlignment.C:181
 AliEMCALSetAlignment.C:182
 AliEMCALSetAlignment.C:183
 AliEMCALSetAlignment.C:184
 AliEMCALSetAlignment.C:185
 AliEMCALSetAlignment.C:186
 AliEMCALSetAlignment.C:187
 AliEMCALSetAlignment.C:188
 AliEMCALSetAlignment.C:189
 AliEMCALSetAlignment.C:190
 AliEMCALSetAlignment.C:191
 AliEMCALSetAlignment.C:192
 AliEMCALSetAlignment.C:193
 AliEMCALSetAlignment.C:194
 AliEMCALSetAlignment.C:195
 AliEMCALSetAlignment.C:196
 AliEMCALSetAlignment.C:197
 AliEMCALSetAlignment.C:198
 AliEMCALSetAlignment.C:199
 AliEMCALSetAlignment.C:200
 AliEMCALSetAlignment.C:201
 AliEMCALSetAlignment.C:202
 AliEMCALSetAlignment.C:203
 AliEMCALSetAlignment.C:204
 AliEMCALSetAlignment.C:205
 AliEMCALSetAlignment.C:206
 AliEMCALSetAlignment.C:207
 AliEMCALSetAlignment.C:208
 AliEMCALSetAlignment.C:209
 AliEMCALSetAlignment.C:210
 AliEMCALSetAlignment.C:211
 AliEMCALSetAlignment.C:212
 AliEMCALSetAlignment.C:213
 AliEMCALSetAlignment.C:214
 AliEMCALSetAlignment.C:215
 AliEMCALSetAlignment.C:216
 AliEMCALSetAlignment.C:217
 AliEMCALSetAlignment.C:218
 AliEMCALSetAlignment.C:219
 AliEMCALSetAlignment.C:220
 AliEMCALSetAlignment.C:221
 AliEMCALSetAlignment.C:222
 AliEMCALSetAlignment.C:223
 AliEMCALSetAlignment.C:224
 AliEMCALSetAlignment.C:225
 AliEMCALSetAlignment.C:226
 AliEMCALSetAlignment.C:227
 AliEMCALSetAlignment.C:228
 AliEMCALSetAlignment.C:229
 AliEMCALSetAlignment.C:230
 AliEMCALSetAlignment.C:231
 AliEMCALSetAlignment.C:232
 AliEMCALSetAlignment.C:233
 AliEMCALSetAlignment.C:234
 AliEMCALSetAlignment.C:235
 AliEMCALSetAlignment.C:236
 AliEMCALSetAlignment.C:237
 AliEMCALSetAlignment.C:238
 AliEMCALSetAlignment.C:239
 AliEMCALSetAlignment.C:240
 AliEMCALSetAlignment.C:241
 AliEMCALSetAlignment.C:242
 AliEMCALSetAlignment.C:243
 AliEMCALSetAlignment.C:244
 AliEMCALSetAlignment.C:245
 AliEMCALSetAlignment.C:246
 AliEMCALSetAlignment.C:247
 AliEMCALSetAlignment.C:248
 AliEMCALSetAlignment.C:249
 AliEMCALSetAlignment.C:250
 AliEMCALSetAlignment.C:251
 AliEMCALSetAlignment.C:252
 AliEMCALSetAlignment.C:253
 AliEMCALSetAlignment.C:254
 AliEMCALSetAlignment.C:255
 AliEMCALSetAlignment.C:256
 AliEMCALSetAlignment.C:257
 AliEMCALSetAlignment.C:258
 AliEMCALSetAlignment.C:259
 AliEMCALSetAlignment.C:260
 AliEMCALSetAlignment.C:261
 AliEMCALSetAlignment.C:262
 AliEMCALSetAlignment.C:263
 AliEMCALSetAlignment.C:264
 AliEMCALSetAlignment.C:265
 AliEMCALSetAlignment.C:266
 AliEMCALSetAlignment.C:267
 AliEMCALSetAlignment.C:268
 AliEMCALSetAlignment.C:269
 AliEMCALSetAlignment.C:270
 AliEMCALSetAlignment.C:271
 AliEMCALSetAlignment.C:272
 AliEMCALSetAlignment.C:273
 AliEMCALSetAlignment.C:274
 AliEMCALSetAlignment.C:275
 AliEMCALSetAlignment.C:276
 AliEMCALSetAlignment.C:277
 AliEMCALSetAlignment.C:278
 AliEMCALSetAlignment.C:279
 AliEMCALSetAlignment.C:280
 AliEMCALSetAlignment.C:281
 AliEMCALSetAlignment.C:282
 AliEMCALSetAlignment.C:283
 AliEMCALSetAlignment.C:284
 AliEMCALSetAlignment.C:285
 AliEMCALSetAlignment.C:286
 AliEMCALSetAlignment.C:287
 AliEMCALSetAlignment.C:288
 AliEMCALSetAlignment.C:289
 AliEMCALSetAlignment.C:290
 AliEMCALSetAlignment.C:291
 AliEMCALSetAlignment.C:292
 AliEMCALSetAlignment.C:293