ROOT logo
#include "TH1F.h"
#include "TProfile.h"
#include "TH2F.h"
#include "TMap.h"
#include "TFile.h"
#include "TTree.h"
#include "TBranch.h"

#include "TGLabel.h"
#include "TGrid.h"
#include "TFitResult.h"

#include "TControlBar.h"
#include <Riostream.h>
#include "AliCDBManager.h"
#include "AliRawReader.h"
#include "AliRawReaderRoot.h"
#include "AliT0LookUpValue.h"
#include "AliT0LookUpKey.h"
#include "AliT0Parameters.h"
#include "AliT0RawReader.h"
#include "AliT0CalibLaserData.h"
#include "AliESDTZERO.h"
#include "AliESDVertex.h"
#include "AliESDVZERO.h"
#include "AliESDEvent.h"

void readESDlocal(Int_t run) 
{
  //read T0 ESD from reconstructed T0 data 
  TH1F *hMean= new TH1F("hMean"," T0 ", 1000,2000,3000);
  // TH1F *hMeanTOF= new TH1F("hMeanTOF"," T0 ", 1000,-10,10);
  // TH1F *hOrA= new TH1F("hOrA"," OrA T0 ",1000,-10,10);
  //  TH1F *hOrC= new TH1F("hOrC"," OrC T0 ",1000,-10,10);
  TH1F *hVertex = new TH1F("hVertex","Z position of vertex", 180,-100,100);
  TH1F *hVertexcalc = new TH1F("hVertexcalc","Z position of vertex", 180,-100,100);
  TH1F *hVertexT0 = new TH1F("hVertexT0","Z position of vertex", 1000,-10,10);
 TH1F *hVertexT0calc = new TH1F("hVertexT0calc","Z position of vertex", 1000,-10,10);
  TH1F *hVertexComp = new TH1F("hVertexComparison ","Z position of vertex", 180,-30,30);
  TH1F *hVertexT0only = new TH1F("hVertexT0only","Z position of vertex without SPD vertex", 180,-30,30);
  TH1F *hVertexSPD = new TH1F("hVertexSPD","Z position of vertex SPD", 180,-30,30);

  TH2F *hVertexSPDT0 = new TH2F("hVertexSPDT0","Z position of vertex SPD-T0",   180,-30,30, 180,-30,30);
  //
   TH1F *hMeanTOF= new TH1F("hMeanTOF"," T0 ", 8000, -100,100);
    TH1F *hOrA= new TH1F("hOrA"," OrA T0 ",8000, -100,100);
    TH1F *hOrC= new TH1F("hOrC"," OrC T0 ",8000, -100,100);
    // TH1F *hMeanTOF= new TH1F("hMeanTOF"," T0 ", 2000, -8950,-8900);
    // TH1F *hOrA= new TH1F("hOrA"," OrA T0 ",2000, -8950,-8900);
    //   TH1F *hOrC= new TH1F("hOrC"," OrC T0 ",2000, -8950,-8900);


    TH1F *hMeanTOFcalc= new TH1F("hMeanTOFcalc"," T0 ", 2000, -8950,-8900);
    TH1F *hOrAcalc= new TH1F("hOrAcalc"," OrA T0 ",2000, -8950,-8900);
    TH1F *hOrCcalc= new TH1F("hOrCcalc"," OrC T0 ",2000, -8950,-8900);
    //  TH1F *hMeanTOFcalc= new TH1F("hMeanTOFcalc"," T0 ", 8000, -100,100);
    //   TH1F *hOrAcalc= new TH1F("hOrAcalc"," OrA T0 ",8000, -100,100);
    //   TH1F *hOrCcalc= new TH1F("hOrCcalc"," OrC T0 ",8000, -100,100);
   
  TH1F *hAmp[24];  TH1F * hTime[24]; TH1F * hTimeDiff[24]; TH1F * hTimecorr[24];
  //  TProfile * hAmpTime[24];
  TH2F * hAmpTime[24];
  
  for(Int_t ic=0; ic<24; ic++) 
    {
      hAmp[ic] = new TH1F(Form("hAmp%i",ic+1),"Amp",100, -10, 20 );
      //      hAmp[ic] = new TH1F(Form("hAmp%i",ic),"Amp",400, 300, 700 );
      hTime[ic] = new TH1F(Form("hTime%i",ic+1)," time",  5000,0,10000);
      hTimecorr[ic] = new TH1F(Form("hTimecorr%i",ic+1)," time",  5000,0,10000);
      hTimeDiff[ic] = new TH1F(Form("hTimeDiff%i",ic+1)," time", 300,-300,300);
      //   hAmpTime[ic] = new TProfile(Form("hAmpTime%i",ic)," time",200, 300,700, 49000, 53000);
      hAmpTime[ic] = new TH2F(Form("hAmpTime%i",ic+1)," time",100, 0,10, 100,3000,4000);
	// hAmpTime[ic] = new TH2F(Form("hAmpTime%i",ic)," time",250, 350,600, 400, 49400, 49800);
    }
  
  Float_t channelWidth=24.4;
  Float_t c = 0.0299792458; // cm/ps
  Float_t shift=0;
  Float_t fLatencyHPTDC = 9000;


 //run 124702
  // Float_t fLatencyL1 = 8.91358e+03;
  // Float_t fLatencyL1A = 8.91352e+03;
  // Float_t fLatencyL1C =8.91361e+03;

  //run 125097
  //   Float_t fLatencyL1 =   8.914520e+03 ;
  // Float_t fLatencyL1A =  8.914860e+03 ;
  // Float_t fLatencyL1C =  8.914180e+03;

//run 125295
  Float_t fLatencyL1 =  8.91406e+03  ;
  Float_t fLatencyL1A = 8.91401e+03;
  Float_t fLatencyL1C = 8.91412e+03 ;


  //  Float_t fLatencyL1 = 0;
  //  Float_t fLatencyL1A = 0;
  // Float_t fLatencyL1C =0;
     //125842
  //  Float_t fLatencyL1 = 8.91306e+03;
  //  Float_t fLatencyL1A =8.91338e+03;
  // Float_t fLatencyL1C =8.91274e+03;
 //
     //126407
     //  Float_t fLatencyL1 = 8.91345e+03;
     //  Float_t fLatencyL1A =8.91378e+03;
     // Float_t fLatencyL1C =8.91311e+03;
 //
  const Double32_t *amp, *time, *mean;
  Double32_t time1[24];
  TString filenam[100];
 
 

  //   Float_t equal[24]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
  //124358
  //Float_t equal[24]={22, 0 ,0 ,1 ,3 ,1 ,0 ,0 ,-4 ,1 ,1 ,-1 ,0 ,-3 ,0 ,-6 ,0 ,-3 ,2 ,0 ,-1 ,-1 ,-3 ,0 };

     //124702
  // Float_t equal[24]={20, 0 ,15, 50, 37, 36, 23, -20, 77, 54, 44, -12, 
  //		     0, 19, -25, -13, 35, 1, 23, 46, 20, 77, 50, 122};


  //125097
   Float_t equal[24]={8,0 ,15 ,50 ,36 ,34 ,24 ,-21 ,81 ,53 ,42 ,-12 ,0 ,19 ,-20 ,-7 ,37 ,5 ,25 ,49 ,19 ,78 ,52 ,124};

  //  125295

  //Float_t equal[24]={16, 0,  2, 2, 30, 3, -5, -8, 5, -4, 16, -5, 
   //		 0, 10, 10, 12, 13, -24, 15, 26, -2, 17, 10, -30};

 

   //125842
  // Float_t equal[24]={16, 0, 1, 3,  32,   4, -2, -8, 5, -3, 15, -5, 
  //		      0, 10, 9, 12, 14, -23, 16, 26, 0, 19, 9, -31 };
 
  //126407
  //  Float_t equal[24]={16, 0,   1, 4, 33, 4, 0, -7, 6, -3, 15, -4,
    //                    0 , 10, 10, 13, 13, -23, 16, 28, 0, 19, 11, -29};

   //for ( Int_t indexfile=filestart; indexfile < filestop+1;indexfile++ ) 
    for ( Int_t indexfile=0; indexfile < 1; indexfile++ ) 
    {
      TString  fFileName=Form("%i/noeq/AliESDs.root", run);
      //  cout<<" filenam "<<fFileName<<endl;
      //  fFileName=filenam[indexfile];
       
      TFile *file = TFile::Open(fFileName);
      //  cout<<file<<endl;  
      
      //   TFile *file = new TFile("AliESDs.root");
      
      TTree *esdTree =  (TTree*)file->Get("esdTree");
      
      AliESDEvent *esdevent = new AliESDEvent;
      esdevent->ReadFromTree(esdTree);
      cout<<"esdevent "<<esdevent<<endl;
      
      TBranch *brSPD=esdTree->GetBranch("SPDVertex.");
      AliESDVertex *fverSPD = new AliESDVertex();
      if (brSPD) {
	brSPD->SetAddress(&fverSPD);
      }else{
	cerr<<"EXEC Branch SPDvertex  not found"<<endl;
	return;
      }
      
      TBranch *brRec=esdTree->GetBranch("AliESDTZERO.");
      AliESDTZERO *fesdT0 = new AliESDTZERO();
      if (brRec) {
	brRec->SetAddress(&fesdT0);
      }else{
	cerr<<"EXEC Branch T0  not found"<<endl;
	return;
      }
      cout<<" branches "<<brRec<<endl;
      // Event ------------------------- LOOP  
      for (Int_t ievent=0; ievent<brRec->GetEntries(); ievent++){
	
	Double32_t fOrA, besttimeA=9999999;
	Double32_t fOrC, besttimeC=9999999;
	for (Int_t ip=0; ip<24; ip++) time1[ip]=0;
	Float_t timecorr=0;
	Int_t ncont=0;
	Float_t shift=0;
	brRec->GetEntry(ievent);
	brSPD->GetEntry(ievent);
	esdTree->GetEvent(ievent);
	
	TString triggers = esdevent->GetFiredTriggerClasses();
	//	printf("Event %d: trigger classes: \"%s\"\n",
	//     esdevent->GetEventNumberInFile(),
	//     esdevent->GetFiredTriggerClasses().Data());
	if ( !triggers.Contains("CINT1B-ABCE-NOPF-ALL") ) {
	  //  Printf("Skip event with trigger class \"%s\"",triggers.Data());
	  continue;
	}
	Double_t spdver = fverSPD->GetZ();
	ncont = fverSPD->GetNContributors();
	// cout<<" spdver "<<spdver<<" ncont "<<ncont<<endl;
	if(ncont>2) {
	  hVertexSPD->Fill(spdver);
	  shift = spdver/(c*channelWidth );
	  //	  cout<<ievent<<" vertex shif "<<shift<<" vertex "<<spdver<<" IsFromVertexer3D  "<<fverSPD->IsFromVertexer3D()<<endl;
	}
	
	Int_t trig=fesdT0->GetT0Trig();
	Float_t   meanTOF = fesdT0->GetT0();
	mean = fesdT0->GetT0TOF();
	Double32_t vertex= fesdT0->GetT0zVertex();
	Double32_t orA=0.001* mean[1]  ;
	Double32_t orC= 0.001*mean[2] ;
	if (orA<99){
	  hOrA->Fill(orA);
	  //	  cout<<ievent<<" ORA "<< orA<<endl;
	}
	if (orC<99) {
	  hOrC->Fill(orC);
	  //	  cout<<ievent<<" ORC "<< orC<<endl;
	}

	if(orA<99 && orC<99) hVertexT0->Fill((orA-orC)/2.);
	
	if (vertex<99990) {
	  hMeanTOF->Fill(0.001*mean[0] );
	  hMean->Fill(meanTOF);
	  hVertex->Fill(vertex);
	  if(ncont>1) {
	    hVertexComp->Fill(vertex-spdver);
	    hVertexSPDT0->Fill(vertex,spdver);
	  }
	  if(ncont<0) hVertexT0only->Fill(vertex); 
	  
	}
	amp=fesdT0->GetT0amplitude();
	time=fesdT0->GetT0time();
	for (Int_t i=0; i<24; i++){ 
	  if( time[i]>0){
	    hAmp[i]->Fill(amp[i]);
	    hTime[i]->Fill(time[i]);
	    time1[i]=time[i] -equal[i];
	    
	    if(i<12){
	      if(time[1] >0) hTimeDiff[i]->Fill((time1[i] - time1[1]));
	      if(ncont>2) {	timecorr = time[i] - shift;
		hTimecorr[i]->Fill(timecorr);
		hAmpTime[i]->Fill(amp[i],timecorr);
	      }
	    }
	    
	    
	    if(i>11) {
	      if(time[12] >0)  hTimeDiff[i]->Fill((time1[i]- time1[12]));
	      if(ncont>2) {	timecorr = time[i] + shift;
		hTimecorr[i]->Fill(timecorr); 
		hAmpTime[i]->Fill(amp[i],timecorr);
	      }
	    } 
	    //	      cout<<ievent<<" "<<i<<" "<<<endl;
	   }
	} 
      	
	for (Int_t ipmt=0; ipmt<12; ipmt++){
	  
	    if( time1[ipmt]>1 && time1[ipmt] < besttimeC ){
	      besttimeC=time1[ipmt]; //timeC
	      
	  }
	}
	for ( Int_t ipmt=12; ipmt<23; ipmt++){
	    if( time1[ipmt]>1 && time1[ipmt]<besttimeA ) {
	      besttimeA=time1[ipmt]; //timeA
	  }
	}
	if(besttimeA<9999999 ) {
	  fOrA=0.001*besttimeA * channelWidth - fLatencyHPTDC +  fLatencyL1A +0.001*shift*channelWidth;
	  hOrAcalc->Fill(fOrA);
	  //	  cout<<ievent<<" calc OrA "<<fOrA<<endl;
	}
	if( besttimeC < 9999999 ) {
	  fOrC=0.001*besttimeC * channelWidth - fLatencyHPTDC +fLatencyL1C -0.001*shift*channelWidth;
	  hOrCcalc->Fill(fOrC);
	  //	  cout<<ievent<<" calc OrC "<<fOrC<<endl;
	}
	if(besttimeA <9999999 && besttimeC < 9999999 ) 
	  {
	    Double_t meanCalc= 0.001*channelWidth * Float_t( besttimeA+besttimeC)/2.- fLatencyHPTDC + fLatencyL1;
	    hMeanTOFcalc->Fill(meanCalc ); 
	    hVertexT0calc->Fill((fOrA-fOrC)/2.);
	    Float_t  timeDiff = ( besttimeA - besttimeC)* 0.001* channelWidth + fLatencyL1A - fLatencyL1C;
	 Float_t vertexcal =   - 1000*c*(timeDiff)/2. ; //+ (fdZonA - fdZonC)/2; 

	    hVertexcalc->Fill(vertexcal);


	    //	    cout<<ievent<<" calc meanTOF "<<meanCalc<<endl;
	  }
	
      }
      
    } 
    TFile* Hfile = new TFile(Form("FigESD_%i.noeq.root",run),"RECREATE","Histograms for T0 digits");
  printf("Writting histograms to root file \n");
  Hfile->cd();
  //Create a canvas, set the view range, show histograms
  //  
  Float_t differ;
  hMean->Write();
  hMeanTOF->Write();
  hMeanTOFcalc->Write();
  hVertex->Write();
  hVertexT0->Write();
  hVertexT0calc->Write();
  hVertexSPD->Write();
  hVertexComp->Write();
  hVertexT0only->Write();
  hOrC->Write();
  hOrA->Write();
  hOrCcalc->Write();
  hOrAcalc->Write();
  hVertexSPDT0->Write();
  hVertexcalc->Write();
  for (Int_t i=0; i<24; i++){ 
    hAmp[i]->Write();
    hTime[i]->Write();
     TFitResultPtr r = hTimeDiff[i]->Fit("gaus","SQ");
      Double_t par0;
       if ((Int_t)r == 0) par0 = r->Parameters()[1];
       else par0 = 99999;
    hTimeDiff[i]->Write();
    cout<<Int_t(par0)<<", ";
      //      cout<<Int_t(hTimeDiff[i]->GetMean())<<" fit  "<<par0<<endl;
      //  cout<<Int_t(hTimeDiff[i]->GetMean())<<" , ";
    hAmpTime[i]->Write();
   hTimecorr[i]->Write();
  }
  cout<<endl;
 for (Int_t i=1; i<24; i++)  cout<<i<<" ,";
  cout<<endl;
  for (Int_t i=1; i<24; i++)  cout<<Int_t(hTimeDiff[i]->GetMean())<<" ,";
  cout<<endl;

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