ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TH2F.h>
#include <TCanvas.h>
#include <TStopwatch.h>
#include <TStyle.h>
#include <TGrid.h>
#include <TSystem.h>
#include <TLatex.h>
#include <TFile.h>
#include "AliRawReader.h"
#include "AliRawReaderDate.h"
#include "AliRawReaderRoot.h"
#include "AliITSOnlineSDDBase.h"
#include "AliITSOnlineSDDCMN.h"
#include "AliITSRawStreamSDD.h"
#include "AliITSRawStreamSDDCompressed.h"
#include "TPaveStats.h"
#endif

// Macro for the analysis of PEDESTAL runs (equivalent to ITSSDDBASda.cxx)
// Two functions named AnalyzeSDDNoiseAllModules: 
// The first is for analyzing a local raw data file and takes as agrument the file name.
// The second is for running on ALIEN
// All DDLs are analyzed, the argument nDDL selects the DDL to be plotted
// Origin: F. Prino (prino@to.infn.it)

void AnalyzeSDDNoiseAllMod(Char_t *datafil, 
			   Int_t adcfreq=20, 
			   Int_t nDDL=0, 
			   Int_t firstEv=18, 
			   Int_t lastEv=20){ 


  const Int_t kTotDDL=24;
  const Int_t kModPerDDL=12;
  const Int_t kSides=2;
  Bool_t writtenoutput=kFALSE;

  AliITSOnlineSDDBase **base=new AliITSOnlineSDDBase*[kTotDDL*kModPerDDL*kSides];
  TH2F **histo=new TH2F*[kTotDDL*kModPerDDL*kSides];

  Char_t hisnam[20];
  for(Int_t iddl=0; iddl<kTotDDL;iddl++){
    for(Int_t imod=0; imod<kModPerDDL;imod++){
      for(Int_t isid=0;isid<kSides;isid++){
	Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	base[index]=new AliITSOnlineSDDBase(iddl,imod,isid);	
	if(adcfreq==40) base[index]->SetLastGoodTB(254);
	else base[index]->SetLastGoodTB(126);
	sprintf(hisnam,"h%02dc%02ds%d",iddl,imod,isid);
	histo[index]=new TH2F(hisnam,"",256,-0.5,255.5,256,-0.5,255.5);
      }
    }
  }


  TCanvas* c0 = new TCanvas("c0","Ev Display",900,900);
  gStyle->SetPalette(1);
  Char_t text[50];

  Int_t iev=firstEv;
  AliRawReader *rd; 
  if(strstr(datafil,".root")!=0){
    rd=new AliRawReaderRoot(datafil,iev);
  }else{
    rd=new AliRawReaderDate(datafil,iev);
  }
  TLatex *t0=new TLatex();
  t0->SetNDC();
  t0->SetTextSize(0.06);
  t0->SetTextColor(4);

  do{
    c0->Clear();
    c0->Divide(4,6,0.001,0.001);
    printf("Event # %d ",iev);
    rd->Reset();
    for(Int_t iddl=0; iddl<kTotDDL;iddl++){
      for(Int_t imod=0; imod<kModPerDDL;imod++){
	for(Int_t isid=0;isid<kSides;isid++){
	  Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	  histo[index]->Reset();
	}
      }
    }

    UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd);
    UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
    AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd,cdhAttr);
    if(!writtenoutput){
      printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
      writtenoutput=kTRUE;
    }

    while(s->Next()){
      Int_t iDDL=rd->GetDDLID();
      Int_t iCarlos=s->GetCarlosId();
      if(s->IsCompletedModule()) continue;
      if(s->IsCompletedDDL()) continue;
      if(iDDL>=0 && iDDL<kTotDDL){ 
	Int_t index=kSides*(kModPerDDL*iDDL+iCarlos)+s->GetChannel(); 
	histo[index]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
      }
    }
    delete s;
    iev++;
    for(Int_t iddl=0; iddl<kTotDDL;iddl++){
      for(Int_t imod=0; imod<kModPerDDL;imod++){
	for(Int_t isid=0;isid<kSides;isid++){
	  Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	  base[index]->AddEvent(histo[index]);
	  if(iddl==nDDL){
	    Int_t index2=kSides*imod+isid;
	    c0->cd(index2+1);
	    histo[index]->DrawCopy("colz");
	    sprintf(text,"DDL %d channel %d Side %d",nDDL,imod,isid);
	    t0->DrawLatex(0.15,0.92,text);
	    c0->Update();
	  }
	}
      }
    }
    printf(" --- OK\n");
  }while(rd->NextEvent()&&iev<=lastEv);

  for(Int_t iddl=0; iddl<kTotDDL;iddl++){
    for(Int_t imod=0; imod<kModPerDDL;imod++){
      for(Int_t isid=0;isid<kSides;isid++){
	Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	base[index]->ValidateAnodes();
	base[index]->WriteToASCII(); // fondamentale!!!!!!!!!
	delete base[index];
      }
    }
  }
  delete rd;
  delete [] base;
  
  printf("Start second analysis for Common Mode correction\n");
  AliITSOnlineSDDCMN **corr=new AliITSOnlineSDDCMN*[kTotDDL*kModPerDDL*kSides];
  Bool_t isFilled[kTotDDL*kModPerDDL*kSides];

  for(Int_t iddl=0; iddl<kTotDDL;iddl++){
    for(Int_t imod=0; imod<kModPerDDL;imod++){
      for(Int_t isid=0;isid<kSides;isid++){
	Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	corr[index]=new AliITSOnlineSDDCMN(iddl,imod,isid);
	if(adcfreq==40) corr[index]->SetLastGoodTB(254);
	else corr[index]->SetLastGoodTB(126);
	isFilled[index]=0;
      }
    }
  }

  iev=firstEv;
  AliRawReader *rd2; 
  if(strstr(datafil,".root")!=0){
    rd2=new AliRawReaderRoot(datafil,iev);
  }else{
    rd2=new AliRawReaderDate(datafil,iev);
  }
  do{
    c0->Clear();
    c0->Divide(4,6,0.001,0.001);
    printf("Event # %d ",iev);
    rd2->Reset();
    for(Int_t iddl=0; iddl<kTotDDL;iddl++){
      for(Int_t imod=0; imod<kModPerDDL;imod++){
	for(Int_t isid=0;isid<kSides;isid++){
	  Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	  histo[index]->Reset();
	}
      }
    }
    
    UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd2);
    UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
    AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd2,cdhAttr);
    if(!writtenoutput){
      printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
      writtenoutput=kTRUE;
    }
    while(s->Next()){
      Int_t iDDL=rd2->GetDDLID();
      Int_t iCarlos=s->GetCarlosId();
      if(s->IsCompletedModule()) continue;
      if(s->IsCompletedDDL()) continue;
      if(iDDL>=0 && iDDL<kTotDDL){ 
	Int_t index=kSides*(kModPerDDL*iDDL+iCarlos)+s->GetChannel(); 
	histo[index]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
	isFilled[index]=1;
      }
    }
    delete s;
    iev++;
    for(Int_t iddl=0; iddl<kTotDDL;iddl++){
      for(Int_t imod=0; imod<kModPerDDL;imod++){
	for(Int_t isid=0;isid<kSides;isid++){
	  Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	  if(isFilled[index]) corr[index]->AddEvent(histo[index]);
	  if(iddl==nDDL){
	    Int_t index2=kSides*imod+isid;
	    c0->cd(index2+1);
	    histo[index]->DrawCopy("colz");
	    sprintf(text,"DDL %d channel %d Side %d",nDDL,imod,isid);
	    t0->DrawLatex(0.15,0.92,text);
	    c0->Update();
	  }
	}
      }
    }
    printf(" --- OK\n");
  }while(rd2->NextEvent()&&iev<=lastEv);

  TH1F *htotbas=new TH1F("htotbas","",100,0.,150.);
  TH1F *htotbaseq=new TH1F("htotbaseq","",100,0.,150.);
  TH1F *htotnoise=new TH1F("htotnoise","",100,0.,10.);
  TH1F *htotnoisecorr=new TH1F("htotnoisecorr","",100,0.,10.);
  TH1F *hstatus=new TH1F("hstatus","",2,-0.5,1.5);

  TFile *outfil=new TFile("SDDbase-results.root","recreate");
  for(Int_t iddl=0; iddl<kTotDDL;iddl++){
    for(Int_t imod=0; imod<kModPerDDL;imod++){
      for(Int_t isid=0;isid<kSides;isid++){
	Int_t index=kSides*(kModPerDDL*iddl+imod)+isid;
	if(isFilled[index]){
	  corr[index]->ValidateAnodes();
	  corr[index]->WriteToASCII();
	  corr[index]->WriteToROOT(outfil);
	  for(Int_t ian=0; ian<256;ian++){
	    Float_t basl=corr[index]->GetAnodeBaseline(ian);
	    Float_t basleq=corr[index]->GetAnodeEqualizedBaseline(ian);
	    Float_t noi=corr[index]->GetAnodeRawNoise(ian);
	    Float_t cornoi=corr[index]->GetAnodeCorrNoise(ian);
	    Int_t anstatus=corr[index]->IsAnodeGood(ian);
	    hstatus->Fill(anstatus);
	    htotbas->Fill(basl);
	    htotbaseq->Fill(basleq);
	    htotnoise->Fill(noi);
	    htotnoisecorr->Fill(cornoi);
	  }
	}
      }
    }
  }
  outfil->Close();
  // Draw Statistics of baselines and noise
  TCanvas *call=new TCanvas("call","General stats",700,700);
  call->Divide(2,2);
  call->cd(1);
  htotbas->Draw();
  htotbas->GetXaxis()->SetTitle("Baselines");
  htotbas->GetXaxis()->SetTitleSize(0.07);
  htotbas->GetXaxis()->SetTitleOffset(0.6);
  call->cd(2);
  htotbaseq->Draw();
  htotbaseq->GetXaxis()->SetTitle("Baselines after equalization");
  htotbaseq->GetXaxis()->SetTitleSize(0.07);
  htotbaseq->GetXaxis()->SetTitleOffset(0.6);
  call->cd(3);
  htotnoisecorr->SetLineColor(2);
  htotnoisecorr->Draw();
  call->Update();
  TPaveStats *st1=(TPaveStats*)htotnoisecorr->GetListOfFunctions()->FindObject("stats");
  st1->SetY1NDC(0.51);
  st1->SetY2NDC(0.7);
  htotnoisecorr->GetXaxis()->SetTitle("Noise");
  htotnoisecorr->GetXaxis()->SetTitleSize(0.07);
  htotnoisecorr->GetXaxis()->SetTitleOffset(0.6);
  htotnoise->Draw("SAMES");
  call->Update();
  TPaveStats *st2=(TPaveStats*)htotnoise->GetListOfFunctions()->FindObject("stats");
  st2->SetY1NDC(0.71);
  st2->SetY2NDC(0.9);
  
  call->cd(4);
  hstatus->Draw();
  hstatus->GetXaxis()->SetTitle("Anode Status (0=bad 1=good)");
  hstatus->GetXaxis()->SetTitleSize(0.07);
  hstatus->GetXaxis()->SetTitleOffset(0.6);
  call->Update();
  call->SaveAs("GenStatsPedestal.gif");

  // Draw baselines and noise for all modules of the selected DDL

  TH1F** hbas = new TH1F*[kSides*kModPerDDL];
  TH1F** hrawn = new TH1F*[kSides*kModPerDDL];
  TH1F** hcorrn = new TH1F*[kSides*kModPerDDL];
  TH1F** hdbas = new TH1F*[kSides*kModPerDDL];
  TH1F** hdrawn = new TH1F*[kSides*kModPerDDL];
  TH1F** hdcorrn = new TH1F*[kSides*kModPerDDL];
  TCanvas *c1=new TCanvas("c1","DDL: Baselines vs anode",900,900);
  c1->SetBottomMargin(0.14);
  c1->Divide(4,6,0.001,0.001);
  TCanvas *c2=new TCanvas("c2","DDL: Noise vs anode",900,900);
  c2->SetBottomMargin(0.14);
  c2->Divide(4,6,0.001,0.001);
  TCanvas *c3=new TCanvas("c3","DDL: Baselines distr",900,900);
  c3->SetBottomMargin(0.14);
  c3->Divide(4,6,0.001,0.001);
  TCanvas *c4=new TCanvas("c4","DDL: Noise Distr",900,900);
  c4->SetBottomMargin(0.14);
  c4->Divide(4,6,0.001,0.001);
  TLatex *t1=new TLatex(0.15,0.2,"Raw Noise");
  t1->SetNDC();
  t1->SetTextSize(0.05);
  TLatex *t2=new TLatex(0.4,0.2,"Corrected Noise");
  t2->SetNDC();
  t2->SetTextSize(0.05);
  t2->SetTextColor(2);
  TLatex *t3=new TLatex();
  t3->SetNDC();
  t3->SetTextSize(0.06);
  t3->SetTextColor(4);

  for(Int_t imod=0; imod<kModPerDDL;imod++){
    for(Int_t isid=0;isid<kSides;isid++){
      Int_t index1=kSides*(kModPerDDL*nDDL+imod)+isid;
      Int_t index2=kSides*imod+isid;
      sprintf(text,"DDL %d channel %d Side %d",nDDL,imod,isid);
      hbas[index2]=corr[index1]->GetBaselineAnodeHisto();
      hrawn[index2]=corr[index1]->GetRawNoiseAnodeHisto();
      hcorrn[index2]=corr[index1]->GetCorrNoiseAnodeHisto();
      hdbas[index2]=corr[index1]->GetBaselineHisto();
      hdrawn[index2]=corr[index1]->GetRawNoiseHisto();
      hdcorrn[index2]=corr[index1]->GetCorrNoiseHisto();
      c1->cd(index2+1);
      hbas[index2]->Draw();
      hbas[index2]->SetMinimum(0);
      hbas[index2]->SetMaximum(75);
      hbas[index2]->GetXaxis()->SetTitle("Anode");
      hbas[index2]->GetYaxis()->SetTitle("Baseline");
      hbas[index2]->GetXaxis()->SetTitleSize(0.07);
      hbas[index2]->GetYaxis()->SetTitleSize(0.07);
      hbas[index2]->GetXaxis()->SetTitleOffset(0.6);
      hbas[index2]->GetYaxis()->SetTitleOffset(0.7);
      t3->DrawLatex(0.15,0.92,text);
      c1->Update();


      c2->cd(index2+1); 
      hrawn[index2]->SetMinimum(1.);
      hrawn[index2]->SetMaximum(6.);
      hrawn[index2]->Draw();
      hrawn[index2]->GetXaxis()->SetTitle("Anode");
      hrawn[index2]->GetYaxis()->SetTitle("Noise");
      hrawn[index2]->GetXaxis()->SetTitleSize(0.07);
      hrawn[index2]->GetYaxis()->SetTitleSize(0.07);
      hrawn[index2]->GetXaxis()->SetTitleOffset(0.6);
      hrawn[index2]->GetYaxis()->SetTitleOffset(0.7);
      gStyle->SetOptStat(0);
      hrawn[index2]->SetStats(0);
      hcorrn[index2]->SetLineColor(2);
      hcorrn[index2]->Draw("SAME");
      t1->Draw();
      t2->Draw();
      t3->DrawLatex(0.15,0.92,text);
      c2->Update();

      c3->cd(index2+1);
      hdbas[index2]->Draw();
      hdbas[index2]->GetXaxis()->SetTitle("Baseline");
      hdbas[index2]->GetXaxis()->SetTitleSize(0.07);
      hdbas[index2]->GetXaxis()->SetTitleOffset(0.6);
      t3->DrawLatex(0.15,0.92,text);
      c3->Update();

      c4->cd(index2+1); 
      hdrawn[index2]->Draw();
      hdrawn[index2]->GetXaxis()->SetTitle("Noise");
      hdrawn[index2]->GetXaxis()->SetTitleSize(0.07);
      hdrawn[index2]->GetXaxis()->SetTitleOffset(0.6);
      hdcorrn[index2]->SetLineColor(2);
      hdcorrn[index2]->Draw("SAME");
      t1->Draw();
      t2->Draw();
      t3->DrawLatex(0.15,0.92,text);
      c4->Update();
    }
  }

  c1->SaveAs("Baselines.gif");
  c2->SaveAs("Noise.gif");
  c3->SaveAs("BaselinesDist.gif");
  c4->SaveAs("NoiseDist.gif");
  
  Char_t delfil[100];
  for(Int_t iddl=0; iddl<kTotDDL;iddl++){
    for(Int_t imod=0; imod<kModPerDDL;imod++){
      for(Int_t isid=0;isid<kSides;isid++){
	sprintf(delfil,"rm SDDbase_step1_ddl%02dc%02d_sid%d.data",iddl,imod,isid);
	gSystem->Exec(delfil);
      }
    }
  }

}

void AnalyzeSDDNoiseAllMod(Int_t nrun, Int_t n2, Int_t year=2009, Char_t* dir="LHC09b_SDD",
			   Int_t adcfreq=20, 
			   Int_t nDDL=0, 
			   Int_t firstEv=18, 
			   Int_t lastEv=20){

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