// MXL 10/03/2019 // // DP detectorID == 55,56,57,58; and 59, 60,61,62 // // if(hit->get_detector_id() >= 55 and hit->get_detector_id() <=62) { // if(parID_nhits_dp.find(track_id)!=parID_nhits_dp.end()) // parID_nhits_dp[track_id] = parID_nhits_dp[track_id]+1; // else // parID_nhits_dp[track_id] = 1; // // { gROOT->Reset(); // gROOT->SetStyle("Plain"); // gStyle->SetOptStat("Plain"); // gStyle->SetPadLeftMargin(0.15); // gStyle->SetPadBottomMargin(0.2); // gStyle->SetLineWidth(1.5); // TCanvas * c1 = new TCanvas("c1","Truth",10,20,1000,1000); c1 = new TCanvas("c1","Truth Tracks",10,20,1000,1000); c2 = new TCanvas("c2","Reco'd single-muons",100,200,1000,800); c3 = new TCanvas("c3","Reco'd di-muons",200,300,1000,1000); c4 = new TCanvas("c4","Reco'd single-muon cuts",300,400,800,800); // TCut XX1 = "dimu_mass<10"; // reconstructed dimuons XX1 = "dimu_mass<10 && dimu_mass > 0.5"; // reconstructed dimuons XX2 = "detectorID>54 && detectorID<63"; //DP has hits //-- reco'd track // XX3 = "n_tracks>0&&gy_st1<1000&&gndp>1&&gpz_st1>20 && abs(gpy_st1)>2.0 && rec_id<1000"; XX3 = "n_tracks>0&&gy_st1<1000&&gndp>1&&gpz_st1>20 && abs(gpy_st1)>1.0 && rec_id<1000"; // -- define variables const char* reco_vz = "613 - gy_st1/gpy_st1*sqrt(gpx_st1**2 + gpy_st1**2 + gpz_st1**2)"; //--- global --- c1->Divide(4,3); c1->cd(1)->SetLogy(); Truth->Draw("n_tracks"); c1->cd(2)->SetLogy(); Truth->Draw("detectorID"); // -- detectorID[74 = max # of hits] c1->cd(3)->SetLogy(); Truth->Draw("detectorZ"); // -- detectorZ[74] c1->cd(4)->SetLogy(); Truth->Draw("nHits"); // c1->cd(5); Truth->Draw("pid[0]"); c1->cd(6); Truth->Draw("pid[1]"); c1->cd(7)->SetLogy(); Truth->Draw("gvz[0]"); Truth->Draw("vz[0]","","same"); c1->cd(8); Truth->Draw("gndp[0]"); c1->cd(9)->SetLogy(); Truth->Draw("dimu_gmass[0]"); Truth->Draw("dimu_mass[0]","","same"); c1->cd(10)->SetLogy(); // Truth->Draw("dimu_gmass[0]"); Truth->Draw("dimu_mass[0]","dimu_mass[0]<100"); c1->cd(11)->SetLogy(); Truth->Draw("gndimu"); c1->cd(12)->SetLogy(); Truth->Draw("dimu_gpz[0]"); //-- Reco'd single muons & DP detectors ---- c2->Divide(3,2); c2->cd(1); Truth->Draw(reco_vz,XX3); // at least one reco's muon c2->cd(2); Truth->Draw("pz_st1[0]", XX3); // -- pz_st1[4] c2->cd(3); Truth->Draw("pz_st1[1]", XX3); // -- pz_st1[4] c2->cd(4); Truth->Draw("gpz", XX3); // -- gpz[4] c2->cd(5); Truth->Draw("pz_st1-gpz", XX3); c2->cd(6); Truth->Draw("gndp", XX3); // -- gndp[4] //-- Reco'd dimuons & DP detectors ---- c3->Divide(3,3); c3->cd(1); Truth->Draw("dimu_mass",XX1); // dimu_mass < 10 c3->cd(2); Truth->Draw("gndp[0]",XX1); c3->cd(3); Truth->Draw("gpz[0]",XX1); Truth->Draw("pz[0]",XX1,"same"); c3->cd(4); Truth->Draw("gpz[0]:pz[0]", XX1); c3->cd(5); Truth->Draw("vx[0]:vy[0]",XX1); c3->cd(6); Truth->Draw("vx[0]:vx[1]",XX1); c3->cd(7); Truth->Draw("detectorID",XX1); c3->cd(8); Truth->Draw("detectorZ",XX1); c3->cd(9); Truth->Draw("eventID",XX1); // -- single muon cuts --- // XX3 = "n_tracks>0&&gy_st1<1000&&gndp>1&&gpz_st1>20 && abs(gpy_st1)>2.0 && rec_id<1000"; c4->cd()->Divide(3,2); c4->cd(1); Truth->Draw("n_tracks",XX3); c4->cd(2); Truth->Draw("gy_st1",XX3) ; c4->cd(3); Truth->Draw("gndp",XX3); c4->cd(4); Truth->Draw("gpz_st1", XX3); c4->cd(5); Truth->Draw("gpy_st1", XX3); c4->cd(6); Truth->Draw("rec_id", XX3); }