ROOT logo
void makeMmixPU_CB(const TString histoFile="LHC11a_pass4_20130913.root",
		   const Int_t nSigma=2,
                   const char* module="A10")
{
  //Fit Real/Mixed ratio, normalize Mixed and subtract it from Real.
  // The pi0 peak if fitted by the Crystal Ball function, 
  // the background is fitted by pol1 or pol2

  TString hMassName;
  TFile * file = new TFile(histoFile) ;
  THashList *hList = (THashList*)file->Get("histESD");
  char key[125] ;
  hMassName = "hMassPt";
  hMassName += module;
  TH2F * h   = (TH2F*)hList->FindObject(hMassName) ;

  hMassName = "hMiMassPt";
  hMassName += module;
  TH2F * hm  = (TH2F*)hList->FindObject(hMassName) ;

  TH1F * hev = (TH1F*)hList->FindObject("hSelEvents") ;

  // Array of pt bins
  Int_t nPadX = 6, nPadY = 3;
  Int_t nbin=18 ;
  Double_t xa[]={0.6,0.8,1.,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,3.0,3.5,4.0,5.,6.,8.,10.,12.} ;
  PPRstyle();
  gStyle->SetPadLeftMargin(0.16);
  gStyle->SetPadRightMargin(0.01);
  gStyle->SetPadTopMargin(0.02);
  gStyle->SetPadBottomMargin(0.11);
  gStyle->SetTitleX(0.80);
  gStyle->SetTitleY(0.98);
  
  //Fit real only 
  //Linear Bg
  char key2[155];
  sprintf(key,"Mix_CB") ;
  sprintf(key2,"%s_mr1",key) ;
  TH1D * mr1 = new TH1D(key2,"Mass",nbin,xa) ;
  sprintf(key2,"%s_sr1",key) ;
  TH1D * sr1 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_rms1",key) ;
  TH1D * rms1 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_nnr1",key) ;
  TH1D * nnr1 = new TH1D(key2,"Mass",nbin,xa) ;
  sprintf(key2,"%s_ar1",key) ;
  TH1D * ar1 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_yr1",key) ;
  TH1D * nr1 = new TH1D(key2,"Raw yield",nbin,xa) ;
  sprintf(key2,"%s_yr1int",key) ;
  TH1D * nr1int = new TH1D(key2,"Raw yield, integrated",nbin,xa) ;

  //Quadratic Bg
  sprintf(key2,"%s_mr2",key) ;
  TH1D * mr2 = new TH1D(key2,"Mass",nbin,xa) ;
  sprintf(key2,"%s_sr2",key) ;
  TH1D * sr2 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_rms2",key) ;
  TH1D * rms2 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_nnr2",key) ;
  TH1D * nnr2 = new TH1D(key2,"Mass",nbin,xa) ;
  sprintf(key2,"%s_ar2",key) ;
  TH1D * ar2 = new TH1D(key2,"Width",nbin,xa) ;
  sprintf(key2,"%s_yr2",key) ;
  TH1D * nr2 = new TH1D(key2,"Raw yield",nbin,xa) ;
  sprintf(key2,"%s_yr2int",key) ;
  TH1D * nr2int = new TH1D(key2,"Raw yield, integrated",nbin,xa) ;


  TF1 * fit1 = new TF1("fit",CB,0.,1.,7) ;
  fit->SetParName(0,"A") ;
  fit->SetParName(1,"m_{0}") ;
  fit->SetParName(2,"#sigma") ;
  fit->SetParName(3,"a_{0}") ;
  fit->SetParName(4,"a_{1}") ;
  fit->SetLineWidth(2) ;
  fit->SetLineColor(2) ;

  TF1 * fgs = new TF1("gs",CBs,0.,1.,5) ;
  fgs->SetLineColor(2) ;
  fgs->SetLineWidth(1) ;

  TF1 * fit2 = new TF1("fit2",CB2,0.,1.,8) ;
  fit2->SetParName(0,"A") ;
  fit2->SetParName(1,"m_{0}") ;
  fit2->SetParName(2,"#sigma") ;
  fit2->SetParName(3,"a_{0}") ;
  fit2->SetParName(4,"a_{1}") ;
  fit2->SetLineWidth(2) ;
  fit2->SetLineColor(4) ;
  fit2->SetLineStyle(2) ;

  TF1 * fbg1 = new TF1("bg1",BG1,0.,1.,2) ;
  TF1 * fbg2 = new TF1("bg2",BG2,0.,1.,3) ;

  TCanvas * c3 = new TCanvas("mggFit1_CB_Signal","mggFitCB",10,10,1400,800) ;
  c3->Divide(nPadX,nPadY) ;

  TCanvas * cReal = new TCanvas("cReal","Mgg real events",10,10,1400,800) ;
  cReal->Divide(nPadX,nPadY) ;

  TCanvas * c1 = new TCanvas("mggFit1_CB","mggFit1",10,10,1400,800) ;
  c1->Divide(nPadX,nPadY) ;
  c1->cd(0) ; 
  TCanvas * c2=0,*c4=0,*c5=0,*c6=0 ; 

  TAxis * pta=h->GetYaxis() ;
  TAxis * ma=h->GetXaxis() ;
  for(Int_t i=1;i<=nbin;i++){
    c1->cd(i) ;
    Int_t imin=pta->FindBin(xa[i-1]+0.0001);
    Int_t imax=pta->FindBin(xa[i]-0.0001) ;
    Double_t pt=(xa[i]+xa[i-1])/2. ;
    TH1D * hp = h->ProjectionX("re",imin,imax) ;
    hp->Sumw2() ;
    hp->SetNdivisions(505,"X");
    TH1D * hpm= hm->ProjectionX("mi",imin,imax) ;
    hpm->Sumw2() ;
    hpm->SetNdivisions(505,"X");
    if(i<15){
      hp ->Rebin(2) ;
      hpm->Rebin(2) ;
    }
    else{
      hp ->Rebin(5) ;
      hpm->Rebin(5) ;
    }
    hp ->SetNdivisions(506);
    hpm->SetNdivisions(506);
    hp ->SetLabelSize(0.05,"X");
    hpm->SetLabelSize(0.05,"X");
    hp ->SetTitleSize(0.00,"X");
    hpm->SetTitleSize(0.00,"X");
    hp ->SetLabelSize(0.05,"Y");
    hpm->SetLabelSize(0.05,"Y");
    hp ->SetTitleSize(0.05,"Y");
    hpm->SetTitleSize(0.05,"Y");
    hp ->SetTitleOffset(1.0,"X");
    hpm->SetTitleOffset(1.0,"X");
    if (i>12) {
      hp ->SetLabelSize(0.05,"X");
      hpm->SetLabelSize(0.05,"X");
      hp ->SetTitleSize(0.05,"X");
      hpm->SetTitleSize(0.05,"X");
      hp ->SetXTitle("m_{#gamma#gamma} (GeV/c^{2})");
      hpm->SetXTitle("m_{#gamma#gamma} (GeV/c^{2})");
    }
    // //Asign errors to the zero bins
    // for(Int_t ib=1; ib<=hp->GetNbinsX();ib++){if(hp->GetBinContent(ib)==0)hp->SetBinError(ib,1.);}
    // for(Int_t ib=1; ib<=hp->GetNbinsX();ib++){if(hpm->GetBinContent(ib)==0)hpm->SetBinError(ib,1.);}

    TH1D * hpm2   = (TH1D*)hpm->Clone("Bg1") ;
    TH1D * hpcopy = (TH1D*)hp ->Clone("hpcopy") ;
    TH1D * hp2    = (TH1D*)hp ->Clone("hp2") ;
    TH1D * hpReal = (TH1D*)hp ->Clone("hpReal") ;
    hpcopy->Divide(hpm) ;
    sprintf(key,"%3.1f<p_{T}<%3.1f GeV/c",xa[i-1],xa[i]) ;
    hpcopy->SetTitle(key) ;
    hpReal->SetTitle(key) ;
    hpReal->SetLineWidth(2);
    hpcopy->SetMarkerStyle(20) ;
    hpcopy->SetMarkerSize(0.7) ;

    Double_t mInit = 0.136., wInit = 0.005;
    if(i==1) {
      mInit = 0.139;
      wInit = 0.007;
    }
    if(i==2) {
      mInit = 0.136;
      wInit = 0.007;
    }
    fit1->SetParameters(0.001,mInit,wInit,9.,0.5,0.0013,0.) ;
    fit1->SetParLimits(2,0.003,0.010) ;
    fit1->SetParLimits(1,0.132,0.139) ;
    fit1->SetParLimits(0,0.,1e+6) ;
//    fit1->SetParLimits(3,0.,10.) ;
//    fit1->SetParLimits(4,0.,1e+2) ;
    fit1->FixParameter(3,1.60) ;
    fit1->FixParameter(4,1.27) ;

    //Select fitting range
    Double_t rangeMin=0.06 ;
    Double_t rangeMax=0.22 ;
    if(i>=16)rangeMax=0.3 ; //More points to fix background
    hpcopy->Fit(fit1,"NQ","",rangeMin,rangeMax) ;
    hpcopy->Fit(fit1,"MQ","",rangeMin,rangeMax) ;

    fit2->SetParameters(fit1->GetParameters()) ;
    fit2->SetParameter(2,wInit);
    fit2->SetParLimits(2,0.003,0.008) ;
    fit2->SetParLimits(1,0.130,0.142) ;
    fit2->SetParLimits(0,0.,1e+6) ;
//    fit2->SetParLimits(3,0.,10.) ;
//    fit2->SetParLimits(4,0.,1e+2) ;
    fit2->FixParameter(3,1.60) ;
    fit2->FixParameter(4,1.27) ;
    fit2->SetParameter(7,0.) ;

    hpcopy->Fit(fit2,"+NQ","",rangeMin,rangeMax) ;
    hpcopy->Fit(fit2,"+MQ","",rangeMin,rangeMax) ;

    c1->cd(i) ;
    hpcopy->SetAxisRange(0.065,0.229,"X") ;
    hpcopy->Draw() ;

    cReal->cd(i) ;
    hpReal->SetAxisRange(0.065,0.229,"X") ;
    hpReal->Draw("ehist") ;

    fbg1->SetParameters(fit1->GetParameter(5),fit1->GetParameter(6)); 
    fbg2->SetParameters(fit2->GetParameter(5),fit2->GetParameter(6),fit2->GetParameter(7)); 
    Double_t intRangeMin = PeakPosition(pt)-nSigma*PeakWidth(pt) ;
    Double_t intRangeMax = PeakPosition(pt)+nSigma*PeakWidth(pt) ;
    Int_t    intBinMin   = hp->GetXaxis()->FindBin(intRangeMin) ;
    Int_t    intBinMax   = hp->GetXaxis()->FindBin(intRangeMax) ;
    Double_t errStat     = hpm->Integral(intBinMin,intBinMax); 

    hpm ->Multiply(fbg1) ;
    hpm2->Multiply(fbg2) ;
    hp  ->Add(hpm,-1.) ;
    hp2 ->Add(hpm2,-1.) ;

    c3->cd(i) ;

    if(i<15)
      fgs->SetParameters(hp->Integral(32,36)/5.,fit1->GetParameter(1),fit1->GetParameter(2),fit1->GetParameter(3),fit1->GetParameter(4)) ;
    else
      fgs->SetParameters(hp->Integral(13,15)/3.,fit1->GetParameter(1),fit1->GetParameter(2),fit1->GetParameter(3),fit1->GetParameter(4)) ;
//      fgs->SetParameters(hp->Integral(13,15)/3.,0.135,0.008,0.7,2.) ;

    fgs->SetParLimits(0,0.,1e+06) ;
    fgs->SetParLimits(1,0.130,0.142) ;
    fgs->SetParLimits(2,0.003,0.008) ;
    fgs->FixParameter(3,1.60) ;
    fgs->FixParameter(4,1.27) ;
    
    hp->Fit(fgs,"Q","",rangeMin,rangeMax) ;   
    hp->SetMaximum(hp2->GetMaximum()*1.1) ;
    hp->SetMinimum(hp2->GetMinimum()*1.1) ;
    hp->SetMarkerStyle(20) ;
    hp->SetMarkerSize(0.7) ;
    mr1->SetBinContent (i,fgs->GetParameter(1)) ;
    mr1->SetBinError   (i,fgs->GetParError(1)) ;
    sr1->SetBinContent (i,TMath::Abs(fgs->GetParameter(2))) ;
    sr1->SetBinError   (i,fgs->GetParError(2)) ;
    nnr1->SetBinContent(i,fgs->GetParameter(3)) ;
    nnr1->SetBinError  (i,fgs->GetParError(3)) ;
    ar1->SetBinContent (i,fgs->GetParameter(4)) ;
    ar1->SetBinError   (i,fgs->GetParError(4)) ;

    Double_t y=fgs->Integral(intRangeMin,intRangeMax)/hp->GetXaxis()->GetBinWidth(1) ;
    nr1->SetBinContent(i,y) ;
    if(y>0)
      rms1->SetBinContent(i,fgs->CentralMoment(2.,0.05,0.2)) ;
    Double_t ey=0 ;
    if(fgs->GetParameter(0)!=0. && fgs->GetParameter(2)!=0.){
      Double_t en=fgs->GetParError(0)/fgs->GetParameter(0) ;
      Double_t es=fgs->GetParError(2)/fgs->GetParameter(2) ;
      ey=y*TMath::Sqrt(en*en+es*es) ;
    }
    nr1->SetBinError(i,ey) ;

    Double_t npiInt=hp->Integral(intBinMin,intBinMax) ;
    Double_t norm=fbg1->GetParameter(0) ;
    Double_t normErr=fbg1->GetParError(0) ;
    if(npiInt>0.){
      nr1int->SetBinContent(i,npiInt) ;
      nr1int->SetBinError(i,TMath::Sqrt(npiInt + norm*errStat + normErr*normErr*errStat*errStat + norm*norm*errStat)) ;
    }

    hp2->GetXaxis()->SetRangeUser(0.05,0.25) ;
    hp2->SetMaximum(hp2->GetMaximum()*1.1) ;
    hp2->SetMinimum(hp2->GetMinimum()*1.1) ;
    hp2->SetMarkerStyle(20) ;
    hp2->SetMarkerSize(0.7) ;

    hp2->Fit(fgs,"Q","",rangeMin,rangeMax) ;
    mr2->SetBinContent (i,fgs->GetParameter(1)) ;
    mr2->SetBinError   (i,fgs->GetParError(1)) ;
    sr2->SetBinContent (i,TMath::Abs(fgs->GetParameter(2))) ;
    sr2->SetBinError   (i,fgs->GetParError(2)) ;
    nnr2->SetBinContent(i,fgs->GetParameter(3)) ;
    nnr2->SetBinError  (i,fgs->GetParError(3)) ;
    ar2->SetBinContent (i,fgs->GetParameter(4)) ;
    ar2->SetBinError   (i,fgs->GetParError(4)) ;

    y=fgs->Integral(intRangeMin,intRangeMax)/hp->GetXaxis()->GetBinWidth(1) ;
    nr2->SetBinContent(i,y) ;
    ey=0 ;
    if(fgs->GetParameter(0)!=0. && fgs->GetParameter(2)!=0.){
      Double_t en=fgs->GetParError(0)/fgs->GetParameter(0) ;
      Double_t es=fgs->GetParError(2)/fgs->GetParameter(2) ;
      ey=y*TMath::Sqrt(en*en+es*es) ;
    }
    nr2->SetBinError(i,ey) ;
    npiInt=hp2->Integral(intBinMin,intBinMax) ;
    norm=fbg2->GetParameter(0) ;
    normErr=fbg2->GetParError(0) ;
    if(npiInt>0.){
      nr2int->SetBinContent(i,npiInt) ;
      nr2int->SetBinError(i,TMath::Sqrt(npiInt + norm*errStat + normErr*normErr*errStat*errStat + norm*norm*errStat)) ;
    } 

    hp2->SetTitle(key) ;
    hp2->SetAxisRange(0.065,0.229,"X") ;
    hp2->Draw() ;
    delete hp ;
//    delete hp2 ;
//    delete hpcopy ;
    delete hpm ;
    delete hpm2 ;
    c1->Update() ;
    c3->Update() ;
    cReal->Update() ;
  }

  if (c3) c3->Print("Pi0_Signal_CB.eps") ;
  if (c1) c1->Print("Pi0_Ratio_CB.eps") ;
  if (cReal) cReal->Print("Pi0_InvMass_CB.eps") ;

  //Normalize by the number of non-pileup events
  Double_t nMBOR   = hev->GetBinContent(2); // MBOR events pass4
  // Double_t nPU     = hev->GetBinContent(7);
  // Double_t nMBOR   = hev->GetBinContent(1); // MBOR events pass3
  // Double_t nPU     = hev->GetBinContent(6);
  Double_t nevents = nMBOR;
  // Double_t nevents = nMBOR - nPU;
  printf("==============\nN events = %d\n==============\n",nevents);

  nr1   ->Scale(1./nevents) ;
  nr1int->Scale(1./nevents) ;
  nr2   ->Scale(1./nevents) ;
  nr2int->Scale(1./nevents) ;


  TFile fout("LHC11a_FitResult.root","update");
  mr1   ->Write(0,TObject::kOverwrite) ;
  sr1   ->Write(0,TObject::kOverwrite) ;
  rms1  ->Write(0,TObject::kOverwrite) ;
  nnr1  ->Write(0,TObject::kOverwrite) ;
  ar1   ->Write(0,TObject::kOverwrite) ;
  nr1   ->Write(0,TObject::kOverwrite) ;
  nr1int->Write(0,TObject::kOverwrite) ;
  mr2   ->Write(0,TObject::kOverwrite) ;
  sr2   ->Write(0,TObject::kOverwrite) ;
  rms2  ->Write(0,TObject::kOverwrite) ;
  nnr2  ->Write(0,TObject::kOverwrite) ;
  ar2   ->Write(0,TObject::kOverwrite) ;
  nr2   ->Write(0,TObject::kOverwrite) ;
  nr2int->Write(0,TObject::kOverwrite) ;
  fout.Close() ;

}


