ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)

#include <Riostream.h>     

#include <TSystem.h>
#include <TCanvas.h>
#include <TStyle.h>
#include <TH2F.h>
#include <TH1F.h>
#include <TH1I.h>

#include "AliHMPIDDigit.h"
#include "AliHMPIDRawStream.h"

#endif



TH2F hgPedMapMean[14][6]; 
TH2F hgPedMapSigma[14][6];
TH1F hgPedMapMean1D[14][6]; 
TH1F hgPedMapSigma1D[14][6]; 
TH1F hgPedMapSigma1Db[14][6]; 


TH1I hgDdlErr[14];
TH1I *hgtmp,*hgtmp2;


Int_t fgRunNum;
TFile *fgin[14];
TFile *fgout=0x0;

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      
void Convert(Int_t ddl,Int_t r,Int_t d,Int_t a,Int_t &ch, Int_t &pc, Int_t &px, Int_t &py)
{
  Int_t a2y[6]={3,2,4,1,5,0};//pady for a given address (for single DILOGIC chip)
  
  Int_t ch=ddl/2;
  Int_t tmp=(24-r)/8;              Int_t pc=(ddl%2)? 5-2*tmp:2*tmp; 
  Int_t px=dil*8-pad/6-1;  //flip according to Paolo (26-3-2008)
        tmp=(ddl%2)?r-1:(24-r);   Int_t py=6*(tmp%8)+a2y[a%6];
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void PlotPedHisto(Char_t *tag,Int_t runNum, Int_t ddl=0,Int_t row=1,Int_t dil=1,Int_t pad=0)
{
 
  if( 0<=ddl && ddl<=13 && 1<=dil && dil<=10 && 1<=row && row<=24 && 0<=pad && pad<=47) 
  { 
 
  fgin[ddl]->cd();
  
  hgtmp=(TH1I*)(fgin[ddl]->Get(Form("hDDL_%d_Row_%d_Dil_%d_Pad_%d",ddl,row,dil,pad)))->Clone();
  hgtmp2=(TH1I*)(fgin[ddl]->Get(Form("hDDL_%d_Row_%d_Dil_%d_Pad_%d",ddl,row,dil,pad)))->Clone();
  
  TCanvas *c1=new TCanvas(Form("hDDL%s_%d_Row_%d_Dil_%d_Pad_%d",tag,ddl,row,dil,pad),Form("hDDL%s_%d_Row_%d_Dil_%d_Pad_%d",tag,ddl,row,dil,pad));
  
  hgtmp->SetXTitle("ADC");
  hgtmp->SetYTitle("Entries");
  hgtmp->Draw();
  hgtmp->SetAxisRange(0,350);
  hgtmp->Draw("hist same");
  hgtmp2->SetFillColor(5);
  hgtmp2->Draw("hist same");
  hgtmp->Draw("same");
  
  c1->SaveAs(Form("hDDL%s_%d_Row_%d_Dil_%d_Pad_%d.eps",tag,ddl,row,dil,pad));
  c1->SaveAs(Form("hDDL%s_%d_Row_%d_Dil_%d_Pad_%d.gif",tag,ddl,row,dil,pad));
  
  if(fgout!=0x0) 
  {
    fgout->cd();
    hgtmp2->Write();  
  }
  
  hgtmp->Reset();
  hgtmp2->Reset();
  
  }
  else 
  {
   if( ddl < 0 || ddl > 13) {Printf("Not a valid DDL, exiting %d ...",ddl); } 
   if( dil < 1 || dil > 10) {Printf("Not a valid DIL, exiting %d ...",dil); } 
   if( row < 1 || row > 24) {Printf("Not a valid ROW, exiting %d ...",row); } 
   if( pad < 0 || pad > 48) {Printf("Not a valid PAD, exiting %d ...",pad); } 
  }   
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void PlotHisto1D(TH1& hin,Char_t* name)
{
  TCanvas *c1=new TCanvas("c1","c1");
  hin.Draw();
  c1->SaveAs(Form("%s.eps",name));
  c1->SaveAs(Form("%s.gif",name));  
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void PlotHisto2D(TH2 &hin,Char_t* name,Char_t* opt)
{
 TCanvas *c1=new TCanvas("c1","c1");
 hin.Draw(opt);
 c1->SaveAs(Form("%s.eps",name));
 c1->SaveAs(Form("%s.gif",name));  
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void ProcPed(Int_t nDDL,Int_t mode)
{

    if(gSystem->IsFileInIncludePath(Form("./HmpidPedDdl%02i.txt",nDDL)))
          ifstream infile(Form("./HmpidPedDdl%02i.txt",nDDL));
    else return;
    if(mode==1) {
    for(Int_t ni=0;ni<6;ni++)
      {
        hgPedMapMean[nDDL][ni]  = new TH2F(Form("hPedMapMean_DDL%d_PC_%d" ,nDDL,ni),         Form("Pedestal: Mean, DDL(0-13): %d PC(0-5): %d;padx;pady" ,nDDL,ni),80,0,80,48,0,48);
        hgPedMapSigma[nDDL][ni] = new TH2F(Form("hPedMapSigma_DDL%d_PC_%d",nDDL,ni),         Form("Pedestal: Sigma, DDL(0-13): %d PC(0-5): %d;padx;pady",nDDL,ni),80,0,80,48,0,48);
        hgPedMapMean1D[nDDL][ni]  = new TH1F(Form("hPedMapMean1D_DDL%d_PC_%d" ,nDDL,ni),     Form("Pedestal: Mean, DDL(0-13): %d PC(0-5): %d;pad;Mean" ,nDDL,ni),3841,-0.5,3840.5);
        hgPedMapSigma1D[nDDL][ni]  = new TH1F(Form("hPedMapSigma1D_DDL%d_PC_%d" ,nDDL,ni),   Form("Pedestal: Sigma, DDL(0-13): %d PC(0-5): %d;pad;Sigma" ,nDDL,ni),3841,-0.5,3840.5);
        hgPedMapSigma1Db[nDDL][ni]  = new TH1F(Form("hPedMapSigma1Db_DDL%d_PC_%d" ,nDDL,ni), Form("Pedestal: Sigma, DDL(0-13): %d PC(0-5): %d;pad;Sigma" ,nDDL,ni),3841,-0.5,3840.5);
        hgPedMapSigma1Db[nDDL][ni]->SetMaximum(2.5);
        }
      }
    Int_t nSigCut,r,d,a,hard;  Float_t mean,sigma;
    Int_t ch=0,pc=0,px=0,py=0;
    Int_t cnt=0;
    Int_t runNumber=-99999;
    Char_t tName[10];
    Int_t  ldcId;
    Int_t  timeStamp;
    Int_t  nEv,nDdlEv;
    Int_t nBadEv;Float_t nBadEvPer;
    Printf("Start reading DDL: %d ...",nDDL);  
    infile>>tName>>runNumber;fgRunNum=runNumber;
    infile>>tName>>ldcId;
    infile>>tName>>timeStamp;
    infile>>tName>>nEv;  
    infile>>tName>>nDdlEv;  
    infile>>tName>>nBadEv;
    infile>>tName>>nBadEvPer;
    infile>>tName>>nSigCut;
    
    Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",fgRunNum,ldcId,timeStamp,nEv);
    
    while(!infile.eof()){
      infile>>dec>>r>>d>>a>>mean>>sigma>>hex>>hard;
      switch(mode)
      {
      case 1:
        Convert(nDDL,r,d,a,ch,pc,px,py); 
        hgPedMapMean[nDDL][pc].Fill(px,py,mean);  
        hgPedMapSigma[nDDL][pc].Fill(px,py,sigma);
        hgPedMapMean1D[nDDL][pc].Fill(cnt%3840,mean);
        hgPedMapSigma1D[nDDL][pc].Fill(cnt%3840,sigma);
        hgPedMapSigma1Db[nDDL][pc].Fill(cnt%3840,sigma);
      break;
      case 2:
        if(sigma>3 && sigma!=1000)  PlotPedHisto("Sigma",runNumber,nDDL,r,d,a);    
      break;
      case 3:
        if(sigma==1000)  PlotPedHisto("NoEntry",runNumber,nDDL,r,d,a);    
      break;
      
      }
        
      cnt++;      
    }
  infile.close();
  Printf("Stop reading DDL: %d ...",nDDL);
  
  /* fill the overall histos */
  
  if(mode==1) 
  {
    for(Int_t npc=0;npc<6;npc++) 
      {
          /* plot pedestal mean values */
         if(hgPedMapMean[nDDL][npc].GetEntries()!=0) {
           hgPedMapMean[nDDL][npc].SetStats(0);
           PlotHisto2D(hgPedMapMean[nDDL][npc],Form("Run%d_PedMeanA_DDL%d_PC%d",fgRunNum,nDDL,npc),"colz");
           PlotHisto2D(hgPedMapMean[nDDL][npc],Form("Run%d_PedMeanB_DDL%d_PC%d",fgRunNum,nDDL,npc),"surf1");
         }
         /* plot pedestal sigma values */
         if(hgPedMapSigma[nDDL][npc].GetEntries()!=0) {
           hgPedMapSigma[nDDL][npc].SetStats(0);
           PlotHisto2D(hgPedMapSigma[nDDL][npc],Form("Run%d_PedSigmaA_DDL%d_PC%d",fgRunNum,nDDL,npc),"colz");
           PlotHisto2D(hgPedMapSigma[nDDL][npc],Form("Run%d_PedSigmaB_DDL%d_PC%d",fgRunNum,nDDL,npc),"surf1");
         }
         /* plot pedestal sigma values */
         if(hgPedMapSigma[nDDL][npc].GetEntries()!=0) {
           hgPedMapSigma[nDDL][npc].SetStats(0);
           hgPedMapSigma[nDDL][npc].SetMaximum(2.5);
           PlotHisto2D(hgPedMapSigma[nDDL][npc],Form("Run%d_PedSigmaC_DDL%d_PC%d",fgRunNum,nDDL,npc),"colz");
           PlotHisto2D(hgPedMapSigma[nDDL][npc],Form("Run%d_PedSigmaD_DDL%d_PC%d",fgRunNum,nDDL,npc),"surf1");
         }
         /* plot pedestal mean values */
         if(hgPedMapMean1D[nDDL][npc].GetEntries()!=0) {
            hgPedMapMean1D[nDDL][npc].SetStats(0);
           PlotHisto1D(hgPedMapMean1D[nDDL][npc],Form("Run%d_PedMean1DA_DDL%d_PC%d",fgRunNum,nDDL,npc));
         }
         /* plot pedestal sigma values */
         if(hgPedMapSigma1D[nDDL][npc].GetEntries()!=0) {
           hgPedMapSigma1D[nDDL][npc].SetStats(0);
           PlotHisto1D(hgPedMapSigma1D[nDDL][npc],Form("Run%d_PedSigma1DA_DDL%d_PC%d",fgRunNum,nDDL,npc));
         }
         /* plot pedestal sigma values */
         if(hgPedMapSigma1Db[nDDL][npc].GetEntries()!=0) {
           hgPedMapSigma1Db[nDDL][npc].SetStats(0);
           PlotHisto1D(hgPedMapSigma1D[nDDL][npc],Form("Run%d_PedSigma1DA_DDL%d_PC%d",fgRunNum,nDDL,npc));
         }       
      }  
  }
  
       
}//ProcPed()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      
void ProcErr(Int_t nDDL,Int_t mode)
{
  if(gSystem->IsFileInIncludePath(Form("./HmpidErrorsDdl%02i.txt",nDDL)))
          ifstream infile(Form("./HmpidErrorsDdl%02i.txt",nDDL));
    else return;
    if(mode==1)
    {
    hgDdlErr[nDDL] = new TH1I(Form("hPedErr_DDL%d",nDDL),Form("DDL(%d) Decoding Errors",nDDL),AliHMPIDRawStream::kSumErr+1,-0.5,AliHMPIDRawStream::kSumErr+0.5);
     for(Int_t ilabel=0; ilabel< AliHMPIDRawStream::kSumErr; ilabel++) {
      hgDdlErr[nDDL].SetStats(0);
      hgDdlErr[nDDL].GetXaxis()->CenterLabels(kTRUE);
      hgDdlErr[nDDL].GetXaxis()->SetBinLabel((ilabel+1),Form("%i  %s",ilabel+1,AliHMPIDRawStream::GetErrName(ilabel)));
      hgDdlErr[nDDL].SetYTitle("Error #");
     }
    hgDdlErr[nDDL].SetFillColor(5);
  }  
    
    Int_t runNumber=-99999;
    Char_t tName[10];
    Int_t  ldcId;
    Int_t  timeStamp;
    Int_t  nEv,nDdlEv;
    Int_t rerr;Int_t nBadEv;Float_t nBadEvPer;
    Int_t row,dil,pad,nzero;
    Int_t ch,pc,px,py;
    Printf("Start reading Error File DDL: %d ...",nDDL);  
    infile>>tName>>runNumber;fgRunNum=runNumber;
    infile>>tName>>ldcId;
    infile>>tName>>timeStamp;
    infile>>tName>>nEv;
    infile>>tName>>nDdlEv;
    infile>>tName>>nBadEv;
    infile>>tName>>nBadEvPer;
    Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",runNumber,ldcId,timeStamp,nEv);
    for(Int_t ierr=0;ierr<AliHMPIDRawStream::kSumErr;ierr++)
    {
       infile>>rerr;hgDdlErr[nDDL].SetBinContent(ierr+1,rerr);
     }
    
    switch(mode)
    {
      case 1:          
          TCanvas *cerr = new TCanvas("cped","cped");
          cerr.cd();
          hgDdlErr[nDDL]->Draw();
          cerr->SaveAs(Form("PedError_DDL%d.eps",nDDL)); 
          cerr->SaveAs(Form("PedError_DDL%d.gif",nDDL)); 
    
        break;
        
      case 2:
        while(!infile.eof()){
        infile>>dec>>row>>dil>>pad>>nzero; 
        if( 0<=nDDL && nDDL<=13 && 1<=dil && dil<=10 && 1<=row && row<=24 && 0<=pad && pad<=47) 
          { 
           PlotPedHisto("ZeroQ",runNumber,nDDL,row,dil,pad);
         }
       } 
        
    break;
      
    default:
        break;  
    }
   infile.close();     
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      
void HplotDA(Int_t runNumber)
{
  gStyle->SetPalette(1);
  fgRunNum=runNumber;
  
  Printf("********************************************************************");
  Printf("********************** HplotDA *************************************");
  Printf("***                                                              ***");
  Printf("*** Choose from the following options:                           ***");
  Printf("***                                                              ***");
  Printf("*** 1.) Draw errors for all DDL                                  ***");
  Printf("*** 2.) Draw pedestals for all DDL                               ***");
  Printf("*** 3.) Draw ADC histo for pads with sigma > 3                   ***");
  Printf("*** 4.) Draw ADC histo for pads with zero charge                 ***");
  Printf("*** 5.) Draw ADC histo for pads with no valid charge             ***");
  Printf("*** 6.) Run all                                                  ***");
  Printf("***                                                              ***");
  Printf("********************************************************************");
  Printf("*** Please select: ");
  
  Int_t set=0;
  cin>>set;
  
  
 for(Int_t i=0;i<14;i++) 
    {
    switch(set){
  
    case 1:  
     ProcErr(i,1);
     break;
     case 2:
      ProcPed(i,1);  
     break;
     case 3:
       fgin[i]=new TFile(Form("Run%d_DDL%d.root",runNumber,i),"read");
       ProcPed(i,2);  
       fgin[i]->Close();
       break;
     case 4:
       fgin[i]=new TFile(Form("Run%d_DDL%d.root",runNumber,i),"read");
       ProcErr(i,2);
       fgin[i]->Close();
     break;  
     case 5:
       fgin[i]=new TFile(Form("Run%d_DDL%d.root",runNumber,i),"read");
       ProcPed(i,3);  
       fgin[i]->Close();
     break; 
     case 6:
      if(i==0) fgout=new TFile(Form("SummaryOfRun%d.root",fgRunNum),"recreate");
  
      ProcErr(i,1);
      ProcPed(i,1);
      fgin[i]=new TFile(Form("Run%d_DDL%d.root",runNumber,i),"read");
      ProcPed(i,2);  
      ProcErr(i,2);
      ProcPed(i,3);  
      fgin[i]->Close(); 
       
      if(i==13) {
        
        for(Int_t ipc=0;ipc<6;ipc++) 
        {
          hgPedMapMean[i][ipc].Write(); 
          hgPedMapSigma[i][ipc].Write(); 
          hgPedMapMean1D[i][ipc].Write(); 
          hgPedMapSigma1D[i][ipc].Write(); 
          hgPedMapSigma1Db[i][ipc].Write(); 
        }
        hgDdlErr[i].Write();
      }
     break;
     default:
         Printf("Not a valid selection bye-bye....");
     break;
    }
  }
 
  if(fgout!=0x0)fgout->Close();    
  
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++      
 HplotDA.C:1
 HplotDA.C:2
 HplotDA.C:3
 HplotDA.C:4
 HplotDA.C:5
 HplotDA.C:6
 HplotDA.C:7
 HplotDA.C:8
 HplotDA.C:9
 HplotDA.C:10
 HplotDA.C:11
 HplotDA.C:12
 HplotDA.C:13
 HplotDA.C:14
 HplotDA.C:15
 HplotDA.C:16
 HplotDA.C:17
 HplotDA.C:18
 HplotDA.C:19
 HplotDA.C:20
 HplotDA.C:21
 HplotDA.C:22
 HplotDA.C:23
 HplotDA.C:24
 HplotDA.C:25
 HplotDA.C:26
 HplotDA.C:27
 HplotDA.C:28
 HplotDA.C:29
 HplotDA.C:30
 HplotDA.C:31
 HplotDA.C:32
 HplotDA.C:33
 HplotDA.C:34
 HplotDA.C:35
 HplotDA.C:36
 HplotDA.C:37
 HplotDA.C:38
 HplotDA.C:39
 HplotDA.C:40
 HplotDA.C:41
 HplotDA.C:42
 HplotDA.C:43
 HplotDA.C:44
 HplotDA.C:45
 HplotDA.C:46
 HplotDA.C:47
 HplotDA.C:48
 HplotDA.C:49
 HplotDA.C:50
 HplotDA.C:51
 HplotDA.C:52
 HplotDA.C:53
 HplotDA.C:54
 HplotDA.C:55
 HplotDA.C:56
 HplotDA.C:57
 HplotDA.C:58
 HplotDA.C:59
 HplotDA.C:60
 HplotDA.C:61
 HplotDA.C:62
 HplotDA.C:63
 HplotDA.C:64
 HplotDA.C:65
 HplotDA.C:66
 HplotDA.C:67
 HplotDA.C:68
 HplotDA.C:69
 HplotDA.C:70
 HplotDA.C:71
 HplotDA.C:72
 HplotDA.C:73
 HplotDA.C:74
 HplotDA.C:75
 HplotDA.C:76
 HplotDA.C:77
 HplotDA.C:78
 HplotDA.C:79
 HplotDA.C:80
 HplotDA.C:81
 HplotDA.C:82
 HplotDA.C:83
 HplotDA.C:84
 HplotDA.C:85
 HplotDA.C:86
 HplotDA.C:87
 HplotDA.C:88
 HplotDA.C:89
 HplotDA.C:90
 HplotDA.C:91
 HplotDA.C:92
 HplotDA.C:93
 HplotDA.C:94
 HplotDA.C:95
 HplotDA.C:96
 HplotDA.C:97
 HplotDA.C:98
 HplotDA.C:99
 HplotDA.C:100
 HplotDA.C:101
 HplotDA.C:102
 HplotDA.C:103
 HplotDA.C:104
 HplotDA.C:105
 HplotDA.C:106
 HplotDA.C:107
 HplotDA.C:108
 HplotDA.C:109
 HplotDA.C:110
 HplotDA.C:111
 HplotDA.C:112
 HplotDA.C:113
 HplotDA.C:114
 HplotDA.C:115
 HplotDA.C:116
 HplotDA.C:117
 HplotDA.C:118
 HplotDA.C:119
 HplotDA.C:120
 HplotDA.C:121
 HplotDA.C:122
 HplotDA.C:123
 HplotDA.C:124
 HplotDA.C:125
 HplotDA.C:126
 HplotDA.C:127
 HplotDA.C:128
 HplotDA.C:129
 HplotDA.C:130
 HplotDA.C:131
 HplotDA.C:132
 HplotDA.C:133
 HplotDA.C:134
 HplotDA.C:135
 HplotDA.C:136
 HplotDA.C:137
 HplotDA.C:138
 HplotDA.C:139
 HplotDA.C:140
 HplotDA.C:141
 HplotDA.C:142
 HplotDA.C:143
 HplotDA.C:144
 HplotDA.C:145
 HplotDA.C:146
 HplotDA.C:147
 HplotDA.C:148
 HplotDA.C:149
 HplotDA.C:150
 HplotDA.C:151
 HplotDA.C:152
 HplotDA.C:153
 HplotDA.C:154
 HplotDA.C:155
 HplotDA.C:156
 HplotDA.C:157
 HplotDA.C:158
 HplotDA.C:159
 HplotDA.C:160
 HplotDA.C:161
 HplotDA.C:162
 HplotDA.C:163
 HplotDA.C:164
 HplotDA.C:165
 HplotDA.C:166
 HplotDA.C:167
 HplotDA.C:168
 HplotDA.C:169
 HplotDA.C:170
 HplotDA.C:171
 HplotDA.C:172
 HplotDA.C:173
 HplotDA.C:174
 HplotDA.C:175
 HplotDA.C:176
 HplotDA.C:177
 HplotDA.C:178
 HplotDA.C:179
 HplotDA.C:180
 HplotDA.C:181
 HplotDA.C:182
 HplotDA.C:183
 HplotDA.C:184
 HplotDA.C:185
 HplotDA.C:186
 HplotDA.C:187
 HplotDA.C:188
 HplotDA.C:189
 HplotDA.C:190
 HplotDA.C:191
 HplotDA.C:192
 HplotDA.C:193
 HplotDA.C:194
 HplotDA.C:195
 HplotDA.C:196
 HplotDA.C:197
 HplotDA.C:198
 HplotDA.C:199
 HplotDA.C:200
 HplotDA.C:201
 HplotDA.C:202
 HplotDA.C:203
 HplotDA.C:204
 HplotDA.C:205
 HplotDA.C:206
 HplotDA.C:207
 HplotDA.C:208
 HplotDA.C:209
 HplotDA.C:210
 HplotDA.C:211
 HplotDA.C:212
 HplotDA.C:213
 HplotDA.C:214
 HplotDA.C:215
 HplotDA.C:216
 HplotDA.C:217
 HplotDA.C:218
 HplotDA.C:219
 HplotDA.C:220
 HplotDA.C:221
 HplotDA.C:222
 HplotDA.C:223
 HplotDA.C:224
 HplotDA.C:225
 HplotDA.C:226
 HplotDA.C:227
 HplotDA.C:228
 HplotDA.C:229
 HplotDA.C:230
 HplotDA.C:231
 HplotDA.C:232
 HplotDA.C:233
 HplotDA.C:234
 HplotDA.C:235
 HplotDA.C:236
 HplotDA.C:237
 HplotDA.C:238
 HplotDA.C:239
 HplotDA.C:240
 HplotDA.C:241
 HplotDA.C:242
 HplotDA.C:243
 HplotDA.C:244
 HplotDA.C:245
 HplotDA.C:246
 HplotDA.C:247
 HplotDA.C:248
 HplotDA.C:249
 HplotDA.C:250
 HplotDA.C:251
 HplotDA.C:252
 HplotDA.C:253
 HplotDA.C:254
 HplotDA.C:255
 HplotDA.C:256
 HplotDA.C:257
 HplotDA.C:258
 HplotDA.C:259
 HplotDA.C:260
 HplotDA.C:261
 HplotDA.C:262
 HplotDA.C:263
 HplotDA.C:264
 HplotDA.C:265
 HplotDA.C:266
 HplotDA.C:267
 HplotDA.C:268
 HplotDA.C:269
 HplotDA.C:270
 HplotDA.C:271
 HplotDA.C:272
 HplotDA.C:273
 HplotDA.C:274
 HplotDA.C:275
 HplotDA.C:276
 HplotDA.C:277
 HplotDA.C:278
 HplotDA.C:279
 HplotDA.C:280
 HplotDA.C:281
 HplotDA.C:282
 HplotDA.C:283
 HplotDA.C:284
 HplotDA.C:285
 HplotDA.C:286
 HplotDA.C:287
 HplotDA.C:288
 HplotDA.C:289
 HplotDA.C:290
 HplotDA.C:291
 HplotDA.C:292
 HplotDA.C:293
 HplotDA.C:294
 HplotDA.C:295
 HplotDA.C:296
 HplotDA.C:297
 HplotDA.C:298
 HplotDA.C:299
 HplotDA.C:300
 HplotDA.C:301
 HplotDA.C:302
 HplotDA.C:303
 HplotDA.C:304
 HplotDA.C:305
 HplotDA.C:306
 HplotDA.C:307
 HplotDA.C:308
 HplotDA.C:309
 HplotDA.C:310
 HplotDA.C:311
 HplotDA.C:312
 HplotDA.C:313
 HplotDA.C:314
 HplotDA.C:315
 HplotDA.C:316
 HplotDA.C:317
 HplotDA.C:318
 HplotDA.C:319
 HplotDA.C:320
 HplotDA.C:321
 HplotDA.C:322
 HplotDA.C:323
 HplotDA.C:324
 HplotDA.C:325
 HplotDA.C:326
 HplotDA.C:327
 HplotDA.C:328
 HplotDA.C:329
 HplotDA.C:330
 HplotDA.C:331
 HplotDA.C:332
 HplotDA.C:333
 HplotDA.C:334
 HplotDA.C:335
 HplotDA.C:336
 HplotDA.C:337
 HplotDA.C:338
 HplotDA.C:339
 HplotDA.C:340
 HplotDA.C:341
 HplotDA.C:342
 HplotDA.C:343
 HplotDA.C:344
 HplotDA.C:345
 HplotDA.C:346
 HplotDA.C:347
 HplotDA.C:348
 HplotDA.C:349
 HplotDA.C:350
 HplotDA.C:351
 HplotDA.C:352
 HplotDA.C:353
 HplotDA.C:354
 HplotDA.C:355
 HplotDA.C:356
 HplotDA.C:357
 HplotDA.C:358
 HplotDA.C:359
 HplotDA.C:360
 HplotDA.C:361
 HplotDA.C:362
 HplotDA.C:363
 HplotDA.C:364
 HplotDA.C:365