ROOT logo
/////////////////////////////////////////////////////////
//Macro to read the results of the 3gausfit for spectra
//E. Biolcati, 13-feb-2010
/////////////////////////////////////////////////////////
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <Riostream.h>
#include <TLatex.h>
#include <TH1F.h>
#include <TH2D.h>
#include <TF1.h>
#include <TMath.h>
#include <TLegend.h>
#include <TLegendEntry.h>
#include <TGraphErrors.h>
#include <TGraphAsymmErrors.h>
#include <TTree.h>
#include <TCanvas.h>
#include <TSystem.h>
#include <TFile.h>
#include <TStyle.h>
#include <TPad.h>
#endif

void Labella(Int_t i);
void Legenda(TH1 *h2, TH1 *h3, TH1 *h4);

//_______________________________________________________
void MakeCorrectedITSsaSpectraMultiBin(Int_t multibin=0){

	TString dirNameSIM, dirNameDATA;
	TFile *fiSIM  = new TFile(Form("../gridmultiplicitybins/LHC10d1_1.5sigma_7DCA_negmag/Spectra_MC_negmag_MultBin%d/SpectraReco.root",multibin));
	TFile *fiDATA = new TFile(Form("../gridmultiplicitybins/data_1.5sigma_7DCA_negmag/Spectra_data_negmag_MultBin%d/SpectraReco.root",multibin));
	TFile *fout   = new TFile(Form("ITSsaSpectraCorr_MultiBin%d.root",multibin),"recreate");

	//dca correction
	TFile *fPanosPosP= new TFile(Form("RootFilesPanosCorr/PanosCorr_1.5sigma_7DCA_PosP_expostrange_MultBin%d.root",multibin));  
	TFile *fPanosNegP= new TFile(Form("RootFilesPanosCorr/PanosCorr_1.5sigma_7DCA_NegP_expostrange_MultBin%d.root",multibin)); 
	TH1F *hPanosPosP= (TH1F*)fPanosPosP->Get("fHistSecTOTCorrDATAMC"); 
	TH1F *hPanosNegP= (TH1F*)fPanosNegP->Get("fHistSecTOTCorrDATAMC"); 
	for(Int_t pbin=0;pbin<=hPanosPosP->GetNbinsX();pbin++)hPanosPosP->SetBinError(pbin,0); 
	for(Int_t pbin=0;pbin<=hPanosNegP->GetNbinsX();pbin++)hPanosNegP->SetBinError(pbin,0);

	//nevts
	TH1F *hstat = (TH1F*)fiDATA->Get("fHistNEvents");
	Double_t NEvts = hstat->GetBinContent(hstat->FindBin(1.));
	cout<<"Event number used for the normalization "<<NEvts<<endl;

	//canvas
	gStyle->SetOptStat(0);
	TCanvas *cs=new TCanvas("cs","cs",1200,700);
	cs->Divide(2,1);
	TCanvas *cmix=new TCanvas("cmix","cmix",800,900);
	cmix->Divide(1,3,0,0);

	TH1F *hPieff[2];
	TH1F *hKeff[2];
	TH1F *hPeff[2];
	TH1F *hPiDATA[2];
	TH1F *hKDATA[2];
	TH1F *hPDATA[2];
	TH1F *hPiDATANorm[2];
	TH1F *hKDATANorm[2];
	TH1F *hPDATANorm[2];
	TH1F *hKsuPi[2]; 
	TH1F *hPsuPi[2]; 
	TH1F *hPsuK[2]; 

	hPieff[0] = (TH1F*)fiSIM->Get("hCorrFacNeg0");
	hKeff[0]  = (TH1F*)fiSIM->Get("hCorrFacNeg1");
	hPeff[0]  = (TH1F*)fiSIM->Get("hCorrFacNeg2");
	hPieff[1] = (TH1F*)fiSIM->Get("hCorrFacPos0");
	hKeff[1]  = (TH1F*)fiSIM->Get("hCorrFacPos1");
	hPeff[1]  = (TH1F*)fiSIM->Get("hCorrFacPos2");
	TCanvas *ceff=new TCanvas("ceff","ceff",800,500);
	ceff->Divide(2,1);
	ceff->cd(1);
	gPad->SetGridy();
	hPieff[0]->Draw();
	hKeff[0]->Draw("same");
	hPeff[0]->Draw("same");
	ceff->cd(2);
	gPad->SetGridy();
	hPieff[1]->Draw();
	hKeff[1]->Draw("same");
	hPeff[1]->Draw("same");

	hPiDATA[0] = (TH1F*)fiDATA->Get("hSpectraNeg0");
	hKDATA[0]  = (TH1F*)fiDATA->Get("hSpectraNeg1");
	hPDATA[0]  = (TH1F*)fiDATA->Get("hSpectraNeg2");
	hPiDATA[1] = (TH1F*)fiDATA->Get("hSpectraPos0");
	hKDATA[1]  = (TH1F*)fiDATA->Get("hSpectraPos1");
	hPDATA[1]  = (TH1F*)fiDATA->Get("hSpectraPos2");

	hPiDATANorm[0] = new TH1F(*hPiDATA[0]);
	hPiDATANorm[0]->SetName("hSpectraPiPlusN");
	hPiDATANorm[1] = new TH1F(*hPiDATA[1]);
	hPiDATANorm[1]->SetName("hSpectraPiMinusN");
	hKDATANorm[0]  = new TH1F(*hKDATA[0]);
	hKDATANorm[0]->SetName("hSpectraKPlusN");
	hKDATANorm[1]  = new TH1F(*hKDATA[1]);
	hKDATANorm[1]->SetName("hSpectraKMinusN");
	hPDATANorm[0]  = new TH1F(*hPDATA[0]);
	hPDATANorm[0]->SetName("hSpectraPPlusN");
	hPDATANorm[1]  = new TH1F(*hPDATA[1]);
	hPDATANorm[1]->SetName("hSpectraPMinusN");

	for(Int_t i=0;i<2;i++){ //0==> negative, 1==>positive
		//line colors
		hPiDATA[i] -> SetLineColor(2);
		hKDATA[i]  -> SetLineColor(3);
		hPDATA[i]  -> SetLineColor(4);
		hPiDATA[i] -> SetMarkerStyle(27);
		hKDATA[i]  -> SetMarkerStyle(23);
		hPDATA[i]  -> SetMarkerStyle(24);
		hPiDATA[i] -> SetMarkerColor(2);
		hKDATA[i]  -> SetMarkerColor(3);
		hPDATA[i]  -> SetMarkerColor(4);
		hPiDATA[i] -> SetMarkerStyle(23);
		hKDATA[i]  -> SetMarkerStyle(23);
		hPDATA[i]  -> SetMarkerStyle(23);

		hPiDATANorm[i] -> SetLineColor(2);
		hKDATANorm[i]  -> SetLineColor(3);
		hPDATANorm[i]  -> SetLineColor(4);
		hPiDATANorm[i] -> SetMarkerStyle(27);
		hKDATANorm[i]  -> SetMarkerStyle(23);
		hPDATANorm[i]  -> SetMarkerStyle(24);
		hPiDATANorm[i] -> SetMarkerColor(2);
		hKDATANorm[i]  -> SetMarkerColor(3);
		hPDATANorm[i]  -> SetMarkerColor(4);
		hPiDATANorm[i] -> SetMarkerStyle(23);
		hKDATANorm[i]  -> SetMarkerStyle(23);
		hPDATANorm[i]  -> SetMarkerStyle(23);

		//division for efficiency
		hPiDATA[i] -> Divide(hPieff[i]);
		hKDATA[i]  -> Divide(hKeff[i]);
		hPDATA[i]  -> Divide(hPeff[i]);
		hPiDATANorm[i] -> Divide(hPieff[i]);
		hKDATANorm[i]  -> Divide(hKeff[i]);
		hPDATANorm[i]  -> Divide(hPeff[i]);

		//normalization number of events
		hPiDATANorm[i] -> Scale(1./NEvts);
		hKDATANorm[i]  -> Scale(1./NEvts);
		hPDATANorm[i]  -> Scale(1./NEvts);

		//correction factor based on fit to DCA distr for P and Pibar 
		hPDATA[0]->Multiply(hPanosPosP); 
		hPDATA[1]->Multiply(hPanosNegP);

		//drawing
		cs->cd(i+1);
		gPad->SetLogy();
		gPad->SetGridy();
		gPad->SetGridx();
		Float_t minim=0.01;
		Float_t maxim=10.;
		hPiDATANorm[i]->Draw("e");
		hPiDATANorm[i]->GetYaxis()->SetRangeUser(minim,maxim);
		hPiDATANorm[i]->GetYaxis()->SetTitle("#frac{1}{N}#frac{d^{2}N}{dp_{t}dy}");
		hPiDATANorm[i]->SetTitle("DATA from ITSsa - corrected");
		hKDATANorm[i]->Draw("esames");
		hPDATANorm[i]->Draw("esames");
		Labella(i);
		Legenda(hPiDATA[i],hKDATA[i],hPDATA[i]);
		cs->Update();
	}

	//fluka correction for pi
	TFile *fGeanFlukaPi= new TFile(Form("RootFilesGeantFlukaCorrection/correctionForCrossSection.211.root"));
	TH1F *hGeantFlukaPiPos=(TH1F*)fGeanFlukaPi->Get("gHistCorrectionForCrossSectionParticles");
	TH1F *hGeantFlukaPiNeg=(TH1F*)fGeanFlukaPi->Get("gHistCorrectionForCrossSectionAntiParticles");
	for(Int_t binPi=0;binPi<=hPiDATA[0]->GetNbinsX();binPi++){
		Float_t FlukaCorrPiPos=hGeantFlukaPiPos->GetBinContent(hGeantFlukaPiPos->FindBin(hPiDATA[0]->GetBinCenter(binPi)));
		Float_t FlukaCorrPiNeg=hGeantFlukaPiNeg->GetBinContent(hGeantFlukaPiNeg->FindBin(hPiDATA[1]->GetBinCenter(binPi)));
		//cout<<"PiPos  "<<FlukaCorrPiPos<<"  "<<hPiDATA[0]->GetBinCenter(binPi)<<"  " <<binPi <<endl;
		//cout<<"PiNeg  "<<FlukaCorrPiNeg<<"  "<<hPiDATA[0]->GetBinCenter(binPi)<<"  " <<binPi <<endl;
		hPiDATA[0]->SetBinContent(binPi,hPiDATA[0]->GetBinContent(binPi)*FlukaCorrPiPos);
		hPiDATA[1]->SetBinContent(binPi,hPiDATA[1]->GetBinContent(binPi)*FlukaCorrPiNeg);
	}
	//fluka correction for pi
	TFile *fGeanFlukaK= new TFile(Form("RootFilesGeantFlukaCorrection/correctionForCrossSection.321.root"));
	TH1F *hGeantFlukaKPos=(TH1F*)fGeanFlukaK->Get("gHistCorrectionForCrossSectionParticles");
	TH1F *hGeantFlukaKNeg=(TH1F*)fGeanFlukaK->Get("gHistCorrectionForCrossSectionAntiParticles");
	for(Int_t binK=0;binK<=hKDATA[0]->GetNbinsX();binK++){
		Float_t FlukaCorrKPos=hGeantFlukaKPos->GetBinContent(hGeantFlukaKPos->FindBin(hKDATA[0]->GetBinCenter(binK)));
		Float_t FlukaCorrKNeg=hGeantFlukaKNeg->GetBinContent(hGeantFlukaKNeg->FindBin(hKDATA[1]->GetBinCenter(binK)));
		//cout<<"KPos :"<<FlukaCorrKPos<<"  "<<hKDATA[0]->GetBinCenter(binK)<<"  " <<binK <<endl;
		//cout<<"KNeg :"<<FlukaCorrKNeg<<"  "<<hKDATA[0]->GetBinCenter(binK)<<"  " <<binK <<endl;
		hKDATA[0]->SetBinContent(binK,hKDATA[0]->GetBinContent(binK)*FlukaCorrKPos);
		hKDATA[1]->SetBinContent(binK,hKDATA[1]->GetBinContent(binK)*FlukaCorrKNeg);
	}
	//fluka correction for P
	//ITS specific file for protons/antiprotons
	Int_t kPos=0;
	Int_t kNeg=1;
	TFile* fITS = new TFile ("RootFilesGeantFlukaCorrection/correctionForCrossSectionITS_20100719.root");
	TH2D * hCorrFlukaITS[2];
	hCorrFlukaITS[kPos] = (TH2D*)fITS->Get("gHistCorrectionForCrossSectionProtons");
	hCorrFlukaITS[kNeg] = (TH2D*)fITS->Get("gHistCorrectionForCrossSectionAntiProtons");
	for(Int_t icharge = 0; icharge < 2; icharge++){
		Int_t nbins = hPDATA[0]->GetNbinsX();
		Int_t nbinsy=hCorrFlukaITS[icharge]->GetNbinsY();
		for(Int_t ibin = 0; ibin < nbins; ibin++){
			Float_t pt = hPDATA[0]->GetBinCenter(ibin);
			Float_t minPtCorrection = hCorrFlukaITS[icharge]->GetYaxis()->GetBinLowEdge(1);
			Float_t maxPtCorrection = hCorrFlukaITS[icharge]->GetYaxis()->GetBinLowEdge(nbinsy+1);
			if (pt < minPtCorrection) pt = minPtCorrection+0.0001;
			if (pt > maxPtCorrection) pt = maxPtCorrection;
			Float_t correction = hCorrFlukaITS[icharge]->GetBinContent(1,hCorrFlukaITS[icharge]->GetYaxis()->FindBin(pt));
			if(icharge==0){
				if (correction != 0) {// If the bin is empty this is a  0
					hPDATA[0]->SetBinContent(ibin,hPDATA[0]->GetBinContent(ibin)*correction);
					hPDATA[0]->SetBinError(ibin,hPDATA[0]->GetBinError  (ibin)*correction);
				}else if (hPDATA[0]->GetBinContent(ibin) > 0) { // If we are skipping a non-empty bin, we notify the user
					cout << "Fluka/GEANT: Not correcting bin "<<ibin << " for protons secondaries, ITS, " << endl;
					cout << " Bin content: " << hPDATA[0]->GetBinContent(ibin) << endl;
				}
			}
			if(icharge==1){
				if (correction != 0) {// If the bin is empty this is a  0
					hPDATA[1]->SetBinContent(ibin,hPDATA[1]->GetBinContent(ibin)*correction);
					hPDATA[1]->SetBinError(ibin,hPDATA[1]->GetBinError  (ibin)*correction);
				}else if (hPDATA[1]->GetBinContent(ibin) > 0) { // If we are skipping a non-empty bin, we notify the user
					cout << "Fluka/GEANT: Not correcting bin "<<ibin << " for Antiprotons secondaries, ITS, " << endl;
					cout << " Bin content: " << hPDATA[1]->GetBinContent(ibin) << endl;
				}
			}
		}
	}


	//mixed particle ratios
	for(Int_t i=0;i<2;i++){
		hKsuPi[i] = (TH1F*)hKDATA[i]->Clone("KsuPi");
		hPsuPi[i] = (TH1F*)hPDATA[i]->Clone("PsuPi");
		hPsuK[i]  = (TH1F*)hPDATA[i]->Clone("PsuK");
		hKsuPi[i] -> Divide(hPiDATA[i]);
		hPsuPi[i] -> Divide(hPiDATA[i]);
		hPsuK[i]  -> Divide(hKDATA[i]);
	}

	//positive/negative ratios
	TH1F *hPiratio = (TH1F*)hPiDATA[1]->Clone("PionsRatio");
	TH1F *hKratio  = (TH1F*)hKDATA[1]->Clone("KaonsRatio");
	TH1F *	hPratio  = (TH1F*)hPDATA[1]->Clone("ProtonsRatio");
	hPiratio -> Divide(hPiDATA[0]);
	hKratio  -> Divide(hKDATA[0]);
	hPratio  -> Divide(hPDATA[0]);


	//drawing positive/negative ratios
	TCanvas *cratio=new TCanvas("cratio","",980,600);
	cratio->Divide(1,3,0,0);
	cratio->SetBottomMargin(0.08);
	cratio->cd(1);
	gPad->SetGridy();
	hPiratio->GetYaxis()->SetTitle("");
	hPiratio->GetYaxis()->SetRangeUser(0.7,1.3);
	hPiratio->SetTitle("");
	hPiratio->Draw("mp");
	TLatex *ll1=new TLatex(0.7,0.7,"#pi^{+}/#pi^{-}");
	ll1->SetNDC();
	ll1->SetTextSize(0.14);
	ll1->Draw();
	cratio->cd(2);
	gPad->SetGridy();
	hKratio->SetTitle("");
	hKratio->GetYaxis()->SetRangeUser(0.7,1.3);
	hKratio->Draw("mp");
	TLatex *ll2=new TLatex(0.7,0.7,"K^{+}/K^{-}");
	ll2->SetNDC();
	ll2->SetTextSize(0.14);
	ll2->Draw();
	cratio->cd(3);
	gPad->SetGridy();
	hPratio->SetTitle("");
	hPratio->GetYaxis()->SetRangeUser(0.7,1.3);
	hPratio->GetXaxis()->SetTitle("p_{t} [GeV/c]");
	hPratio->Draw("mp");
	TLatex *ll3=new TLatex(0.7,0.7,"p/#bar{p}");
	ll3->SetNDC();
	ll3->SetTextSize(0.144);
	ll3->Draw();

	//drawing mixed particle ratios
	gStyle->SetOptTitle(0);
	cmix->cd(1);
	hKsuPi[0]->GetXaxis()->SetTitle("p_{t} [GeV/c]");
	hKsuPi[0]->Draw();
	hKsuPi[1]->Draw("same");
	hKsuPi[0]->SetMinimum(0);
	hKsuPi[0]->SetMarkerStyle(23);
	hKsuPi[1]->SetMarkerStyle(24);
	TLegend *legm1=new TLegend(0.2,0.6,0.39,0.89,NULL,"brNDC");
	legm1->AddEntry(hKsuPi[0],"K^{-}/#pi^{-}","p");
	legm1->AddEntry(hKsuPi[1],"K^{+}/#pi^{+}","p");
	legm1->SetFillColor(0);
	legm1->SetBorderSize(0);
	legm1->Draw();
	hKsuPi[0]->SetMarkerColor(2);
	hKsuPi[1]->SetMarkerColor(4);
	hKsuPi[0]->SetLineColor(2);
	hKsuPi[1]->SetLineColor(4);

	cmix->cd(2);
	hPsuPi[0]->GetXaxis()->SetTitle("p_{t} [GeV/c]");
	hPsuPi[0]->Draw();
	hPsuPi[1]->Draw("same");
	hPsuPi[0]->SetMinimum(0);
	hPsuPi[0]->SetMarkerStyle(23);
	hPsuPi[1]->SetMarkerStyle(24);
	hPsuPi[0]->SetMarkerColor(2);
	hPsuPi[1]->SetMarkerColor(4);
	hPsuPi[0]->SetLineColor(2);
	hPsuPi[1]->SetLineColor(4);
	TLegend *legm2=new TLegend(0.2,0.6,0.39,0.89,NULL,"brNDC");
	legm2->AddEntry(hPsuPi[0],"#bar{p}/#pi^{-}","p");
	legm2->AddEntry(hPsuPi[1],"p/#pi^{+}","p");
	legm2->SetFillColor(0);
	legm2->SetBorderSize(0);
	legm2->Draw();

	cmix->cd(3);
	hPsuK[0]->GetXaxis()->SetTitle("p_{t} [GeV/c]");
	hPsuK[0]->Draw();
	hPsuK[1]->Draw("same");
	hPsuK[0]->SetMinimum(0);
	hPsuK[0]->SetMarkerStyle(23);
	hPsuK[1]->SetMarkerStyle(24);
	hPsuK[0]->SetMarkerColor(2);
	hPsuK[1]->SetMarkerColor(4);
	hPsuK[0]->SetLineColor(2);
	hPsuK[1]->SetLineColor(4);
	TLegend *legm3=new TLegend(0.2,0.6,0.39,0.89,NULL,"brNDC");
	legm3->AddEntry(hPsuPi[0],"#bar{p}/K^{-}","p");
	legm3->AddEntry(hPsuPi[1],"p/K^{+}","p");
	legm3->SetFillColor(0);
	legm3->SetBorderSize(0);
	legm3->Draw();

  //save histograms in the root files
	fout->cd();
	hPiDATA[0]->Write();
	hKDATA[0] ->Write();
	hPDATA[0] ->Write();
	hPiDATA[1]->Write();
	hKDATA[1] ->Write();
	hPDATA[1] ->Write();
	hPiDATANorm[0]->Write();
	hKDATANorm[0] ->Write();
	hPDATANorm[0] ->Write();
	hPiDATANorm[1]->Write();
	hKDATANorm[1] ->Write();
	hPDATANorm[1] ->Write();
	//fout->Close();
	return;

}//end of the main


//_______________________________________________________
void Labella(Int_t i){
	Char_t txt[50];
	if(i==0) sprintf(txt,"negative particles");
	else sprintf(txt,"positive particles");
	TLatex *ltx=new TLatex(0.4,0.3,txt);
	ltx->SetNDC();
	ltx->SetTextColor(6);
	ltx->SetTextFont(22);
	ltx->Draw();
	return;
}

//_______________________________________________________
void Legenda(TH1 *h2, TH1 *h3, TH1 *h4){
	TLegend *leg=new TLegend(0.51,0.11,0.84,0.25,NULL,"brNDC");
	leg->SetFillColor(0);
	leg->SetBorderSize(0);
	TLegendEntry *entry2=leg->AddEntry(h2,"pions","p");
	entry2->SetTextColor(2);
	TLegendEntry *entry3=leg->AddEntry(h3,"kaons","p");
	entry3->SetTextColor(3);
	TLegendEntry *entry4=leg->AddEntry(h4,"protons","p");
	entry4->SetTextColor(4);
	leg->Draw("same");
}

//EOF

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