//-----------------------------------------------------------------------------
const Double_t kMean=0.135 ; //Approximate peak position to facilitate error estimate

Double_t PeakPosition(Double_t pt){
  //Fit to the measured peak position
  // return 4.99292e-003*exp(-pt*9.32300e-001)+1.34944e-001 ;
  return 0.57*exp(-pt*7.62)+0.13592 ;
}
Double_t PeakWidth(Double_t pt){
  //fit to the measured peak width
  return 1.60935e-02*exp(-pt*2.25609e+00)+4.65743e-03 ;
  // return 0.0068 ;
}
 
Double_t CB(Double_t * x, Double_t * par){
  Double_t m=par[1] ;
  Double_t s=par[2] ;
  Double_t n=par[3] ;
  Double_t a=par[4] ;
  Double_t dx=(x[0]-m)/s ;
  if(dx>-a)
    return par[0]*exp(-dx*dx/2.)+par[5]+par[6]*(x[0]-kMean) ;
  else{
    Double_t A=TMath::Power((n/TMath::Abs(a)),n)*TMath::Exp(-a*a/2) ;
    Double_t B=n/TMath::Abs(a)-TMath::Abs(a) ;
    return par[0]*A*TMath::Power((B-dx),-n)+par[5]+par[6]*(x[0]-kMean) ;
  }

}
Double_t CB2(Double_t * x, Double_t * par){
  Double_t m=par[1] ;
  Double_t s=par[2] ;
  Double_t n=par[3] ;
  Double_t a=par[4] ;
  Double_t dx=(x[0]-m)/s ;
  if(dx>-a)
    return par[0]*exp(-dx*dx/2.)+par[5]+par[6]*(x[0]-kMean)+par[7]*(x[0]-kMean)*(x[0]-kMean) ;
  else{
    Double_t A=TMath::Power((n/TMath::Abs(a)),n)*TMath::Exp(-a*a/2) ;
    Double_t B=n/TMath::Abs(a)-TMath::Abs(a) ;
    return par[0]*A*TMath::Power((B-dx),-n)+par[5]+par[6]*(x[0]-kMean)+par[7]*(x[0]-kMean)*(x[0]-kMean) ;
  }

}
Double_t CBs(Double_t * x, Double_t * par){
  Double_t m=par[1] ;
  Double_t s=par[2] ;
  Double_t n=par[3] ;
  Double_t a=par[4] ;
  Double_t dx=(x[0]-m)/s ;
  if(dx>-a)
    return par[0]*exp(-dx*dx/2.) ;
  else{
    Double_t A=TMath::Power((n/TMath::Abs(a)),n)*TMath::Exp(-a*a/2) ;
    Double_t B=n/TMath::Abs(a)-TMath::Abs(a) ;
    return par[0]*A*TMath::Power((B-dx),-n) ;
  }
}
Double_t BG1(Double_t * x, Double_t * par){
  //Normalizatino of Mixed
  return par[0]+par[1]*(x[0]-kMean) ;
}
Double_t BG2(Double_t * x, Double_t * par){
  //Another normalization of  Mixed
  return par[0]+par[1]*(x[0]-kMean)+par[2]*(x[0]-kMean)*(x[0]-kMean) ;
}

