![]() |
|
|||
File indexing completed on 2024-04-06 12:24:13
0001 //================================================================================================ 0002 // 0003 // 0004 //________________________________________________________________________________________________ 0005 0006 #if !defined(__CINT__) || defined(__MAKECINT__) 0007 #include <TROOT.h> // access to gROOT, entry point to ROOT system 0008 #include <TSystem.h> // interface to OS 0009 #include <TStyle.h> // class to handle ROOT plotting style 0010 #include <TCanvas.h> // class for drawing 0011 #include <TBenchmark.h> // class to track macro running statistics 0012 #include <iostream> // standard I/O 0013 #include <iomanip> 0014 #include <fstream> 0015 0016 // RooFit headers 0017 #include "RooRealVar.h" 0018 #include "RooDataSet.h" 0019 #include "RooCategory.h" 0020 #include "RooArgList.h" 0021 #include "RooDataHist.h" 0022 #include "RooFormulaVar.h" 0023 #include "RooHistPdf.h" 0024 #include "RooAddPdf.h" 0025 #include "RooSimultaneous.h" 0026 #include "RooGaussian.h" 0027 #include "RooConstVar.h" 0028 #include "RooFitResult.h" 0029 #include "RooExponential.h" 0030 #include "RooFFTConvPdf.h" 0031 0032 #include "TFile.h" 0033 #include "TH1D.h" 0034 #include "TPaveText.h" 0035 #include "RooPlot.h" 0036 0037 #endif 0038 0039 #define LUMINOSITY 2.88 //(in pb^-1) 0040 #define NBINSPASS 60 0041 #define NBINSFAIL 24 0042 0043 ofstream effTextFile("efficiency.txt"); 0044 0045 double ErrorInProduct(double x, double errx, double y, double erry, double corr) { 0046 double xFrErr = errx / x; 0047 double yFrErr = erry / y; 0048 return sqrt(pow(xFrErr, 2) + pow(yFrErr, 2) + 2.0 * corr * xFrErr * yFrErr) * x * y; 0049 } 0050 0051 RooRealVar* LoadParameters(string filename, string label, string parname) { 0052 RooRealVar* newVar = 0; 0053 0054 // now read in the parameters from the file. Stored in the file as 0055 // parameter manager | name | initial val | min | max | step 0056 fstream parameter_file(filename.c_str(), ios::in); 0057 if (!parameter_file) { 0058 cout << "Error: Couldn't open parameters file " << filename << endl; 0059 return false; 0060 } 0061 0062 string name; 0063 string category; 0064 double initial_val, min, max, step; 0065 0066 char c; 0067 Bool_t foundPar = kFALSE; 0068 while (true) { 0069 // skip white spaces and look for a # 0070 while (parameter_file.get(c)) { 0071 if (isspace(c) || c == '\n') 0072 continue; 0073 else if (c == '#') 0074 while (c != '\n') 0075 parameter_file.get(c); 0076 else { 0077 parameter_file.putback(c); 0078 break; 0079 } 0080 } 0081 if (parameter_file.fail()) 0082 break; 0083 0084 parameter_file >> category >> name >> initial_val >> min >> max >> step; 0085 if (parameter_file.fail()) 0086 break; 0087 0088 if (category == label && parname == name) { 0089 // create a new fit parameter 0090 newVar = new RooRealVar(name.c_str(), name.c_str(), initial_val, min, max); 0091 if (step == 0) { 0092 newVar->setConstant(kTRUE); 0093 } 0094 0095 break; 0096 } 0097 } //end while loop 0098 0099 if (!newVar) { 0100 cout << "Could not load parameter " << parname << " from file " << filename << " , category " << label << endl; 0101 assert(newVar); 0102 } 0103 0104 return newVar; 0105 } 0106 0107 void PrintParameter(RooRealVar* var, string label, string name) { 0108 cout.width(50); 0109 cout << left << label; 0110 cout.width(40); 0111 cout << left << name; 0112 cout.precision(5); 0113 cout.width(15); 0114 cout << left << scientific << var->getVal(); 0115 cout.width(15); 0116 cout << left << scientific << var->getMin(); 0117 cout.width(15); 0118 cout << left << scientific << var->getMax(); 0119 cout.width(15); 0120 if (var->getAttribute("Constant")) { 0121 cout << left << scientific << 0.0; 0122 } else { 0123 cout << left << scientific << 1.0; 0124 } 0125 cout << endl; 0126 } 0127 0128 void performFit(string inputDir, 0129 string inputParameterFile, 0130 string label, 0131 string PassInputDataFilename, 0132 string FailInputDataFilename, 0133 string PassSignalTemplateHistName, 0134 string FailSignalTemplateHistName) { 0135 gBenchmark->Start("fitZCat"); 0136 0137 //-------------------------------------------------------------------------------------------------------------- 0138 // Settings 0139 //============================================================================================================== 0140 0141 const Double_t mlow = 60; 0142 const Double_t mhigh = 120; 0143 const Int_t nbins = 24; 0144 0145 TString effType = inputDir; 0146 0147 // The fit variable - lepton invariant mass 0148 RooRealVar* rooMass_ = new RooRealVar("Mass", "m_{ee}", mlow, mhigh, "GeV/c^{2}"); 0149 RooRealVar Mass = *rooMass_; 0150 Mass.setBins(nbins); 0151 0152 // Make the category variable that defines the two fits, 0153 // namely whether the probe passes or fails the eff criteria. 0154 RooCategory sample("sample", ""); 0155 sample.defineType("Pass", 1); 0156 sample.defineType("Fail", 2); 0157 0158 RooDataSet* dataPass = RooDataSet::read((inputDir + PassInputDataFilename).c_str(), RooArgList(Mass)); 0159 RooDataSet* dataFail = RooDataSet::read((inputDir + FailInputDataFilename).c_str(), RooArgList(Mass)); 0160 0161 RooDataSet* dataCombined = new RooDataSet("dataCombined", 0162 "dataCombined", 0163 RooArgList(Mass), 0164 RooFit::Index(sample), 0165 RooFit::Import("Pass", *dataPass), 0166 RooFit::Import("Fail", *dataFail)); 0167 0168 //********************************************************************************************* 0169 //Define Free Parameters 0170 //********************************************************************************************* 0171 RooRealVar* ParNumSignal = LoadParameters(inputParameterFile, label, "ParNumSignal"); 0172 RooRealVar* ParNumBkgPass = LoadParameters(inputParameterFile, label, "ParNumBkgPass"); 0173 RooRealVar* ParNumBkgFail = LoadParameters(inputParameterFile, label, "ParNumBkgFail"); 0174 RooRealVar* ParEfficiency = LoadParameters(inputParameterFile, label, "ParEfficiency"); 0175 RooRealVar* ParPassBackgroundExpCoefficient = 0176 LoadParameters(inputParameterFile, label, "ParPassBackgroundExpCoefficient"); 0177 RooRealVar* ParFailBackgroundExpCoefficient = 0178 LoadParameters(inputParameterFile, label, "ParFailBackgroundExpCoefficient"); 0179 RooRealVar* ParPassSignalMassShift = LoadParameters(inputParameterFile, label, "ParPassSignalMassShift"); 0180 RooRealVar* ParFailSignalMassShift = LoadParameters(inputParameterFile, label, "ParFailSignalMassShift"); 0181 RooRealVar* ParPassSignalResolution = LoadParameters(inputParameterFile, label, "ParPassSignalResolution"); 0182 RooRealVar* ParFailSignalResolution = LoadParameters(inputParameterFile, label, "ParFailSignalResolution"); 0183 0184 // new RooRealVar ("ParPassSignalMassShift","ParPassSignalMassShift",-2.6079e-02,-10.0, 10.0); //ParPassSignalMassShift->setConstant(kTRUE); 0185 // RooRealVar* ParFailSignalMassShift = new RooRealVar ("ParFailSignalMassShift","ParFailSignalMassShift",7.2230e-01,-10.0, 10.0); //ParFailSignalMassShift->setConstant(kTRUE); 0186 // RooRealVar* ParPassSignalResolution = new RooRealVar ("ParPassSignalResolution","ParPassSignalResolution",6.9723e-01,0.0, 10.0); ParPassSignalResolution->setConstant(kTRUE); 0187 // RooRealVar* ParFailSignalResolution = new RooRealVar ("ParFailSignalResolution","ParFailSignalResolution",1.6412e+00,0.0, 10.0); ParFailSignalResolution->setConstant(kTRUE); 0188 0189 //********************************************************************************************* 0190 // 0191 //Load Signal PDFs 0192 // 0193 //********************************************************************************************* 0194 0195 TFile* Zeelineshape_file = new TFile("res/photonEfffromZee.dflag1.eT1.2.gT40.mt15.root", "READ"); 0196 TH1* histTemplatePass = (TH1D*)Zeelineshape_file->Get(PassSignalTemplateHistName.c_str()); 0197 TH1* histTemplateFail = (TH1D*)Zeelineshape_file->Get(FailSignalTemplateHistName.c_str()); 0198 0199 //Introduce mass shift coordinate transformation 0200 // RooFormulaVar PassShiftedMass("PassShiftedMass","@0-@1",RooArgList(Mass,*ParPassSignalMassShift)); 0201 // RooFormulaVar FailShiftedMass("FailShiftedMass","@0-@1",RooArgList(Mass,*ParFailSignalMassShift)); 0202 0203 RooGaussian* PassSignalResolutionFunction = new RooGaussian("PassSignalResolutionFunction", 0204 "PassSignalResolutionFunction", 0205 Mass, 0206 *ParPassSignalMassShift, 0207 *ParPassSignalResolution); 0208 RooGaussian* FailSignalResolutionFunction = new RooGaussian("FailSignalResolutionFunction", 0209 "FailSignalResolutionFunction", 0210 Mass, 0211 *ParFailSignalMassShift, 0212 *ParFailSignalResolution); 0213 0214 RooDataHist* dataHistPass = new RooDataHist("dataHistPass", "dataHistPass", RooArgSet(Mass), histTemplatePass); 0215 RooDataHist* dataHistFail = new RooDataHist("dataHistFail", "dataHistFail", RooArgSet(Mass), histTemplateFail); 0216 RooHistPdf* signalShapePassTemplatePdf = 0217 new RooHistPdf("signalShapePassTemplatePdf", "signalShapePassTemplatePdf", Mass, *dataHistPass, 1); 0218 RooHistPdf* signalShapeFailTemplatePdf = 0219 new RooHistPdf("signalShapeFailTemplatePdf", "signalShapeFailTemplatePdf", Mass, *dataHistFail, 1); 0220 0221 RooFFTConvPdf* signalShapePassPdf = new RooFFTConvPdf( 0222 "signalShapePassPdf", "signalShapePassPdf", Mass, *signalShapePassTemplatePdf, *PassSignalResolutionFunction, 2); 0223 RooFFTConvPdf* signalShapeFailPdf = new RooFFTConvPdf( 0224 "signalShapeFailPdf", "signalShapeFailPdf", Mass, *signalShapeFailTemplatePdf, *FailSignalResolutionFunction, 2); 0225 0226 // Now define some efficiency/yield variables 0227 RooFormulaVar* NumSignalPass = 0228 new RooFormulaVar("NumSignalPass", "ParEfficiency*ParNumSignal", RooArgList(*ParEfficiency, *ParNumSignal)); 0229 RooFormulaVar* NumSignalFail = 0230 new RooFormulaVar("NumSignalFail", "(1.0-ParEfficiency)*ParNumSignal", RooArgList(*ParEfficiency, *ParNumSignal)); 0231 0232 //********************************************************************************************* 0233 // 0234 // Create Background PDFs 0235 // 0236 //********************************************************************************************* 0237 RooExponential* bkgPassPdf = new RooExponential("bkgPassPdf", "bkgPassPdf", Mass, *ParPassBackgroundExpCoefficient); 0238 RooExponential* bkgFailPdf = new RooExponential("bkgFailPdf", "bkgFailPdf", Mass, *ParFailBackgroundExpCoefficient); 0239 0240 //********************************************************************************************* 0241 // 0242 // Create Total PDFs 0243 // 0244 //********************************************************************************************* 0245 RooAddPdf pdfPass( 0246 "pdfPass", "pdfPass", RooArgList(*signalShapePassPdf, *bkgPassPdf), RooArgList(*NumSignalPass, *ParNumBkgPass)); 0247 RooAddPdf pdfFail( 0248 "pdfFail", "pdfFail", RooArgList(*signalShapeFailPdf, *bkgFailPdf), RooArgList(*NumSignalFail, *ParNumBkgFail)); 0249 0250 // PDF for simultaneous fit 0251 RooSimultaneous totalPdf("totalPdf", "totalPdf", sample); 0252 totalPdf.addPdf(pdfPass, "Pass"); 0253 // totalPdf.Print(); 0254 totalPdf.addPdf(pdfFail, "Fail"); 0255 totalPdf.Print(); 0256 0257 //********************************************************************************************* 0258 // 0259 // Perform Fit 0260 // 0261 //********************************************************************************************* 0262 RooFitResult* fitResult = 0; 0263 0264 // ********* Fix with Migrad first ********** // 0265 fitResult = totalPdf.fitTo(*dataCombined, RooFit::Save(true), RooFit::Extended(true), RooFit::PrintLevel(-1)); 0266 fitResult->Print("v"); 0267 0268 // // ********* Fit With Minos ********** // 0269 // fitResult = totalPdf.fitTo(*dataCombined, RooFit::Save(true), 0270 // RooFit::Extended(true), RooFit::PrintLevel(-1), RooFit::Minos()); 0271 // fitResult->Print("v"); 0272 0273 // // ********* Fix Mass Shift and Fit For Resolution ********** // 0274 // ParPassSignalMassShift->setConstant(kTRUE); 0275 // ParFailSignalMassShift->setConstant(kTRUE); 0276 // ParPassSignalResolution->setConstant(kFALSE); 0277 // ParFailSignalResolution->setConstant(kFALSE); 0278 // fitResult = totalPdf.fitTo(*dataCombined, RooFit::Save(true), 0279 // RooFit::Extended(true), RooFit::PrintLevel(-1)); 0280 // fitResult->Print("v"); 0281 0282 // // ********* Do Final Fit ********** // 0283 // ParPassSignalMassShift->setConstant(kFALSE); 0284 // ParFailSignalMassShift->setConstant(kFALSE); 0285 // ParPassSignalResolution->setConstant(kTRUE); 0286 // ParFailSignalResolution->setConstant(kTRUE); 0287 // fitResult = totalPdf.fitTo(*dataCombined, RooFit::Save(true), 0288 // RooFit::Extended(true), RooFit::PrintLevel(-1)); 0289 // fitResult->Print("v"); 0290 0291 double nSignalPass = NumSignalPass->getVal(); 0292 double nSignalFail = NumSignalFail->getVal(); 0293 double denominator = nSignalPass + nSignalFail; 0294 0295 printf("\nFit results:\n"); 0296 if (fitResult->status() != 0) { 0297 std::cout << "ERROR: BAD FIT STATUS" << std::endl; 0298 } 0299 0300 printf(" Efficiency = %.4f +- %.4f\n", ParEfficiency->getVal(), ParEfficiency->getPropagatedError(*fitResult)); 0301 cout << "Signal Pass: " << nSignalPass << endl; 0302 cout << "Signal Fail: " << nSignalFail << endl; 0303 0304 cout << "*********************************************************************\n"; 0305 cout << "Final Parameters\n"; 0306 cout << "*********************************************************************\n"; 0307 PrintParameter(ParNumSignal, label, "ParNumSignal"); 0308 PrintParameter(ParNumBkgPass, label, "ParNumBkgPass"); 0309 PrintParameter(ParNumBkgFail, label, "ParNumBkgFail"); 0310 PrintParameter(ParEfficiency, label, "ParEfficiency"); 0311 PrintParameter(ParPassBackgroundExpCoefficient, label, "ParPassBackgroundExpCoefficient"); 0312 PrintParameter(ParFailBackgroundExpCoefficient, label, "ParFailBackgroundExpCoefficient"); 0313 PrintParameter(ParPassSignalMassShift, label, "ParPassSignalMassShift"); 0314 PrintParameter(ParFailSignalMassShift, label, "ParFailSignalMassShift"); 0315 PrintParameter(ParPassSignalResolution, label, "ParPassSignalResolution"); 0316 PrintParameter(ParFailSignalResolution, label, "ParFailSignalResolution"); 0317 cout << endl << endl; 0318 0319 //-------------------------------------------------------------------------------------------------------------- 0320 // Make plots 0321 //============================================================================================================== 0322 TFile* canvasFile = new TFile("Efficiency_FitResults.root", "UPDATE"); 0323 0324 RooAbsData::ErrorType errorType = RooAbsData::Poisson; 0325 0326 Mass.setBins(NBINSPASS); 0327 TString cname = TString((label + "_Pass").c_str()); 0328 TCanvas* c = new TCanvas(cname, cname, 800, 600); 0329 RooPlot* frame1 = Mass.frame(); 0330 frame1->SetMinimum(0); 0331 dataPass->plotOn(frame1, RooFit::DataError(errorType)); 0332 pdfPass.plotOn(frame1, RooFit::ProjWData(*dataPass), RooFit::Components(*bkgPassPdf), RooFit::LineColor(kRed)); 0333 pdfPass.plotOn(frame1, RooFit::ProjWData(*dataPass)); 0334 frame1->Draw("e0"); 0335 0336 TPaveText* plotlabel = new TPaveText(0.23, 0.87, 0.43, 0.92, "NDC"); 0337 plotlabel->SetTextColor(kBlack); 0338 plotlabel->SetFillColor(kWhite); 0339 plotlabel->SetBorderSize(0); 0340 plotlabel->SetTextAlign(12); 0341 plotlabel->SetTextSize(0.03); 0342 plotlabel->AddText("CMS Preliminary 2010"); 0343 TPaveText* plotlabel2 = new TPaveText(0.23, 0.82, 0.43, 0.87, "NDC"); 0344 plotlabel2->SetTextColor(kBlack); 0345 plotlabel2->SetFillColor(kWhite); 0346 plotlabel2->SetBorderSize(0); 0347 plotlabel2->SetTextAlign(12); 0348 plotlabel2->SetTextSize(0.03); 0349 plotlabel2->AddText("#sqrt{s} = 7 TeV"); 0350 TPaveText* plotlabel3 = new TPaveText(0.23, 0.75, 0.43, 0.80, "NDC"); 0351 plotlabel3->SetTextColor(kBlack); 0352 plotlabel3->SetFillColor(kWhite); 0353 plotlabel3->SetBorderSize(0); 0354 plotlabel3->SetTextAlign(12); 0355 plotlabel3->SetTextSize(0.03); 0356 char temp[100]; 0357 sprintf(temp, "%.4f", LUMINOSITY); 0358 plotlabel3->AddText((string("#int#font[12]{L}dt = ") + temp + string(" pb^{ -1}")).c_str()); 0359 TPaveText* plotlabel4 = new TPaveText(0.6, 0.82, 0.8, 0.87, "NDC"); 0360 plotlabel4->SetTextColor(kBlack); 0361 plotlabel4->SetFillColor(kWhite); 0362 plotlabel4->SetBorderSize(0); 0363 plotlabel4->SetTextAlign(12); 0364 plotlabel4->SetTextSize(0.03); 0365 double nsig = ParNumSignal->getVal(); 0366 double nErr = ParNumSignal->getError(); 0367 double e = ParEfficiency->getVal(); 0368 double eErr = ParEfficiency->getError(); 0369 double corr = fitResult->correlation(*ParEfficiency, *ParNumSignal); 0370 double err = ErrorInProduct(nsig, nErr, e, eErr, corr); 0371 sprintf(temp, "Signal = %.2f #pm %.2f", NumSignalPass->getVal(), err); 0372 plotlabel4->AddText(temp); 0373 TPaveText* plotlabel5 = new TPaveText(0.6, 0.77, 0.8, 0.82, "NDC"); 0374 plotlabel5->SetTextColor(kBlack); 0375 plotlabel5->SetFillColor(kWhite); 0376 plotlabel5->SetBorderSize(0); 0377 plotlabel5->SetTextAlign(12); 0378 plotlabel5->SetTextSize(0.03); 0379 sprintf(temp, "Bkg = %.2f #pm %.2f", ParNumBkgPass->getVal(), ParNumBkgPass->getError()); 0380 plotlabel5->AddText(temp); 0381 TPaveText* plotlabel6 = new TPaveText(0.6, 0.87, 0.8, 0.92, "NDC"); 0382 plotlabel6->SetTextColor(kBlack); 0383 plotlabel6->SetFillColor(kWhite); 0384 plotlabel6->SetBorderSize(0); 0385 plotlabel6->SetTextAlign(12); 0386 plotlabel6->SetTextSize(0.03); 0387 plotlabel6->AddText("Passing probes"); 0388 TPaveText* plotlabel7 = new TPaveText(0.6, 0.72, 0.8, 0.77, "NDC"); 0389 plotlabel7->SetTextColor(kBlack); 0390 plotlabel7->SetFillColor(kWhite); 0391 plotlabel7->SetBorderSize(0); 0392 plotlabel7->SetTextAlign(12); 0393 plotlabel7->SetTextSize(0.03); 0394 sprintf(temp, "Eff = %.3f #pm %.3f", ParEfficiency->getVal(), ParEfficiency->getErrorHi()); 0395 plotlabel7->AddText(temp); 0396 TPaveText* plotlabel8 = new TPaveText(0.6, 0.72, 0.8, 0.66, "NDC"); 0397 plotlabel8->SetTextColor(kBlack); 0398 plotlabel8->SetFillColor(kWhite); 0399 plotlabel8->SetBorderSize(0); 0400 plotlabel8->SetTextAlign(12); 0401 plotlabel8->SetTextSize(0.03); 0402 sprintf(temp, "#chi^{2}/DOF = %.3f", frame1->chiSquare()); 0403 plotlabel8->AddText(temp); 0404 0405 plotlabel4->Draw(); 0406 plotlabel5->Draw(); 0407 plotlabel6->Draw(); 0408 plotlabel7->Draw(); 0409 plotlabel8->Draw(); 0410 0411 // c->SaveAs( cname + TString(".eps")); 0412 c->SaveAs(cname + TString(".gif")); 0413 canvasFile->WriteTObject(c, c->GetName(), "WriteDelete"); 0414 0415 Mass.setBins(NBINSFAIL); 0416 cname = TString((label + "_Fail").c_str()); 0417 TCanvas* c2 = new TCanvas(cname, cname, 800, 600); 0418 RooPlot* frame2 = Mass.frame(); 0419 frame2->SetMinimum(0); 0420 dataFail->plotOn(frame2, RooFit::DataError(errorType)); 0421 pdfFail.plotOn(frame2, RooFit::ProjWData(*dataFail), RooFit::Components(*bkgFailPdf), RooFit::LineColor(kRed)); 0422 pdfFail.plotOn(frame2, RooFit::ProjWData(*dataFail)); 0423 frame2->Draw("e0"); 0424 0425 plotlabel = new TPaveText(0.23, 0.87, 0.43, 0.92, "NDC"); 0426 plotlabel->SetTextColor(kBlack); 0427 plotlabel->SetFillColor(kWhite); 0428 plotlabel->SetBorderSize(0); 0429 plotlabel->SetTextAlign(12); 0430 plotlabel->SetTextSize(0.03); 0431 plotlabel->AddText("CMS Preliminary 2010"); 0432 plotlabel2 = new TPaveText(0.23, 0.82, 0.43, 0.87, "NDC"); 0433 plotlabel2->SetTextColor(kBlack); 0434 plotlabel2->SetFillColor(kWhite); 0435 plotlabel2->SetBorderSize(0); 0436 plotlabel2->SetTextAlign(12); 0437 plotlabel2->SetTextSize(0.03); 0438 plotlabel2->AddText("#sqrt{s} = 7 TeV"); 0439 plotlabel3 = new TPaveText(0.23, 0.75, 0.43, 0.80, "NDC"); 0440 plotlabel3->SetTextColor(kBlack); 0441 plotlabel3->SetFillColor(kWhite); 0442 plotlabel3->SetBorderSize(0); 0443 plotlabel3->SetTextAlign(12); 0444 plotlabel3->SetTextSize(0.03); 0445 sprintf(temp, "%.4f", LUMINOSITY); 0446 plotlabel3->AddText((string("#int#font[12]{L}dt = ") + temp + string(" pb^{ -1}")).c_str()); 0447 plotlabel4 = new TPaveText(0.6, 0.82, 0.8, 0.87, "NDC"); 0448 plotlabel4->SetTextColor(kBlack); 0449 plotlabel4->SetFillColor(kWhite); 0450 plotlabel4->SetBorderSize(0); 0451 plotlabel4->SetTextAlign(12); 0452 plotlabel4->SetTextSize(0.03); 0453 err = ErrorInProduct(nsig, nErr, 1.0 - e, eErr, corr); 0454 sprintf(temp, "Signal = %.2f #pm %.2f", NumSignalFail->getVal(), err); 0455 plotlabel4->AddText(temp); 0456 plotlabel5 = new TPaveText(0.6, 0.77, 0.8, 0.82, "NDC"); 0457 plotlabel5->SetTextColor(kBlack); 0458 plotlabel5->SetFillColor(kWhite); 0459 plotlabel5->SetBorderSize(0); 0460 plotlabel5->SetTextAlign(12); 0461 plotlabel5->SetTextSize(0.03); 0462 sprintf(temp, "Bkg = %.2f #pm %.2f", ParNumBkgFail->getVal(), ParNumBkgFail->getError()); 0463 plotlabel5->AddText(temp); 0464 plotlabel6 = new TPaveText(0.6, 0.87, 0.8, 0.92, "NDC"); 0465 plotlabel6->SetTextColor(kBlack); 0466 plotlabel6->SetFillColor(kWhite); 0467 plotlabel6->SetBorderSize(0); 0468 plotlabel6->SetTextAlign(12); 0469 plotlabel6->SetTextSize(0.03); 0470 plotlabel6->AddText("Failing probes"); 0471 plotlabel7 = new TPaveText(0.6, 0.72, 0.8, 0.77, "NDC"); 0472 plotlabel7->SetTextColor(kBlack); 0473 plotlabel7->SetFillColor(kWhite); 0474 plotlabel7->SetBorderSize(0); 0475 plotlabel7->SetTextAlign(12); 0476 plotlabel7->SetTextSize(0.03); 0477 sprintf( 0478 temp, "Eff = %.3f #pm %.3f", ParEfficiency->getVal(), ParEfficiency->getErrorHi(), ParEfficiency->getErrorLo()); 0479 plotlabel7->AddText(temp); 0480 plotlabel8 = new TPaveText(0.6, 0.72, 0.8, 0.66, "NDC"); 0481 plotlabel8->SetTextColor(kBlack); 0482 plotlabel8->SetFillColor(kWhite); 0483 plotlabel8->SetBorderSize(0); 0484 plotlabel8->SetTextAlign(12); 0485 plotlabel8->SetTextSize(0.03); 0486 sprintf(temp, "#chi^{2}/DOF = %.3f", frame2->chiSquare()); 0487 plotlabel8->AddText(temp); 0488 0489 // plotlabel->Draw(); 0490 // plotlabel2->Draw(); 0491 // plotlabel3->Draw(); 0492 plotlabel4->Draw(); 0493 plotlabel5->Draw(); 0494 plotlabel6->Draw(); 0495 plotlabel7->Draw(); 0496 plotlabel8->Draw(); 0497 0498 c2->SaveAs(cname + TString(".gif")); 0499 // c2->SaveAs( cname + TString(".eps")); 0500 // c2->SaveAs( cname + TString(".root")); 0501 canvasFile->WriteTObject(c2, c2->GetName(), "WriteDelete"); 0502 0503 canvasFile->Close(); 0504 0505 effTextFile.width(40); 0506 effTextFile << label; 0507 effTextFile.width(20); 0508 effTextFile << setiosflags(ios::fixed) << setprecision(4) << left << ParEfficiency->getVal(); 0509 effTextFile.width(20); 0510 effTextFile << left << ParEfficiency->getErrorHi(); 0511 effTextFile.width(20); 0512 effTextFile << left << ParEfficiency->getErrorLo(); 0513 effTextFile.width(14); 0514 effTextFile << setiosflags(ios::fixed) << setprecision(2) << left << nSignalPass; 0515 effTextFile.width(14); 0516 effTextFile << left << nSignalFail << endl; 0517 } 0518 0519 void ElectronTagAndProbeFitter() { 0520 // ////////////////////////////////////////////////////////// 0521 effTextFile.width(40); 0522 effTextFile << left << "Type"; 0523 effTextFile.width(20); 0524 effTextFile << left << "Efficiency"; 0525 effTextFile.width(20); 0526 effTextFile << left << " Uncertainty(+) "; 0527 effTextFile.width(20); 0528 effTextFile << left << " Uncertainty(-) "; 0529 effTextFile.width(14); 0530 effTextFile << left << "NPass"; 0531 effTextFile.width(14); 0532 effTextFile << left << "NFail" << endl; 0533 0534 // ////////////////////////////////////////////////////////// 0535 0536 // ////////////////////////////////////////////////////////// 0537 // // Super cluster --> gsfElectron efficiency 0538 // ////////////////////////////////////////////////////////// 0539 0540 //************** 0541 //User Pass Template For Fail Sample - TPTree 0542 //************** 0543 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco", "Mass_TagPlusSCPassReco_Data_36", "Mass_TagPlusSCFailReco_Data_36", "Mass_TagPlusSCPassReco", "Mass_TagPlusSCPassReco" ); 0544 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCPassReco_EB_Pt20ToInf" ); 0545 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCPassReco_EE_Pt20ToInf" ); 0546 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCPassReco_EB_Pt20ToInf" ); 0547 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCPassReco_EE_Pt20ToInf" ); 0548 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCPassReco_EB_Pt20ToInf" ); 0549 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCPassReco_EE_Pt20ToInf" ); 0550 0551 //************** 0552 //User Fail Template For Fail Sample - TPTree 0553 //************** 0554 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco", "Mass_TagPlusSCPassReco_Data_36", "Mass_TagPlusSCFailReco_Data_36", "Mass_TagPlusSCPassReco", "Mass_TagPlusSCFailReco" ); 0555 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0556 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0557 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0558 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0559 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0560 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0561 0562 //************** 0563 //Impose WP95 Iso Cut on Photon probes - TPTree SYstematics 0564 //************** 0565 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80_WithPhotonIsoCut/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco", "Mass_TagPlusSCPassReco_Data_36", "Mass_TagPlusSCFailReco_Data_36", "Mass_TagPlusSCPassReco", "Mass_TagPlusSCFailReco" ); 0566 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80_WithPhotonIsoCut/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0567 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80_WithPhotonIsoCut/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0568 0569 //************** 0570 //Impose WP95 Iso Cut on Photon probes - BAMBU 0571 //************** 0572 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco", "Mass_TagPlusSCPassReco_Data_36", "Mass_TagPlusSCFailReco_Data_36", "Mass_TagPlusSCPassReco", "Mass_TagPlusSCFailReco" ); 0573 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0574 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0575 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0576 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0577 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EB_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EB_Pt20ToInf", "Mass_TagPlusSCFailReco_EB_Pt20ToInf" ); 0578 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_SCToReco_EE_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCFailReco_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusSCPassReco_EE_Pt20ToInf", "Mass_TagPlusSCFailReco_EE_Pt20ToInf" ); 0579 0580 // ////////////////////////////////////////////////////////// 0581 // // gsfElectron --> WP-95 selection efficiency 0582 // ////////////////////////////////////////////////////////// 0583 0584 //************** 0585 //TAG 80 - TPTree 0586 //************** 0587 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95", "Mass_TagPlusRecoPassVBTF95IdIso_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso", "Mass_TagPlusRecoFailVBTF95IdIso" ); 0588 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0589 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0590 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0591 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0592 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0593 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0594 0595 //************** 0596 //TAG 80 - BAMBU 0597 //************** 0598 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95", "Mass_TagPlusRecoPassVBTF95IdIso_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso", "Mass_TagPlusRecoFailVBTF95IdIso" ); 0599 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0600 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0601 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0602 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0603 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0604 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0605 0606 // //************** 0607 // //TAG 95 - BAMBU 0608 // //************** 0609 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95", "Mass_TagPlusRecoPassVBTF95IdIso_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso", "Mass_TagPlusRecoFailVBTF95IdIso" ); 0610 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0611 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0612 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0613 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0614 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0615 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP95/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0616 0617 //************** 0618 //TAG 60 - BAMBU 0619 //************** 0620 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95", "Mass_TagPlusRecoPassVBTF95IdIso_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso", "Mass_TagPlusRecoFailVBTF95IdIso" ); 0621 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0622 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0623 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0624 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0625 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0626 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP60/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0627 0628 // performFit("EfficiencyFitter/input/Data_36_09122010_JW_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EB", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EB_Pt20ToInf" ); 0629 // performFit("EfficiencyFitter/input/Data_36_09122010_JW_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF95_EE", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF95IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF95IdIso_EE_Pt20ToInf" ); 0630 0631 cout << "########################################" << endl; 0632 0633 // // ////////////////////////////////////////////////////////// 0634 // // // gsfElectron --> WP-80 selection efficiency 0635 // // ////////////////////////////////////////////////////////// 0636 0637 //************** 0638 //TAG 80 - TP 0639 //************** 0640 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80", "Mass_TagPlusRecoPassVBTF80IdIso_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso", "Mass_TagPlusRecoFailVBTF80IdIso" ); 0641 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0642 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0643 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0644 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0645 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0646 // performFit("EfficiencyFitter/input/Data_36_09122010_TP_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0647 0648 //************** 0649 //TAG 80 - BAMBU 0650 //************** 0651 0652 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80", "Mass_TagPlusRecoPassVBTF80IdIso_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso", "Mass_TagPlusRecoFailVBTF80IdIso" ); 0653 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0654 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0655 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0656 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36_Minus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0657 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EB_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EB_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EB_Pt20ToInf" ); 0658 // performFit("EfficiencyFitter/input/Data_36_09122010_TagWP80/", "EfficiencyFitter/results/Parameters.txt", "Efficiency_RecoToVBTF80_EE_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf_Data_36_Plus", "Mass_TagPlusRecoPassVBTF80IdIso_EE_Pt20ToInf", "Mass_TagPlusRecoFailVBTF80IdIso_EE_Pt20ToInf" ); 0659 0660 performFit("res/", 0661 "results/Parameters.txt", 0662 "Efficiency_Photon", 0663 "photonEfffromZee.passbar.dflag1.eT1.2.gT40.mt15.ptbin0.txt", 0664 "photonEfffromZee.failbar.dflag1.eT1.2.gT40.mt15.ptbin0.txt", 0665 "hh_Meg_barrel_mc_pt_0", 0666 "hh_Megf_barrel_mc_pt_0"); 0667 0668 // // ////////////////////////////////////////////////////////// 0669 // // // WP-95 --> HLT triggering efficiency 0670 // // ////////////////////////////////////////////////////////// 0671 0672 // cout << "########################################" << endl; 0673 0674 // // ////////////////////////////////////////////////////////// 0675 // // // WP-80 --> HLT triggering efficiency 0676 // // ////////////////////////////////////////////////////////// 0677 0678 // cout << "########################################" << endl; 0679 0680 effTextFile.close(); 0681 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |