File indexing completed on 2024-04-06 12:23:23
0001 #include <TFile.h>
0002
0003 int loadme = gSystem->Load("libRooFit.so");
0004 int loadme2 = gSystem->Load("libPhysicsToolsFWLite.so");
0005 #include "PhysicsTools/FWLite/interface/Scanner.h"
0006
0007 void testScanner_CINT() {
0008 gROOT->SetStyle ("Plain");
0009 gStyle->SetPalette(1);
0010 gStyle->SetHistMinimumZero(1);
0011
0012 fwlite::Event ev(gFile);
0013 fwlite::Scanner<std::vector<reco::Track> > sc(&ev, "generalTracks");
0014
0015 TCanvas *c1 = new TCanvas("c1", "c1");
0016 sc.scan("pt:eta","quality('highPurity')",2);
0017
0018 sc.setMaxEvents(200);
0019 double c = sc.count("quality('highPurity')");
0020 std::cout << "Found " << c << " highPurity tracks." << std::endl;
0021 double ce = sc.countEvents();
0022 std::cout << "Found " << ce << " events." << std::endl;
0023
0024 TH1 *heta = sc.draw("eta");
0025 heta->Sumw2(); heta->Scale(1.0/sc.countEvents());
0026 c1->Print("eta.png");
0027 heta->SetLineColor(kBlue);
0028 TH1 *hp = sc.draw("eta", "quality('highPurity')", "SAME");
0029 hp->Sumw2(); hp->Scale(1.0/sc.countEvents());
0030 c1->Print("eta_and_hp.png");
0031
0032 TH1 *hb = sc.draw("pt", "abs(eta)<1 && pt < 5", "", "hbarrel");
0033 TH1 *he = sc.draw("pt", "abs(eta)>1 && pt < 5", "", "hendcaps");
0034 hb->Draw();
0035 c1->Print("barrel_1.png");
0036 hbarrel->Draw();
0037 c1->Print("barrel_2.png");
0038 he->Draw();
0039 c1->Print("endcaps_1.png");
0040 hendcaps->Draw();
0041 c1->Print("endcaps_2.png");
0042
0043 hb = sc.draw("pt", "abs(eta)<1 && pt < 5", "NORM");
0044 hb->SetLineColor(2);
0045 c1->Print("normalized_pt.png");
0046 he = sc.draw("pt", "abs(eta)>1 && pt < 5", "NORM SAME");
0047 he->SetLineColor(4);
0048 c1->Print("normalized_pts.png");
0049
0050 sc.draw("eta", 5, -2.5, 2.5);
0051 c1->Print("eta_binned.png");
0052
0053 double etabins[4] = { -2.5, -1, 1, 2.5 };
0054 sc.draw("eta", 3, etabins, "quality('loose')");
0055 c1->Print("eta_specialbins.png");
0056
0057 TProfile *p = sc.drawProf("eta", 5, -2.5, 2.5, "pt", "quality('loose')");
0058 p->SetLineColor(kRed);
0059 c1->Print("eta_prof_pt.png");
0060
0061 sc.drawProf("eta", "pt", "quality('highPurity')", "SAME");
0062 c1->Print("eta_prof_pt_same.png");
0063
0064 sc.draw2D("pt", 5, 0, 5, "eta", 4, -2.5, 2.5, "quality('highPurity')", "COLZ");
0065 c1->Print("pt_eta_2d_manual.png");
0066 sc.draw2D("pt", "eta", "quality('highPurity') && pt <= 5", "COLZ");
0067 c1->Print("pt_eta_2d_auto.png");
0068
0069 TGraph *g = sc.drawGraph("pt","eta", "quality('highPurity') && pt <= 5");
0070 g->SetMarkerStyle(8);
0071 c1->Print("pt_eta_2d_graph.png");
0072
0073
0074 fwlite::ObjectCountSelector<vector<reco::Track> > ntracks("generalTracks","","", "pt > 0.5 && abs(eta)<1", 2);
0075 sc.addEventSelector(&ntracks);
0076 TH1 *heta2 = sc.draw("eta",5,-2.5,2.5);
0077 heta2->Sumw2(); heta2->Scale(1.0/sc.countEvents()); heta2->SetLineColor(4);
0078 ntracks.setMin(0);
0079 heta = sc.draw("eta","","SAME");
0080 heta->Sumw2(); heta->Scale(1.0/sc.countEvents());
0081 c1->Print("eta_twotracks.png");
0082
0083 sc.setMaxEvents(20);
0084 RooDataSet *ds = sc.fillDataSet("pt:eta:@hits=hitPattern.numberOfValidHits", "@highPurity=quality('highPurity'):@highPt=pt>2", "pt > 0.5");
0085 ds->Print("v");
0086 delete ds;
0087 }