//-----------------------------------------------------------------------------
PPRstyle()
{

  //////////////////////////////////////////////////////////////////////
  //
  // ROOT style macro for the TRD TDR
  //
  //////////////////////////////////////////////////////////////////////

  gStyle->SetPalette(1);
  gStyle->SetCanvasBorderMode(-1);
  gStyle->SetCanvasBorderSize(1);
  gStyle->SetCanvasColor(10);

  gStyle->SetFrameFillColor(10);
  gStyle->SetFrameBorderSize(1);
  gStyle->SetFrameBorderMode(-1);
  gStyle->SetFrameLineWidth(1.2);
  gStyle->SetFrameLineColor(1);

  gStyle->SetHistFillColor(0);
  gStyle->SetHistLineWidth(1);
  gStyle->SetHistLineColor(1);

  gStyle->SetPadColor(10);
  gStyle->SetPadBorderSize(1);
  gStyle->SetPadBorderMode(-1);

  gStyle->SetStatColor(10);
  gStyle->SetTitleColor(kBlack,"X");
  gStyle->SetTitleColor(kBlack,"Y");

  gStyle->SetLabelSize(0.04,"X");
  gStyle->SetLabelSize(0.04,"Y");
  gStyle->SetLabelSize(0.04,"Z");
  gStyle->SetTitleSize(0.04,"X");
  gStyle->SetTitleSize(0.04,"Y");
  gStyle->SetTitleSize(0.04,"Z");
  gStyle->SetTitleFont(42,"X");
  gStyle->SetTitleFont(42,"Y");
  gStyle->SetTitleFont(42,"X");
  gStyle->SetLabelFont(42,"X");
  gStyle->SetLabelFont(42,"Y");
  gStyle->SetLabelFont(42,"Z");
  gStyle->SetStatFont(42);

  gStyle->SetTitleOffset(1.0,"X");
  gStyle->SetTitleOffset(1.4,"Y");

  gStyle->SetFillColor(kWhite);
  gStyle->SetTitleFillColor(kWhite);

  gStyle->SetOptDate(0);
  gStyle->SetOptTitle(1);
  gStyle->SetOptStat(0);
  gStyle->SetOptFit(0);

}

 makeMmixPU_CB.C:1
 makeMmixPU_CB.C:2
 makeMmixPU_CB.C:3
 makeMmixPU_CB.C:4
 makeMmixPU_CB.C:5
 makeMmixPU_CB.C:6
 makeMmixPU_CB.C:7
 makeMmixPU_CB.C:8
 makeMmixPU_CB.C:9
 makeMmixPU_CB.C:10
 makeMmixPU_CB.C:11
 makeMmixPU_CB.C:12
 makeMmixPU_CB.C:13
 makeMmixPU_CB.C:14
 makeMmixPU_CB.C:15
 makeMmixPU_CB.C:16
 makeMmixPU_CB.C:17
 makeMmixPU_CB.C:18
 makeMmixPU_CB.C:19
 makeMmixPU_CB.C:20
 makeMmixPU_CB.C:21
 makeMmixPU_CB.C:22
 makeMmixPU_CB.C:23
 makeMmixPU_CB.C:24
 makeMmixPU_CB.C:25
 makeMmixPU_CB.C:26
 makeMmixPU_CB.C:27
 makeMmixPU_CB.C:28
 makeMmixPU_CB.C:29
 makeMmixPU_CB.C:30
 makeMmixPU_CB.C:31
 makeMmixPU_CB.C:32
 makeMmixPU_CB.C:33
 makeMmixPU_CB.C:34
 makeMmixPU_CB.C:35
 makeMmixPU_CB.C:36
 makeMmixPU_CB.C:37
 makeMmixPU_CB.C:38
 makeMmixPU_CB.C:39
 makeMmixPU_CB.C:40
 makeMmixPU_CB.C:41
 makeMmixPU_CB.C:42
 makeMmixPU_CB.C:43
 makeMmixPU_CB.C:44
 makeMmixPU_CB.C:45
 makeMmixPU_CB.C:46
 makeMmixPU_CB.C:47
 makeMmixPU_CB.C:48
 makeMmixPU_CB.C:49
 makeMmixPU_CB.C:50
 makeMmixPU_CB.C:51
 makeMmixPU_CB.C:52
 makeMmixPU_CB.C:53
 makeMmixPU_CB.C:54
 makeMmixPU_CB.C:55
 makeMmixPU_CB.C:56
 makeMmixPU_CB.C:57
 makeMmixPU_CB.C:58
 makeMmixPU_CB.C:59
 makeMmixPU_CB.C:60
 makeMmixPU_CB.C:61
 makeMmixPU_CB.C:62
 makeMmixPU_CB.C:63
 makeMmixPU_CB.C:64
 makeMmixPU_CB.C:65
 makeMmixPU_CB.C:66
 makeMmixPU_CB.C:67
 makeMmixPU_CB.C:68
 makeMmixPU_CB.C:69
 makeMmixPU_CB.C:70
 makeMmixPU_CB.C:71
 makeMmixPU_CB.C:72
 makeMmixPU_CB.C:73
 makeMmixPU_CB.C:74
 makeMmixPU_CB.C:75
 makeMmixPU_CB.C:76
 makeMmixPU_CB.C:77
 makeMmixPU_CB.C:78
 makeMmixPU_CB.C:79
 makeMmixPU_CB.C:80
 makeMmixPU_CB.C:81
 makeMmixPU_CB.C:82
 makeMmixPU_CB.C:83
 makeMmixPU_CB.C:84
 makeMmixPU_CB.C:85
 makeMmixPU_CB.C:86
 makeMmixPU_CB.C:87
 makeMmixPU_CB.C:88
 makeMmixPU_CB.C:89
 makeMmixPU_CB.C:90
 makeMmixPU_CB.C:91
 makeMmixPU_CB.C:92
 makeMmixPU_CB.C:93
 makeMmixPU_CB.C:94
 makeMmixPU_CB.C:95
 makeMmixPU_CB.C:96
 makeMmixPU_CB.C:97
 makeMmixPU_CB.C:98
 makeMmixPU_CB.C:99
 makeMmixPU_CB.C:100
 makeMmixPU_CB.C:101
 makeMmixPU_CB.C:102
 makeMmixPU_CB.C:103
 makeMmixPU_CB.C:104
 makeMmixPU_CB.C:105
 makeMmixPU_CB.C:106
 makeMmixPU_CB.C:107
 makeMmixPU_CB.C:108
 makeMmixPU_CB.C:109
 makeMmixPU_CB.C:110
 makeMmixPU_CB.C:111
 makeMmixPU_CB.C:112
 makeMmixPU_CB.C:113
 makeMmixPU_CB.C:114
 makeMmixPU_CB.C:115
 makeMmixPU_CB.C:116
 makeMmixPU_CB.C:117
 makeMmixPU_CB.C:118
 makeMmixPU_CB.C:119
 makeMmixPU_CB.C:120
 makeMmixPU_CB.C:121
 makeMmixPU_CB.C:122
 makeMmixPU_CB.C:123
 makeMmixPU_CB.C:124
 makeMmixPU_CB.C:125
 makeMmixPU_CB.C:126
 makeMmixPU_CB.C:127
 makeMmixPU_CB.C:128
 makeMmixPU_CB.C:129
 makeMmixPU_CB.C:130
 makeMmixPU_CB.C:131
 makeMmixPU_CB.C:132
 makeMmixPU_CB.C:133
 makeMmixPU_CB.C:134
 makeMmixPU_CB.C:135
 makeMmixPU_CB.C:136
 makeMmixPU_CB.C:137
 makeMmixPU_CB.C:138
 makeMmixPU_CB.C:139
 makeMmixPU_CB.C:140
 makeMmixPU_CB.C:141
 makeMmixPU_CB.C:142
 makeMmixPU_CB.C:143
 makeMmixPU_CB.C:144
 makeMmixPU_CB.C:145
 makeMmixPU_CB.C:146
 makeMmixPU_CB.C:147
 makeMmixPU_CB.C:148
 makeMmixPU_CB.C:149
 makeMmixPU_CB.C:150
 makeMmixPU_CB.C:151
 makeMmixPU_CB.C:152
 makeMmixPU_CB.C:153
 makeMmixPU_CB.C:154
 makeMmixPU_CB.C:155
 makeMmixPU_CB.C:156
 makeMmixPU_CB.C:157
 makeMmixPU_CB.C:158
 makeMmixPU_CB.C:159
 makeMmixPU_CB.C:160
 makeMmixPU_CB.C:161
 makeMmixPU_CB.C:162
 makeMmixPU_CB.C:163
 makeMmixPU_CB.C:164
 makeMmixPU_CB.C:165
 makeMmixPU_CB.C:166
 makeMmixPU_CB.C:167
 makeMmixPU_CB.C:168
 makeMmixPU_CB.C:169
 makeMmixPU_CB.C:170
 makeMmixPU_CB.C:171
 makeMmixPU_CB.C:172
 makeMmixPU_CB.C:173
 makeMmixPU_CB.C:174
 makeMmixPU_CB.C:175
 makeMmixPU_CB.C:176
 makeMmixPU_CB.C:177
 makeMmixPU_CB.C:178
 makeMmixPU_CB.C:179
 makeMmixPU_CB.C:180
 makeMmixPU_CB.C:181
 makeMmixPU_CB.C:182
 makeMmixPU_CB.C:183
 makeMmixPU_CB.C:184
 makeMmixPU_CB.C:185
 makeMmixPU_CB.C:186
 makeMmixPU_CB.C:187
 makeMmixPU_CB.C:188
 makeMmixPU_CB.C:189
 makeMmixPU_CB.C:190
 makeMmixPU_CB.C:191
 makeMmixPU_CB.C:192
 makeMmixPU_CB.C:193
 makeMmixPU_CB.C:194
 makeMmixPU_CB.C:195
 makeMmixPU_CB.C:196
 makeMmixPU_CB.C:197
 makeMmixPU_CB.C:198
 makeMmixPU_CB.C:199
 makeMmixPU_CB.C:200
 makeMmixPU_CB.C:201
 makeMmixPU_CB.C:202
 makeMmixPU_CB.C:203
 makeMmixPU_CB.C:204
 makeMmixPU_CB.C:205
 makeMmixPU_CB.C:206
 makeMmixPU_CB.C:207
 makeMmixPU_CB.C:208
 makeMmixPU_CB.C:209
 makeMmixPU_CB.C:210
 makeMmixPU_CB.C:211
 makeMmixPU_CB.C:212
 makeMmixPU_CB.C:213
 makeMmixPU_CB.C:214
 makeMmixPU_CB.C:215
 makeMmixPU_CB.C:216
 makeMmixPU_CB.C:217
 makeMmixPU_CB.C:218
 makeMmixPU_CB.C:219
 makeMmixPU_CB.C:220
 makeMmixPU_CB.C:221
 makeMmixPU_CB.C:222
 makeMmixPU_CB.C:223
 makeMmixPU_CB.C:224
 makeMmixPU_CB.C:225
 makeMmixPU_CB.C:226
 makeMmixPU_CB.C:227
 makeMmixPU_CB.C:228
 makeMmixPU_CB.C:229
 makeMmixPU_CB.C:230
 makeMmixPU_CB.C:231
 makeMmixPU_CB.C:232
 makeMmixPU_CB.C:233
 makeMmixPU_CB.C:234
 makeMmixPU_CB.C:235
 makeMmixPU_CB.C:236
 makeMmixPU_CB.C:237
 makeMmixPU_CB.C:238
 makeMmixPU_CB.C:239
 makeMmixPU_CB.C:240
 makeMmixPU_CB.C:241
 makeMmixPU_CB.C:242
 makeMmixPU_CB.C:243
 makeMmixPU_CB.C:244
 makeMmixPU_CB.C:245
 makeMmixPU_CB.C:246
 makeMmixPU_CB.C:247
 makeMmixPU_CB.C:248
 makeMmixPU_CB.C:249
 makeMmixPU_CB.C:250
 makeMmixPU_CB.C:251
 makeMmixPU_CB.C:252
 makeMmixPU_CB.C:253
 makeMmixPU_CB.C:254
 makeMmixPU_CB.C:255
 makeMmixPU_CB.C:256
 makeMmixPU_CB.C:257
 makeMmixPU_CB.C:258
 makeMmixPU_CB.C:259
 makeMmixPU_CB.C:260
 makeMmixPU_CB.C:261
 makeMmixPU_CB.C:262
 makeMmixPU_CB.C:263
 makeMmixPU_CB.C:264
 makeMmixPU_CB.C:265
 makeMmixPU_CB.C:266
 makeMmixPU_CB.C:267
 makeMmixPU_CB.C:268
 makeMmixPU_CB.C:269
 makeMmixPU_CB.C:270
 makeMmixPU_CB.C:271
 makeMmixPU_CB.C:272
 makeMmixPU_CB.C:273
 makeMmixPU_CB.C:274
 makeMmixPU_CB.C:275
 makeMmixPU_CB.C:276
 makeMmixPU_CB.C:277
 makeMmixPU_CB.C:278
 makeMmixPU_CB.C:279
 makeMmixPU_CB.C:280
 makeMmixPU_CB.C:281
 makeMmixPU_CB.C:282
 makeMmixPU_CB.C:283
 makeMmixPU_CB.C:284
 makeMmixPU_CB.C:285
 makeMmixPU_CB.C:286
 makeMmixPU_CB.C:287
 makeMmixPU_CB.C:288
 makeMmixPU_CB.C:289
 makeMmixPU_CB.C:290
 makeMmixPU_CB.C:291
 makeMmixPU_CB.C:292
 makeMmixPU_CB.C:293
 makeMmixPU_CB.C:294
 makeMmixPU_CB.C:295
 makeMmixPU_CB.C:296
 makeMmixPU_CB.C:297
 makeMmixPU_CB.C:298
 makeMmixPU_CB.C:299
 makeMmixPU_CB.C:300
 makeMmixPU_CB.C:301
 makeMmixPU_CB.C:302
 makeMmixPU_CB.C:303
 makeMmixPU_CB.C:304
 makeMmixPU_CB.C:305
 makeMmixPU_CB.C:306
 makeMmixPU_CB.C:307
 makeMmixPU_CB.C:308
 makeMmixPU_CB.C:309
 makeMmixPU_CB.C:310
 makeMmixPU_CB.C:311
 makeMmixPU_CB.C:312
 makeMmixPU_CB.C:313
 makeMmixPU_CB.C:314
 makeMmixPU_CB.C:315
 makeMmixPU_CB.C:316
 makeMmixPU_CB.C:317
 makeMmixPU_CB.C:318
 makeMmixPU_CB.C:319
 makeMmixPU_CB.C:320
 makeMmixPU_CB.C:321
 makeMmixPU_CB.C:322
 makeMmixPU_CB.C:323
 makeMmixPU_CB.C:324
 makeMmixPU_CB.C:325
 makeMmixPU_CB.C:326
 makeMmixPU_CB.C:327
 makeMmixPU_CB.C:328
 makeMmixPU_CB.C:329
 makeMmixPU_CB.C:330
 makeMmixPU_CB.C:331
 makeMmixPU_CB.C:332
 makeMmixPU_CB.C:333
 makeMmixPU_CB.C:334
 makeMmixPU_CB.C:335
 makeMmixPU_CB.C:336
 makeMmixPU_CB.C:337
 makeMmixPU_CB.C:338
 makeMmixPU_CB.C:339
 makeMmixPU_CB.C:340
 makeMmixPU_CB.C:341
 makeMmixPU_CB.C:342
 makeMmixPU_CB.C:343
 makeMmixPU_CB.C:344
 makeMmixPU_CB.C:345
 makeMmixPU_CB.C:346
 makeMmixPU_CB.C:347
 makeMmixPU_CB.C:348
 makeMmixPU_CB.C:349
 makeMmixPU_CB.C:350
 makeMmixPU_CB.C:351
 makeMmixPU_CB.C:352
 makeMmixPU_CB.C:353
 makeMmixPU_CB.C:354
 makeMmixPU_CB.C:355
 makeMmixPU_CB.C:356
 makeMmixPU_CB.C:357
 makeMmixPU_CB.C:358
 makeMmixPU_CB.C:359
 makeMmixPU_CB.C:360
 makeMmixPU_CB.C:361
 makeMmixPU_CB.C:362
 makeMmixPU_CB.C:363
 makeMmixPU_CB.C:364
 makeMmixPU_CB.C:365
 makeMmixPU_CB.C:366
 makeMmixPU_CB.C:367
 makeMmixPU_CB.C:368
 makeMmixPU_CB.C:369
 makeMmixPU_CB.C:370
 makeMmixPU_CB.C:371
 makeMmixPU_CB.C:372
 makeMmixPU_CB.C:373
 makeMmixPU_CB.C:374
 makeMmixPU_CB.C:375
 makeMmixPU_CB.C:376
 makeMmixPU_CB.C:377
 makeMmixPU_CB.C:378
 makeMmixPU_CB.C:379
 makeMmixPU_CB.C:380
 makeMmixPU_CB.C:381
 makeMmixPU_CB.C:382
 makeMmixPU_CB.C:383
 makeMmixPU_CB.C:384
 makeMmixPU_CB.C:385
 makeMmixPU_CB.C:386
 makeMmixPU_CB.C:387
 makeMmixPU_CB.C:388
 makeMmixPU_CB.C:389
 makeMmixPU_CB.C:390
 makeMmixPU_CB.C:391
 makeMmixPU_CB.C:392
 makeMmixPU_CB.C:393
 makeMmixPU_CB.C:394
 makeMmixPU_CB.C:395
 makeMmixPU_CB.C:396
 makeMmixPU_CB.C:397
 makeMmixPU_CB.C:398
 makeMmixPU_CB.C:399
 makeMmixPU_CB.C:400
 makeMmixPU_CB.C:401
 makeMmixPU_CB.C:402
 makeMmixPU_CB.C:403
 makeMmixPU_CB.C:404
 makeMmixPU_CB.C:405
 makeMmixPU_CB.C:406
 makeMmixPU_CB.C:407
 makeMmixPU_CB.C:408
 makeMmixPU_CB.C:409
 makeMmixPU_CB.C:410
 makeMmixPU_CB.C:411
 makeMmixPU_CB.C:412
 makeMmixPU_CB.C:413
 makeMmixPU_CB.C:414
 makeMmixPU_CB.C:415
 makeMmixPU_CB.C:416
 makeMmixPU_CB.C:417
 makeMmixPU_CB.C:418
 makeMmixPU_CB.C:419
 makeMmixPU_CB.C:420
 makeMmixPU_CB.C:421
 makeMmixPU_CB.C:422
 makeMmixPU_CB.C:423
 makeMmixPU_CB.C:424
 makeMmixPU_CB.C:425
 makeMmixPU_CB.C:426
 makeMmixPU_CB.C:427
 makeMmixPU_CB.C:428
 makeMmixPU_CB.C:429
 makeMmixPU_CB.C:430
 makeMmixPU_CB.C:431
 makeMmixPU_CB.C:432
 makeMmixPU_CB.C:433
 makeMmixPU_CB.C:434
 makeMmixPU_CB.C:435
 makeMmixPU_CB.C:436
 makeMmixPU_CB.C:437
 makeMmixPU_CB.C:438
 makeMmixPU_CB.C:439
 makeMmixPU_CB.C:440
 makeMmixPU_CB.C:441
 makeMmixPU_CB.C:442
 makeMmixPU_CB.C:443
 makeMmixPU_CB.C:444
 makeMmixPU_CB.C:445
 makeMmixPU_CB.C:446
 makeMmixPU_CB.C:447
 makeMmixPU_CB.C:448
 makeMmixPU_CB.C:449
 makeMmixPU_CB.C:450
 makeMmixPU_CB.C:451
 makeMmixPU_CB.C:452
 makeMmixPU_CB.C:453
 makeMmixPU_CB.C:454
 makeMmixPU_CB.C:455
 makeMmixPU_CB.C:456
 makeMmixPU_CB.C:457
 makeMmixPU_CB.C:458
 makeMmixPU_CB.C:459
 makeMmixPU_CB.C:460
 makeMmixPU_CB.C:461
 makeMmixPU_CB.C:462
 makeMmixPU_CB.C:463
 makeMmixPU_CB.C:464
 makeMmixPU_CB.C:465
 makeMmixPU_CB.C:466
 makeMmixPU_CB.C:467
 makeMmixPU_CB.C:468
 makeMmixPU_CB.C:469
 makeMmixPU_CB.C:470
 makeMmixPU_CB.C:471
 makeMmixPU_CB.C:472
 makeMmixPU_CB.C:473
 makeMmixPU_CB.C:474
 makeMmixPU_CB.C:475
 makeMmixPU_CB.C:476
 makeMmixPU_CB.C:477
 makeMmixPU_CB.C:478
 makeMmixPU_CB.C:479
 makeMmixPU_CB.C:480
 makeMmixPU_CB.C:481
 makeMmixPU_CB.C:482
 makeMmixPU_CB.C:483
 makeMmixPU_CB.C:484
 makeMmixPU_CB.C:485