ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TH1F.h>
#include <TH2F.h>
#include <TF1.h>
#include <TPad.h>
#include <TGraphErrors.h>
#include <TROOT.h>
#include <TFile.h>
#include <TTree.h>
#include <TMath.h>
#include <TCanvas.h>
#include <TStyle.h>
#include <TLatex.h>
#include "AliITSgeomTGeo.h"
#include "AliESDEvent.h"
#endif

enum {kAll, kTPCITS, kITSsa, kITSpureSA};

void CheckSDDInESD(TString filename="AliESDs.root", Int_t optTracks=kAll){


  TFile* esdFile = TFile::Open(filename.Data());
  if (!esdFile || !esdFile->IsOpen()) {
    printf("Error in opening ESD file");
    return;
  }

  AliESDEvent * esd = new AliESDEvent;
  TTree* tree = (TTree*) esdFile->Get("esdTree");
  if (!tree) {
    printf("Error: no ESD tree found");
    return;
  }
  esd->ReadFromTree(tree);
  TH1F* hpt=new TH1F("hpt","",100,0.,10.);
  TH1F* hphi=new TH1F("hphi","",100,-1,1);
  TH1F* hlam=new TH1F("hlam","",100,-2.,2.);
  TH1F* halpha=new TH1F("halpha","",100,-7,7);
  TH1F* hitscl=new TH1F("hitscl","",7,-0.5,6.5);
  TH1F* htpccl=new TH1F("htpccl","",200,-0.5,199.5);
  TH1F* hitsmap=new TH1F("hitsmap","",64,-0.5,63.5);
  TH1F* hclulay=new TH1F("hclulay","",7,-1.5,5.5);

  TH1F* hvx=new TH1F("hvx","",100,-1.,1.);
  TH1F* hvy=new TH1F("hvy","",100,-1.,1.);
  TH1F* hvz=new TH1F("hvz","",100,-20.,20.);
  TH1F* hdedx3=new TH1F("hdedx3","",100,0.,300.);
  TH1F* hdedx4=new TH1F("hdedx4","",100,0.,300.);
  TH1F* hdedx5=new TH1F("hdedx5","",100,0.,300.);
  TH1F* hdedx6=new TH1F("hdedx6","",100,0.,300.);
  TH1F* hStatus=new TH1F("hStatus","",11,-1.5,9.5);


  // -- Local coordinates


  // -- Module histos

  TH1F* hAllPMod  = new TH1F("hAllPmod","Crossing Tracks vs. Module",260,239.5,499.5);
  TH1F* hGoodPMod  = new TH1F("hGoodPmod","PointsAssocToTrack per Module",260,239.5,499.5);
  TH1F* hBadRegMod  = new TH1F("hBadRegmod","Tracks in BadRegion per Module",260,239.5,499.5);
  TH1F* hMissPMod  = new TH1F("hMissPmod","Missing Points per Module",260,239.5,499.5);
  TH1F* hSkippedMod  = new TH1F("hSkippedmod","Tracks in Skipped Module",260,239.5,499.5);
  TH1F* hOutAccMod  = new TH1F("hOutAccmod","Tracks outside zAcc per Module",260,239.5,499.5);
  TH1F* hNoRefitMod  = new TH1F("hNoRefitmod","Points rejected in refit per Module",260,239.5,499.5);

  TH1F* hAllPXloc  = new TH1F("hAllPxloc","Crossing Tracks vs. Xloc",75, -3.75, 3.75);
  TH1F* hGoodPXloc  = new TH1F("hGoodPxloc","PointsAssocToTrack vs. Xloc",75, -3.75, 3.75);
  TH1F* hBadRegXloc  = new TH1F("hBadRegxloc","Tracks in BadRegion vs. Xloc",75, -3.75, 3.75);
  TH1F* hMissPXloc  = new TH1F("hMissPxloc","Missing Points vs. Xloc",75, -3.75, 3.75);
  TH1F* hAllPZloc  = new TH1F("hAllPzloc","Crossing Tracks vs. Zloc",77, -3.85, 3.85);
  TH1F* hGoodPZloc  = new TH1F("hGoodPzloc","PointsAssocToTrack vs. Zloc",77, -3.85, 3.85);
  TH1F* hBadRegZloc  = new TH1F("hBadRegzloc","Tracks in BadRegion vs. Zloc",77, -3.85, 3.85);
  TH1F* hMissPZloc  = new TH1F("hMissPzloc","Missing Points vs. Zloc",77, -3.85, 3.85);
  TH2F* hdEdxVsMod=new TH2F("hdEdxVsMod","dE/dx vs. mod",260,239.5,499.5,100,0.,500.);

  gStyle->SetPalette(1);
  

  for (Int_t iEvent = 0; iEvent < tree->GetEntries(); iEvent++) {
    tree->GetEvent(iEvent);
    if (!esd) {
      printf("Error: no ESD object found for event %d", iEvent);
      return;
    }
    cout<<"-------- Event "<<iEvent<<endl;
    printf(" Tracks # = %d\n",esd->GetNumberOfTracks());
    const AliESDVertex *spdv=esd->GetVertex();
    printf(" SPD Primary Vertex in %f %f %f with %d contributors\n",spdv->GetX(),spdv->GetY(),spdv->GetZ(),spdv->GetNContributors());
    const AliESDVertex *trkv=esd->GetPrimaryVertex();
    printf(" Track Primary Vertex with %d contributors\n",trkv->GetNContributors());
    if(spdv->IsFromVertexer3D()){
      hvx->Fill(spdv->GetX());
      hvy->Fill(spdv->GetY());
      hvz->Fill(spdv->GetZ());
    }
    Double_t itss[4];
    for (Int_t iTrack = 0; iTrack < esd->GetNumberOfTracks(); iTrack++) {
      AliESDtrack* track = esd->GetTrack(iTrack);
      Int_t nITSclus=track->GetNcls(0);
      UChar_t clumap=track->GetITSClusterMap();
      Int_t nPointsForPid=0;
      for(Int_t i=2; i<6; i++){
	if(clumap&(1<<i)) ++nPointsForPid;
      }
      //      track->PropagateTo(4.,5.);
      htpccl->Fill(track->GetNcls(1));
      Int_t status=track->GetStatus();
      Bool_t tpcin=0;
      hStatus->Fill(-1.);
      if(status & AliESDtrack::kTPCin){
	tpcin=1;
	hStatus->Fill(0.);
      }
      if(status & AliESDtrack::kTPCout){
	hStatus->Fill(1.);
      }
      if(status & AliESDtrack::kTPCrefit){
	hStatus->Fill(2.);
      }
      Bool_t itsin=0;
      if(status & AliESDtrack::kITSin){
	itsin=1;
	hStatus->Fill(3.);
      }
      if(status & AliESDtrack::kITSout){
	hStatus->Fill(4.);
      }
      if(status & AliESDtrack::kITSrefit){
	hStatus->Fill(5.);
      }
      if(!tpcin && itsin){
	hStatus->Fill(6.);
      }
      if(status & AliESDtrack::kITSpureSA){
	hStatus->Fill(7.);
      }

      if(status & AliESDtrack::kITSrefit){
	if((optTracks==kTPCITS) && !(status & AliESDtrack::kTPCin)) continue;
	if((optTracks==kITSsa) && (status & AliESDtrack::kTPCin)) continue;
	if((optTracks==kITSsa) && (status & AliESDtrack::kITSpureSA)) continue;
	if((optTracks==kITSpureSA) && (status & AliESDtrack::kITSpureSA)) continue;

	 track->GetITSdEdxSamples(itss);
	//	printf("Track %d (label %d) in ITS with %d clusters clumap %d pointspid= %d\n",iTrack,track->GetLabel(),nITSclus,clumap,nPointsForPid);
	//printf("   dedx=%f %f %f %f\n",itss[0],itss[1],itss[2],itss[3]);
	hitscl->Fill(nITSclus);
	hdedx3->Fill(itss[0]);
	hdedx4->Fill(itss[1]);
	hdedx5->Fill(itss[2]);
	hdedx6->Fill(itss[3]);
	hitsmap->Fill(clumap);
	hclulay->Fill(-1.);
	for(Int_t iLay=0;iLay<6;iLay++){
	  if(clumap&1<<iLay) hclulay->Fill(iLay);
	}
	hpt->Fill(track->Pt());
	hphi->Fill(TMath::ASin(track->GetSnp()));
	hlam->Fill(TMath::ATan(track->GetTgl()));
	halpha->Fill(track->GetAlpha());
	Int_t iMod,status;
	Float_t xloc,zloc;
	for(Int_t iLay=2; iLay<=3; iLay++){
	  Bool_t ok=track->GetITSModuleIndexInfo(iLay,iMod,status,xloc,zloc);
	  if(ok){
	    iMod+=240;
	    hAllPMod->Fill(iMod);
	    hAllPXloc->Fill(xloc);
	    hAllPZloc->Fill(zloc);
	    if(status==1){
	      hGoodPMod->Fill(iMod);
	      hGoodPXloc->Fill(xloc);
	      hGoodPZloc->Fill(zloc);
	      if(track->Pt()>1.) hdEdxVsMod->Fill(iMod,itss[iLay-2]);
	    }
	    else if(status==2){ 
	      hBadRegMod->Fill(iMod);
	      hBadRegXloc->Fill(xloc);
	      hBadRegZloc->Fill(zloc);
	    }
	    else if(status==3) hSkippedMod->Fill(iMod);
	    else if(status==4) hOutAccMod->Fill(iMod);
	    else if(status==5){
	      hMissPMod->Fill(iMod);
	      hMissPXloc->Fill(xloc);
	      hMissPZloc->Fill(zloc);
	    }
	    else if(status==6) hNoRefitMod->Fill(iMod);
	  }
	}
      }
    }
  }
  Float_t norm=hclulay->GetBinContent(1);
  if(norm<1.) norm=1.;
  hclulay->Scale(1./norm);
  gStyle->SetLineWidth(2);

  TCanvas* c1=new TCanvas("c1","Track quantities",900,900);
  c1->Divide(2,2);
  c1->cd(1);
  htpccl->Draw();
  htpccl->GetXaxis()->SetTitle("Clusters in TPC ");
  c1->cd(2);
  hitscl->Draw();
  hitscl->GetXaxis()->SetTitle("Clusters in ITS ");
  c1->cd(3);
  hclulay->Draw();
  hclulay->GetXaxis()->SetRange(2,7);
  hclulay->GetXaxis()->SetTitle("# ITS Layer");
  hclulay->GetYaxis()->SetTitle("Fraction of tracks with point in Layer x");
  c1->cd(4);

  TCanvas* c2=new TCanvas("c2","dedx per Layer",900,900);
  c2->Divide(2,2);
  c2->cd(1);
  hdedx3->Draw();
  hdedx3->GetXaxis()->SetTitle("dE/dx Lay3");
  c2->cd(2);
  hdedx4->Draw();
  hdedx4->GetXaxis()->SetTitle("dE/dx Lay4");
  c2->cd(3);
  hdedx5->Draw();
  hdedx5->GetXaxis()->SetTitle("dE/dx Lay5");
  c2->cd(4);
  hdedx6->Draw();
  hdedx6->GetXaxis()->SetTitle("dE/dx Lay6");

  hdEdxVsMod->SetStats(0);
  TCanvas* cdedx=new TCanvas("cdedx","dedx SDD",1400,600);
  cdedx->SetLogz();
  hdEdxVsMod->Draw("col"); 
  hdEdxVsMod->GetXaxis()->SetTitle("SDD Module Id");
  hdEdxVsMod->GetYaxis()->SetTitle("dE/dx (keV/300 #mum)");
  hdEdxVsMod->GetYaxis()->SetTitleOffset(1.25);



  TCanvas* cv=new TCanvas("cv","Vertex",600,900);
  cv->Divide(1,3);
  cv->cd(1);
  hvx->Draw();
  hvx->GetXaxis()->SetTitle("Xv (cm)");
  cv->cd(2);
  hvy->Draw();
  hvy->GetXaxis()->SetTitle("Yv (cm)");
  cv->cd(3);
  hvz->Draw();
  hvz->GetXaxis()->SetTitle("Xv (cm)");

  hGoodPMod->SetStats(0);
  hGoodPMod->SetTitle("");
  TCanvas* ceff0=new TCanvas("ceff0","ModuleIndexInfo",1000,600);
  hGoodPMod->Draw("e");
  hGoodPMod->GetXaxis()->SetTitle("SDD Module Id");
  hGoodPMod->GetYaxis()->SetTitle("Number of tracks");
  hMissPMod->SetLineColor(2);
  hMissPMod->SetMarkerColor(2);
  hMissPMod->SetMarkerStyle(22);
  hMissPMod->SetMarkerSize(0.5);
  hMissPMod->Draw("psame");
  hBadRegMod->SetLineColor(kGreen+1);
  hBadRegMod->SetMarkerColor(kGreen+1);
  hBadRegMod->SetMarkerStyle(20);
  hBadRegMod->SetMarkerSize(0.5);
  hBadRegMod->Draw("esame");
  hSkippedMod->SetLineColor(kYellow);
  hSkippedMod->Draw("esame");
  hOutAccMod->SetLineColor(4);
  hOutAccMod->Draw("esame");
  hNoRefitMod->SetLineColor(6);
  hNoRefitMod->Draw("esame");
  TLatex* t1=new TLatex(0.7,0.85,"Good Point");
  t1->SetNDC();
  t1->SetTextColor(1);
  t1->Draw();
  TLatex* t2=new TLatex(0.7,0.8,"Missing Point");
  t2->SetNDC();
  t2->SetTextColor(2);
  t2->Draw();
  TLatex* t3=new TLatex(0.7,0.75,"Bad Region");
  t3->SetNDC();
  t3->SetTextColor(kGreen+1);
  t3->Draw();
  ceff0->Update();

  TH1F* heff=new TH1F("heff","",260,239.5,499.5);
  for(Int_t imod=0; imod<260;imod++){
    Float_t numer=hGoodPMod->GetBinContent(imod+1)+hBadRegMod->GetBinContent(imod+1)+hOutAccMod->GetBinContent(imod+1)+hNoRefitMod->GetBinContent(imod+1);
    Float_t denom=hAllPMod->GetBinContent(imod+1);
    Float_t eff=0.;
    Float_t erreff=0.;
    if(denom>0){
      eff=numer/denom;
      erreff=TMath::Sqrt(eff*(1-eff)/denom);
    }
    heff->SetBinContent(imod+1,eff);
    heff->SetBinError(imod+1,erreff);
  }

  printf("---- Modules with efficiency < 90%% ----\n");
  heff->SetStats(0);
  TCanvas* ceff1=new TCanvas("ceff1","Efficiency",1000,600);
  heff->Draw();
  heff->GetXaxis()->SetTitle("SDD Module Id");
  heff->GetYaxis()->SetTitle("Fraction of tracks with point in good region");
  for(Int_t ibin=1; ibin<=heff->GetNbinsX(); ibin++){
    Float_t e=heff->GetBinContent(ibin);
    if(e<0.9){
      Int_t iMod=(Int_t)heff->GetBinCenter(ibin);
      Int_t lay,lad,det;
      AliITSgeomTGeo::GetModuleId(iMod,lay,lad,det);
      printf("Module %d - Layer %d Ladder %2d Det %d  -   Eff. %.3f\n",iMod,lay,lad,det,heff->GetBinContent(ibin));
    }
  }
  ceff1->Update();



  hGoodPXloc->SetTitle("");
  hGoodPZloc->SetTitle("");
  hGoodPXloc->SetStats(0);
  hGoodPZloc->SetStats(0);
  hGoodPXloc->SetMinimum(0);
  hGoodPZloc->SetMinimum(0);
  TCanvas* ceff2=new TCanvas("ceff2","LocalCoord",1000,600);
  ceff2->Divide(2,1);
  ceff2->cd(1);
  hGoodPXloc->Draw("e");
  hGoodPXloc->GetXaxis()->SetTitle("Xlocal (cm)");
  hGoodPXloc->GetYaxis()->SetTitle("Number of tracks");
  hMissPXloc->SetLineColor(2);
  hMissPXloc->SetMarkerColor(2);
  hMissPXloc->SetMarkerStyle(22);
  hMissPXloc->SetMarkerSize(0.5);
  hMissPXloc->Draw("psame");
  hBadRegXloc->SetLineColor(kGreen+1);
  hBadRegXloc->SetMarkerColor(kGreen+1);
  hBadRegXloc->SetMarkerStyle(20);
  hBadRegXloc->SetMarkerSize(0.5);
  hBadRegXloc->Draw("psame");
  t1->Draw();
  t2->Draw();
  t3->Draw();
  ceff2->cd(2);
  hGoodPZloc->Draw("e");
  hGoodPZloc->GetXaxis()->SetTitle("Zlocal (cm)");
  hGoodPZloc->GetYaxis()->SetTitle("Number of tracks");
  hMissPZloc->SetLineColor(2);
  hMissPZloc->SetMarkerColor(2);
  hMissPZloc->SetMarkerStyle(22);
  hMissPZloc->SetMarkerSize(0.5);
  hMissPZloc->Draw("psame");
  hBadRegZloc->SetLineColor(kGreen+1);
  hBadRegZloc->SetMarkerColor(kGreen+1);
  hBadRegZloc->SetMarkerStyle(20);
  hBadRegZloc->SetMarkerSize(0.5);
  hBadRegZloc->Draw("psame");
  t1->Draw();
  t2->Draw();
  t3->Draw();
  ceff2->Update();


  
}





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