ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TCanvas.h>
#include <TClonesArray.h>
#include <TFile.h>
#include <TGeoManager.h>
#include <TH1F.h>
#include <TString.h>
#include <Riostream.h>
#include "AliAlignObj.h"
#endif
void DrawITSAlignObj(Bool_t local=kFALSE) {  //
  // Draw distribution of alignment constants
  // Set TOCDB and STORAGE environment variables to run the macro
  // on an AliCDBEntry instead of on a file
  //

  const char* filenameOut="ITSfullModuleMisalignment.root";
  TClonesArray* ar = 0;
  
  AliCDBManager* cdb = AliCDBManager::Instance();

  // Activate CDB storage and load geometry from CDB
  if( TString(gSystem->Getenv("TOCDB")) == TString("kTRUE") ){
    TString Storage = gSystem->Getenv("STORAGE");
    if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
      Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
      return;
    }
    cdb->SetDefaultStorage(Storage.Data());
    cdb->SetRun(0);
    AliCDBEntry *entry = cdb->Get("GRP/Geometry/Data");
    if(!entry) Fatal("Could not get the specified CDB entry!");
    entry->SetOwner(0);
    TGeoManager* geom = (TGeoManager*) entry->GetObject();
    AliGeomManager::SetGeometry(geom);
    AliCDBEntry* eItsAlign = cdb->Get("ITS/Align/Data");
    ar = (TClonesArray*)eItsAlign->GetObject();
    if(!ar) {
      Fatal("Could not get the alignment-objects array from the CDB entry!");
      return;
    }
  }else{
    cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
    cdb->SetRun(0);
    AliGeomManager::LoadGeometry("geometry.root"); //load geom from default CDB storage
    const char* filename="ITSfullMisalignment.root";
    TFile* f = TFile::Open(filename);
    if(!f) {cerr<<"cannot open input file\n"; return;}
    ar = (TClonesArray*)f->Get("ITSAlignObjs");
    if(!ar) {
      Fatal("Could not get the alignment-objects array from the file %s!", filename);
      return;
    }
  }    
		  
  TCanvas  *cSPDsector = new TCanvas("cSPDsector","SPD sectors alignobjs",0,0,800,600);
  cSPDsector->Divide(3,2);		    
  TH1F* hxSPDsector = new TH1F("hxSPDsector","x in SPD sectors",100,-0.1,0.1);
  hxSPDsector->SetXTitle("[cm]");
  TH1F* hySPDsector = new TH1F("hySPDsector","y in SPD sectors",100,-0.1,0.1);
  hySPDsector->SetXTitle("[cm]");
  TH1F* hzSPDsector = new TH1F("hzSPDsector","z in SPD sectors",100,-0.1,0.1);
  hzSPDsector->SetXTitle("[cm]");
  TH1F* hrxSPDsector = new TH1F("hrxSPDsector","rx in SPD sectors",100,-0.5,0.5);
  hrxSPDsector->SetXTitle("[deg]");
  TH1F* hrySPDsector = new TH1F("hrySPDsector","ry in SPD sectors",100,-0.5,0.5);
  hrySPDsector->SetXTitle("[deg]");
  TH1F* hrzSPDsector = new TH1F("hrzSPDsector","rz in SPD sectors",100,-0.5,0.5);
  hrzSPDsector->SetXTitle("[deg]");

  TCanvas  *cSPDhalfstave = new TCanvas("cSPDhalfstave","SPD halfstaves alignobjs",0,0,800,600);
  cSPDhalfstave->Divide(3,2);		    
  TH1F* hxSPDhalfstave = new TH1F("hxSPDhalfstave","x in SPD halfstaves",100,-0.01,0.01);
  hxSPDhalfstave->SetXTitle("[cm]");
  TH1F* hySPDhalfstave = new TH1F("hySPDhalfstave","y in SPD halfstaves",100,-0.01,0.01);
  hySPDhalfstave->SetXTitle("[cm]");
  TH1F* hzSPDhalfstave = new TH1F("hzSPDhalfstave","z in SPD halfstaves",100,-0.01,0.01);
  hzSPDhalfstave->SetXTitle("[cm]");
  TH1F* hrxSPDhalfstave = new TH1F("hrxSPDhalfstave","rx in SPD halfstaves",100,-0.1,0.1);
  hrxSPDhalfstave->SetXTitle("[deg]");
  TH1F* hrySPDhalfstave = new TH1F("hrySPDhalfstave","ry in SPD halfstaves",100,-0.1,0.1);
  hrySPDhalfstave->SetXTitle("[deg]");
  TH1F* hrzSPDhalfstave = new TH1F("hrzSPDhalfstave","rz in SPD halfstaves",100,-0.5,0.5);
  hrzSPDhalfstave->SetXTitle("[deg]");

  TCanvas  *cSPDladder = new TCanvas("cSPDladder","SPD ladders alignobjs",0,0,800,600);
  cSPDladder->Divide(3,2);		    
  TH1F* hxSPDladder = new TH1F("hxSPDladder","x in SPD ladders",100,-0.01,0.01);
  hxSPDladder->SetXTitle("[cm]");
  TH1F* hySPDladder = new TH1F("hySPDladder","y in SPD ladders",100,-0.01,0.01);
  hySPDladder->SetXTitle("[cm]");
  TH1F* hzSPDladder = new TH1F("hzSPDladder","z in SPD ladders",100,-0.01,0.01);
  hzSPDladder->SetXTitle("[cm]");
  TH1F* hrxSPDladder = new TH1F("hrxSPDladder","rx in SPD ladders",100,-0.01,0.01);
  hrxSPDladder->SetXTitle("[deg]");
  TH1F* hrySPDladder = new TH1F("hrySPDladder","ry in SPD ladders",100,-0.01,0.01);
  hrySPDladder->SetXTitle("[deg]");
  TH1F* hrzSPDladder = new TH1F("hrzSPDladder","rz in SPD ladders",100,-0.01,0.01);
  hrzSPDladder->SetXTitle("[deg]");

  TCanvas  *cSDDladder = new TCanvas("cSDDladder","SDD ladders alignobjs",0,0,800,600);
  cSDDladder->Divide(3,2);		    
  TH1F* hxSDDladder = new TH1F("hxSDDladder","x in SDD ladders",100,-0.01,0.01);
  hxSDDladder->SetXTitle("[cm]");
  TH1F* hySDDladder = new TH1F("hySDDladder","y in SDD ladders",100,-0.01,0.01);
  hySDDladder->SetXTitle("[cm]");
  TH1F* hzSDDladder = new TH1F("hzSDDladder","z in SDD ladders",100,-0.01,0.01);
  hzSDDladder->SetXTitle("[cm]");
  TH1F* hrxSDDladder = new TH1F("hrxSDDladder","rx in SDD ladders",100,-0.01,0.01);
  hrxSDDladder->SetXTitle("[deg]");
  TH1F* hrySDDladder = new TH1F("hrySDDladder","ry in SDD ladders",100,-0.01,0.01);
  hrySDDladder->SetXTitle("[deg]");
  TH1F* hrzSDDladder = new TH1F("hrzSDDladder","rz in SDD ladders",100,-0.01,0.01);
  hrzSDDladder->SetXTitle("[deg]");

  TCanvas  *cSDDsensor = new TCanvas("cSDDsensor","SDD sensors alignobjs",0,0,800,600);
  cSDDsensor->Divide(3,2);		    
  TH1F* hxSDDsensor = new TH1F("hxSDDsensor","x in SDD sensors",100,-0.01,0.01);
  hxSDDsensor->SetXTitle("[cm]");
  TH1F* hySDDsensor = new TH1F("hySDDsensor","y in SDD sensors",100,-0.01,0.01);
  hySDDsensor->SetXTitle("[cm]");
  TH1F* hzSDDsensor = new TH1F("hzSDDsensor","z in SDD sensors",100,-0.01,0.01);
  hzSDDsensor->SetXTitle("[cm]");
  TH1F* hrxSDDsensor = new TH1F("hrxSDDsensor","rx in SDD sensors",100,-0.01,0.01);
  hrxSDDsensor->SetXTitle("[deg]");
  TH1F* hrySDDsensor = new TH1F("hrySDDsensor","ry in SDD sensors",100,-0.01,0.01);
  hrySDDsensor->SetXTitle("[deg]");
  TH1F* hrzSDDsensor = new TH1F("hrzSDDsensor","rz in SDD sensors",100,-0.01,0.01);
  hrzSDDsensor->SetXTitle("[deg]");


  TCanvas  *cSSDladder = new TCanvas("cSSDladder","SSD ladders alignobjs",0,0,800,600);
  cSSDladder->Divide(3,2);		    
  TH1F* hxSSDladder = new TH1F("hxSSDladder","x in SSD ladders",100,-0.01,0.01);
  hxSSDladder->SetXTitle("[cm]");
  TH1F* hySSDladder = new TH1F("hySSDladder","y in SSD ladders",100,-0.01,0.01);
  hySSDladder->SetXTitle("[cm]");
  TH1F* hzSSDladder = new TH1F("hzSSDladder","z in SSD ladders",100,-0.01,0.01);
  hzSSDladder->SetXTitle("[cm]");
  TH1F* hrxSSDladder = new TH1F("hrxSSDladder","rx in SSD ladders",100,-0.01,0.01);
  hrxSSDladder->SetXTitle("[deg]");
  TH1F* hrySSDladder = new TH1F("hrySSDladder","ry in SSD ladders",100,-0.01,0.01);
  hrySSDladder->SetXTitle("[deg]");
  TH1F* hrzSSDladder = new TH1F("hrzSSDladder","rz in SSD ladders",100,-0.01,0.01);
  hrzSSDladder->SetXTitle("[deg]");

  TCanvas  *cSSDsensor = new TCanvas("cSSDsensor","SSD sensors alignobjs",0,0,800,600);
  cSSDsensor->Divide(3,2);		    
  TH1F* hxSSDsensor = new TH1F("hxSSDsensor","x in SSD sensors",100,-0.01,0.01);
  hxSSDsensor->SetXTitle("[cm]");
  TH1F* hySSDsensor = new TH1F("hySSDsensor","y in SSD sensors",100,-0.01,0.01);
  hySSDsensor->SetXTitle("[cm]");
  TH1F* hzSSDsensor = new TH1F("hzSSDsensor","z in SSD sensors",100,-0.01,0.01);
  hzSSDsensor->SetXTitle("[cm]");
  TH1F* hrxSSDsensor = new TH1F("hrxSSDsensor","rx in SSD sensors",100,-0.01,0.01);
  hrxSSDsensor->SetXTitle("[deg]");
  TH1F* hrySSDsensor = new TH1F("hrySSDsensor","ry in SSD sensors",100,-0.01,0.01);
  hrySSDsensor->SetXTitle("[deg]");
  TH1F* hrzSSDsensor = new TH1F("hrzSSDsensor","rz in SSD sensors",100,-0.01,0.01);
  hrzSSDsensor->SetXTitle("[deg]");


  Int_t entries = ar->GetEntriesFast();
  Printf("number of alignment objects: %d",entries);
  //Bool_t overlaps;
  if(!AliGeomManager::GetGeometry()) return;
  AliGeomManager::ApplyAlignObjsToGeom(*ar); //,overlaps);

  AliAlignObj* a;
  Option_t *opt = NULL;
  Double_t tr[3];
  Double_t rot[3];
  TGeoHMatrix delta;


  TClonesArray *arrayOut = new TClonesArray("AliAlignObjParams",4000);
  TClonesArray &alobjOut = *arrayOut;
  Int_t j=0;

  for(Int_t i=0; i<entries; i++){
    a=(AliAlignObj*)ar->UncheckedAt(i);
    TString symName = a->GetSymName();
    UShort_t volUID = a->GetVolUID();
    //printf("VolId %d    %s\n",volUID,symName.Data());
    
    if(local) {
      a->GetLocalPars(tr,rot);
    } else {
      a->GetPars(tr,rot);
    }

    AliGeomManager::GetDeltaForBranch(*a,delta);
    //delta.Print();

    // create AliAlignObjParam with total delta
    if(i==0 || volUID!=0) {
      new(alobjOut[j]) AliAlignObjParams(symName.Data(),volUID,delta,kTRUE);
      j++;
    }


    // plots
    //
    if(!symName.Contains("SPD") && !symName.Contains("SDD") && !symName.Contains("SSD")) {
      a->Print(opt);
    }
    if(symName.Contains("SPD") && symName.Contains("Sector") && !symName.Contains("HalfStave")) {
      hxSPDsector->Fill(tr[0]);
      hySPDsector->Fill(tr[1]);
      hzSPDsector->Fill(tr[2]);
      hrxSPDsector->Fill(rot[0]);
      hrySPDsector->Fill(rot[1]);
      hrzSPDsector->Fill(rot[2]);
    }
    if(symName.Contains("SPD") && symName.Contains("Sector") && symName.Contains("HalfStave") && !symName.Contains("Ladder")) {
      hxSPDhalfstave->Fill(tr[0]);
      hySPDhalfstave->Fill(tr[1]);
      hzSPDhalfstave->Fill(tr[2]);
      hrxSPDhalfstave->Fill(rot[0]);
      hrySPDhalfstave->Fill(rot[1]);
      hrzSPDhalfstave->Fill(rot[2]);
    }
    if(symName.Contains("SPD") && symName.Contains("Sector") && symName.Contains("HalfStave") && symName.Contains("Ladder")) {
      hxSPDladder->Fill(tr[0]);
      hySPDladder->Fill(tr[1]);
      hzSPDladder->Fill(tr[2]);
      hrxSPDladder->Fill(rot[0]);
      hrySPDladder->Fill(rot[1]);
      hrzSPDladder->Fill(rot[2]);
    }
    if(symName.Contains("SDD") && symName.Contains("Ladder") && !symName.Contains("Sensor")) {
      hxSDDladder->Fill(tr[0]);
      hySDDladder->Fill(tr[1]);
      hzSDDladder->Fill(tr[2]);
      hrxSDDladder->Fill(rot[0]);
      hrySDDladder->Fill(rot[1]);
      hrzSDDladder->Fill(rot[2]);
    }
    if(symName.Contains("SDD") && symName.Contains("Ladder") && symName.Contains("Sensor")) {
      hxSDDsensor->Fill(tr[0]);
      hySDDsensor->Fill(tr[1]);
      hzSDDsensor->Fill(tr[2]);
      hrxSDDsensor->Fill(rot[0]);
      hrySDDsensor->Fill(rot[1]);
      hrzSDDsensor->Fill(rot[2]);
    }
    if(symName.Contains("SSD") && symName.Contains("Ladder") && !symName.Contains("Sensor")) {
      hxSSDladder->Fill(tr[0]);
      hySSDladder->Fill(tr[1]);
      hzSSDladder->Fill(tr[2]);
      hrxSSDladder->Fill(rot[0]);
      hrySSDladder->Fill(rot[1]);
      hrzSSDladder->Fill(rot[2]);
    }
    if(symName.Contains("SSD") && symName.Contains("Ladder") && symName.Contains("Sensor")) {
      hxSSDsensor->Fill(tr[0]);
      hySSDsensor->Fill(tr[1]);
      hzSSDsensor->Fill(tr[2]);
      hrxSSDsensor->Fill(rot[0]);
      hrySSDsensor->Fill(rot[1]);
      hrzSSDsensor->Fill(rot[2]);
    }


  }


  cSPDsector->cd(1);
  hxSPDsector->Draw();
  cSPDsector->cd(2);
  hySPDsector->Draw();
  cSPDsector->cd(3);
  hzSPDsector->Draw();
  cSPDsector->cd(4);
  hrxSPDsector->Draw();
  cSPDsector->cd(5);
  hrySPDsector->Draw();
  cSPDsector->cd(6);
  hrzSPDsector->Draw();

  cSPDhalfstave->cd(1);
  hxSPDhalfstave->Draw();
  cSPDhalfstave->cd(2);
  hySPDhalfstave->Draw();
  cSPDhalfstave->cd(3);
  hzSPDhalfstave->Draw();
  cSPDhalfstave->cd(4);
  hrxSPDhalfstave->Draw();
  cSPDhalfstave->cd(5);
  hrySPDhalfstave->Draw();
  cSPDhalfstave->cd(6);
  hrzSPDhalfstave->Draw();

  cSPDladder->cd(1);
  hxSPDladder->Draw();
  cSPDladder->cd(2);
  hySPDladder->Draw();
  cSPDladder->cd(3);
  hzSPDladder->Draw();
  cSPDladder->cd(4);
  hrxSPDladder->Draw();
  cSPDladder->cd(5);
  hrySPDladder->Draw();
  cSPDladder->cd(6);
  hrzSPDladder->Draw();


  cSDDladder->cd(1);
  hxSDDladder->Draw();
  cSDDladder->cd(2);
  hySDDladder->Draw();
  cSDDladder->cd(3);
  hzSDDladder->Draw();
  cSDDladder->cd(4);
  hrxSDDladder->Draw();
  cSDDladder->cd(5);
  hrySDDladder->Draw();
  cSDDladder->cd(6);
  hrzSDDladder->Draw();
 
  cSDDsensor->cd(1);
  hxSDDsensor->Draw();
  cSDDsensor->cd(2);
  hySDDsensor->Draw();
  cSDDsensor->cd(3);
  hzSDDsensor->Draw();
  cSDDsensor->cd(4);
  hrxSDDsensor->Draw();
  cSDDsensor->cd(5);
  hrySDDsensor->Draw();
  cSDDsensor->cd(6);
  hrzSDDsensor->Draw();

  cSSDladder->cd(1);
  hxSSDladder->Draw();
  cSSDladder->cd(2);
  hySSDladder->Draw();
  cSSDladder->cd(3);
  hzSSDladder->Draw();
  cSSDladder->cd(4);
  hrxSSDladder->Draw();
  cSSDladder->cd(5);
  hrySSDladder->Draw();
  cSSDladder->cd(6);
  hrzSSDladder->Draw();
 
  cSSDsensor->cd(1);
  hxSSDsensor->Draw();
  cSSDsensor->cd(2);
  hySSDsensor->Draw();
  cSSDsensor->cd(3);
  hzSSDsensor->Draw();
  cSSDsensor->cd(4);
  hrxSSDsensor->Draw();
  cSSDsensor->cd(5);
  hrySSDsensor->Draw();
  cSSDsensor->cd(6);
  hrzSSDsensor->Draw();


  TFile fout(filenameOut,"RECREATE");
  fout.cd();
  fout.WriteObject(arrayOut,"ITSAlignObjs","kSingleKey");
  fout.Close();
  
  return;
}

 DrawITSAlignObj.C:1
 DrawITSAlignObj.C:2
 DrawITSAlignObj.C:3
 DrawITSAlignObj.C:4
 DrawITSAlignObj.C:5
 DrawITSAlignObj.C:6
 DrawITSAlignObj.C:7
 DrawITSAlignObj.C:8
 DrawITSAlignObj.C:9
 DrawITSAlignObj.C:10
 DrawITSAlignObj.C:11
 DrawITSAlignObj.C:12
 DrawITSAlignObj.C:13
 DrawITSAlignObj.C:14
 DrawITSAlignObj.C:15
 DrawITSAlignObj.C:16
 DrawITSAlignObj.C:17
 DrawITSAlignObj.C:18
 DrawITSAlignObj.C:19
 DrawITSAlignObj.C:20
 DrawITSAlignObj.C:21
 DrawITSAlignObj.C:22
 DrawITSAlignObj.C:23
 DrawITSAlignObj.C:24
 DrawITSAlignObj.C:25
 DrawITSAlignObj.C:26
 DrawITSAlignObj.C:27
 DrawITSAlignObj.C:28
 DrawITSAlignObj.C:29
 DrawITSAlignObj.C:30
 DrawITSAlignObj.C:31
 DrawITSAlignObj.C:32
 DrawITSAlignObj.C:33
 DrawITSAlignObj.C:34
 DrawITSAlignObj.C:35
 DrawITSAlignObj.C:36
 DrawITSAlignObj.C:37
 DrawITSAlignObj.C:38
 DrawITSAlignObj.C:39
 DrawITSAlignObj.C:40
 DrawITSAlignObj.C:41
 DrawITSAlignObj.C:42
 DrawITSAlignObj.C:43
 DrawITSAlignObj.C:44
 DrawITSAlignObj.C:45
 DrawITSAlignObj.C:46
 DrawITSAlignObj.C:47
 DrawITSAlignObj.C:48
 DrawITSAlignObj.C:49
 DrawITSAlignObj.C:50
 DrawITSAlignObj.C:51
 DrawITSAlignObj.C:52
 DrawITSAlignObj.C:53
 DrawITSAlignObj.C:54
 DrawITSAlignObj.C:55
 DrawITSAlignObj.C:56
 DrawITSAlignObj.C:57
 DrawITSAlignObj.C:58
 DrawITSAlignObj.C:59
 DrawITSAlignObj.C:60
 DrawITSAlignObj.C:61
 DrawITSAlignObj.C:62
 DrawITSAlignObj.C:63
 DrawITSAlignObj.C:64
 DrawITSAlignObj.C:65
 DrawITSAlignObj.C:66
 DrawITSAlignObj.C:67
 DrawITSAlignObj.C:68
 DrawITSAlignObj.C:69
 DrawITSAlignObj.C:70
 DrawITSAlignObj.C:71
 DrawITSAlignObj.C:72
 DrawITSAlignObj.C:73
 DrawITSAlignObj.C:74
 DrawITSAlignObj.C:75
 DrawITSAlignObj.C:76
 DrawITSAlignObj.C:77
 DrawITSAlignObj.C:78
 DrawITSAlignObj.C:79
 DrawITSAlignObj.C:80
 DrawITSAlignObj.C:81
 DrawITSAlignObj.C:82
 DrawITSAlignObj.C:83
 DrawITSAlignObj.C:84
 DrawITSAlignObj.C:85
 DrawITSAlignObj.C:86
 DrawITSAlignObj.C:87
 DrawITSAlignObj.C:88
 DrawITSAlignObj.C:89
 DrawITSAlignObj.C:90
 DrawITSAlignObj.C:91
 DrawITSAlignObj.C:92
 DrawITSAlignObj.C:93
 DrawITSAlignObj.C:94
 DrawITSAlignObj.C:95
 DrawITSAlignObj.C:96
 DrawITSAlignObj.C:97
 DrawITSAlignObj.C:98
 DrawITSAlignObj.C:99
 DrawITSAlignObj.C:100
 DrawITSAlignObj.C:101
 DrawITSAlignObj.C:102
 DrawITSAlignObj.C:103
 DrawITSAlignObj.C:104
 DrawITSAlignObj.C:105
 DrawITSAlignObj.C:106
 DrawITSAlignObj.C:107
 DrawITSAlignObj.C:108
 DrawITSAlignObj.C:109
 DrawITSAlignObj.C:110
 DrawITSAlignObj.C:111
 DrawITSAlignObj.C:112
 DrawITSAlignObj.C:113
 DrawITSAlignObj.C:114
 DrawITSAlignObj.C:115
 DrawITSAlignObj.C:116
 DrawITSAlignObj.C:117
 DrawITSAlignObj.C:118
 DrawITSAlignObj.C:119
 DrawITSAlignObj.C:120
 DrawITSAlignObj.C:121
 DrawITSAlignObj.C:122
 DrawITSAlignObj.C:123
 DrawITSAlignObj.C:124
 DrawITSAlignObj.C:125
 DrawITSAlignObj.C:126
 DrawITSAlignObj.C:127
 DrawITSAlignObj.C:128
 DrawITSAlignObj.C:129
 DrawITSAlignObj.C:130
 DrawITSAlignObj.C:131
 DrawITSAlignObj.C:132
 DrawITSAlignObj.C:133
 DrawITSAlignObj.C:134
 DrawITSAlignObj.C:135
 DrawITSAlignObj.C:136
 DrawITSAlignObj.C:137
 DrawITSAlignObj.C:138
 DrawITSAlignObj.C:139
 DrawITSAlignObj.C:140
 DrawITSAlignObj.C:141
 DrawITSAlignObj.C:142
 DrawITSAlignObj.C:143
 DrawITSAlignObj.C:144
 DrawITSAlignObj.C:145
 DrawITSAlignObj.C:146
 DrawITSAlignObj.C:147
 DrawITSAlignObj.C:148
 DrawITSAlignObj.C:149
 DrawITSAlignObj.C:150
 DrawITSAlignObj.C:151
 DrawITSAlignObj.C:152
 DrawITSAlignObj.C:153
 DrawITSAlignObj.C:154
 DrawITSAlignObj.C:155
 DrawITSAlignObj.C:156
 DrawITSAlignObj.C:157
 DrawITSAlignObj.C:158
 DrawITSAlignObj.C:159
 DrawITSAlignObj.C:160
 DrawITSAlignObj.C:161
 DrawITSAlignObj.C:162
 DrawITSAlignObj.C:163
 DrawITSAlignObj.C:164
 DrawITSAlignObj.C:165
 DrawITSAlignObj.C:166
 DrawITSAlignObj.C:167
 DrawITSAlignObj.C:168
 DrawITSAlignObj.C:169
 DrawITSAlignObj.C:170
 DrawITSAlignObj.C:171
 DrawITSAlignObj.C:172
 DrawITSAlignObj.C:173
 DrawITSAlignObj.C:174
 DrawITSAlignObj.C:175
 DrawITSAlignObj.C:176
 DrawITSAlignObj.C:177
 DrawITSAlignObj.C:178
 DrawITSAlignObj.C:179
 DrawITSAlignObj.C:180
 DrawITSAlignObj.C:181
 DrawITSAlignObj.C:182
 DrawITSAlignObj.C:183
 DrawITSAlignObj.C:184
 DrawITSAlignObj.C:185
 DrawITSAlignObj.C:186
 DrawITSAlignObj.C:187
 DrawITSAlignObj.C:188
 DrawITSAlignObj.C:189
 DrawITSAlignObj.C:190
 DrawITSAlignObj.C:191
 DrawITSAlignObj.C:192
 DrawITSAlignObj.C:193
 DrawITSAlignObj.C:194
 DrawITSAlignObj.C:195
 DrawITSAlignObj.C:196
 DrawITSAlignObj.C:197
 DrawITSAlignObj.C:198
 DrawITSAlignObj.C:199
 DrawITSAlignObj.C:200
 DrawITSAlignObj.C:201
 DrawITSAlignObj.C:202
 DrawITSAlignObj.C:203
 DrawITSAlignObj.C:204
 DrawITSAlignObj.C:205
 DrawITSAlignObj.C:206
 DrawITSAlignObj.C:207
 DrawITSAlignObj.C:208
 DrawITSAlignObj.C:209
 DrawITSAlignObj.C:210
 DrawITSAlignObj.C:211
 DrawITSAlignObj.C:212
 DrawITSAlignObj.C:213
 DrawITSAlignObj.C:214
 DrawITSAlignObj.C:215
 DrawITSAlignObj.C:216
 DrawITSAlignObj.C:217
 DrawITSAlignObj.C:218
 DrawITSAlignObj.C:219
 DrawITSAlignObj.C:220
 DrawITSAlignObj.C:221
 DrawITSAlignObj.C:222
 DrawITSAlignObj.C:223
 DrawITSAlignObj.C:224
 DrawITSAlignObj.C:225
 DrawITSAlignObj.C:226
 DrawITSAlignObj.C:227
 DrawITSAlignObj.C:228
 DrawITSAlignObj.C:229
 DrawITSAlignObj.C:230
 DrawITSAlignObj.C:231
 DrawITSAlignObj.C:232
 DrawITSAlignObj.C:233
 DrawITSAlignObj.C:234
 DrawITSAlignObj.C:235
 DrawITSAlignObj.C:236
 DrawITSAlignObj.C:237
 DrawITSAlignObj.C:238
 DrawITSAlignObj.C:239
 DrawITSAlignObj.C:240
 DrawITSAlignObj.C:241
 DrawITSAlignObj.C:242
 DrawITSAlignObj.C:243
 DrawITSAlignObj.C:244
 DrawITSAlignObj.C:245
 DrawITSAlignObj.C:246
 DrawITSAlignObj.C:247
 DrawITSAlignObj.C:248
 DrawITSAlignObj.C:249
 DrawITSAlignObj.C:250
 DrawITSAlignObj.C:251
 DrawITSAlignObj.C:252
 DrawITSAlignObj.C:253
 DrawITSAlignObj.C:254
 DrawITSAlignObj.C:255
 DrawITSAlignObj.C:256
 DrawITSAlignObj.C:257
 DrawITSAlignObj.C:258
 DrawITSAlignObj.C:259
 DrawITSAlignObj.C:260
 DrawITSAlignObj.C:261
 DrawITSAlignObj.C:262
 DrawITSAlignObj.C:263
 DrawITSAlignObj.C:264
 DrawITSAlignObj.C:265
 DrawITSAlignObj.C:266
 DrawITSAlignObj.C:267
 DrawITSAlignObj.C:268
 DrawITSAlignObj.C:269
 DrawITSAlignObj.C:270
 DrawITSAlignObj.C:271
 DrawITSAlignObj.C:272
 DrawITSAlignObj.C:273
 DrawITSAlignObj.C:274
 DrawITSAlignObj.C:275
 DrawITSAlignObj.C:276
 DrawITSAlignObj.C:277
 DrawITSAlignObj.C:278
 DrawITSAlignObj.C:279
 DrawITSAlignObj.C:280
 DrawITSAlignObj.C:281
 DrawITSAlignObj.C:282
 DrawITSAlignObj.C:283
 DrawITSAlignObj.C:284
 DrawITSAlignObj.C:285
 DrawITSAlignObj.C:286
 DrawITSAlignObj.C:287
 DrawITSAlignObj.C:288
 DrawITSAlignObj.C:289
 DrawITSAlignObj.C:290
 DrawITSAlignObj.C:291
 DrawITSAlignObj.C:292
 DrawITSAlignObj.C:293
 DrawITSAlignObj.C:294
 DrawITSAlignObj.C:295
 DrawITSAlignObj.C:296
 DrawITSAlignObj.C:297
 DrawITSAlignObj.C:298
 DrawITSAlignObj.C:299
 DrawITSAlignObj.C:300
 DrawITSAlignObj.C:301
 DrawITSAlignObj.C:302
 DrawITSAlignObj.C:303
 DrawITSAlignObj.C:304
 DrawITSAlignObj.C:305
 DrawITSAlignObj.C:306
 DrawITSAlignObj.C:307
 DrawITSAlignObj.C:308
 DrawITSAlignObj.C:309
 DrawITSAlignObj.C:310
 DrawITSAlignObj.C:311
 DrawITSAlignObj.C:312
 DrawITSAlignObj.C:313
 DrawITSAlignObj.C:314
 DrawITSAlignObj.C:315
 DrawITSAlignObj.C:316
 DrawITSAlignObj.C:317
 DrawITSAlignObj.C:318
 DrawITSAlignObj.C:319
 DrawITSAlignObj.C:320
 DrawITSAlignObj.C:321
 DrawITSAlignObj.C:322
 DrawITSAlignObj.C:323
 DrawITSAlignObj.C:324
 DrawITSAlignObj.C:325
 DrawITSAlignObj.C:326
 DrawITSAlignObj.C:327
 DrawITSAlignObj.C:328
 DrawITSAlignObj.C:329
 DrawITSAlignObj.C:330
 DrawITSAlignObj.C:331
 DrawITSAlignObj.C:332
 DrawITSAlignObj.C:333
 DrawITSAlignObj.C:334
 DrawITSAlignObj.C:335
 DrawITSAlignObj.C:336
 DrawITSAlignObj.C:337
 DrawITSAlignObj.C:338
 DrawITSAlignObj.C:339
 DrawITSAlignObj.C:340
 DrawITSAlignObj.C:341
 DrawITSAlignObj.C:342
 DrawITSAlignObj.C:343
 DrawITSAlignObj.C:344
 DrawITSAlignObj.C:345
 DrawITSAlignObj.C:346
 DrawITSAlignObj.C:347
 DrawITSAlignObj.C:348
 DrawITSAlignObj.C:349
 DrawITSAlignObj.C:350
 DrawITSAlignObj.C:351
 DrawITSAlignObj.C:352
 DrawITSAlignObj.C:353
 DrawITSAlignObj.C:354
 DrawITSAlignObj.C:355
 DrawITSAlignObj.C:356
 DrawITSAlignObj.C:357
 DrawITSAlignObj.C:358
 DrawITSAlignObj.C:359
 DrawITSAlignObj.C:360
 DrawITSAlignObj.C:361
 DrawITSAlignObj.C:362
 DrawITSAlignObj.C:363
 DrawITSAlignObj.C:364
 DrawITSAlignObj.C:365
 DrawITSAlignObj.C:366
 DrawITSAlignObj.C:367
 DrawITSAlignObj.C:368
 DrawITSAlignObj.C:369