00001 #include <iostream>
00002 #include <fstream>
00003
00004
00005
00006
00007
00008 int plLumi(){
00009 gStyle->SetPalette(1);
00010 string line; int nRuns; float nTot;
00011
00012 ifstream infile("runList584.lis");
00013
00014 ofstream outfile("lumi_sl11b.csv");
00015 outfile<<"runNumber,nSBB,nBHT3,fDet,Lumi"<<endl;
00016
00017 TString iPath="/star/data01/pwg/stevens4/wAnalysis/xSecPaper/sl11b/7.14.11/data/R";
00018 float lumiTot=0; float lumiTotErr=0;
00019 int BHT3prescale=50;
00020 float BHT3xs=434000;
00021
00022 int BTH3coinBin=5;
00023
00024
00025 while(infile.good()){
00026 getline (infile,line);
00027 if(line == ""){
00028 cout<<"lumiTot="<<lumiTot<<" +/- "<<sqrt(lumiTotErr)<<endl;
00029 return 0;
00030 }
00031
00032 string run = line.substr(0,8);
00033 int runNum = atoi(run.data());
00034
00035
00036
00037
00038
00039
00040
00041 TString fullInpName=iPath; fullInpName+=run;
00042 fullInpName+=".wana.hist.root";
00043 fd=new TFile(fullInpName);
00044
00045 tmp=(TH1F*)fd->Get(Form("lumi_AbortGap1_coinBin%d",BTH3coinBin));
00046 int nAbortGap1=tmp->Integral();
00047 tmp=(TH1F*)fd->Get(Form("lumi_AbortGap2_coinBin%d",BTH3coinBin));
00048 int nAbortGap2=tmp->Integral();
00049 float nSBB=nAbortGap1*120/11+nAbortGap2*120/9;
00050 tmp=(TH1F*)fd->Get(Form("lumi_nBTH3coin_coinBin%d",BTH3coinBin));
00051 float nBHT3=tmp->Integral();
00052 tmp=(TH1F*)fd->Get("lumi_GoodvsT");
00053 float fDet=tmp->Integral();
00054
00055
00056 float nTrig=(nBHT3-nAbortGap1*110.0/8.0-nAbortGap2*110.0/8.0)*BHT3prescale/fDet;
00057 float lumi=nTrig/BHT3xs;
00058 lumiTot+=lumi;
00059 float lumiErr=0;
00060 if(nBHT3>0.) lumiErr=lumi/sqrt(nBHT3);
00061 else cout<<runNum<<","<<nBHT3<<endl;
00062 lumiTotErr+=lumiErr*lumiErr;
00063
00064 outfile<<runNum<<","<<nSBB<<","<<nBHT3<<","<<fDet<<","<<lumi<<","<<lumiErr<<endl;
00065
00066 }
00067
00068 return 0;
00069
00070 }
00071