TFile *fcut, *fData; TTree *t; DrawSieveCut(UInt_t FoilID, UInt_t Col, UInt_t Row) { TString SieveCut = Form("hcut_L_%d_%d_%d",FoilID,Col,Row); TCutG *cSieveCut = (TCutG*)gROOT->FindObject(SieveCut); if (!cSieveCut) return; cSieveCut->SetLineColor(6); cSieveCut->SetLineWidth(2); cSieveCut->Draw("L"); TLatex * SieveCutLabel = new TLatex( cSieveCut->GetMean(1) ,cSieveCut->GetMean(2)-2*cSieveCut->GetRMS(2) , Form("%d,%d",Col,Row)); SieveCutLabel->SetTextAlign(22); SieveCutLabel->SetTextColor(2); SieveCutLabel->SetTextSize(.03); SieveCutLabel->Draw(); } // A positive X value is to the beam left, a positive Y is too high. // Spectrometer Slit: (DX/DY from spectrometer centerline; DZ from target) // DX DY DZ // -0.34 4.49 1157 Double_t SieveOffX = (4.49)*1e-3; Double_t SieveOffY = (-0.34)*1e-3; Double_t ZPos = 1157*1e-3; Double_t SieveSpaceX = 1.025 * 25.400e-3; Double_t SieveSpaceY = .513 * 25.400e-3; Int_t NSieveSides = 3; DrawSieve() { Double_t MaxPlot = .1; for (Int_t x = -NSieveSides; x<=NSieveSides; x++) { TLine *l = new TLine(-MaxPlot,SieveSpaceX*x-SieveOffX,+MaxPlot,SieveSpaceX*x-SieveOffX); l->SetLineColor(3); l->Draw(); } for (Int_t y = -NSieveSides; y<=NSieveSides; y++) { TLine *l = new TLine(SieveSpaceY*y-SieveOffY,-MaxPlot,SieveSpaceY*y-SieveOffY,MaxPlot); l->SetLineColor(3); l->Draw(); } return; } PlotSieve(UInt_t FoilID = 4,TString PlotID="Sieve") { Double_t w = 1900; Double_t h = 800; TCanvas * c1 = new TCanvas("c", "c", w, h); TCanvas *c1= new TCanvas(Form("GCutCheck%d",FoilID), Form("GCutCheck%d",FoilID), w, h); // c1->SetWindowSize(w + (w - c->GetWw()), h + (h - c->GetWh())); c1->Divide(3,1); UInt_t Idx=1; c1->Update(); TString VertexCut = Form("fcut_L_%d",FoilID); TCutG *cVertexCut = (TCutG*)gROOT->FindObject(VertexCut); assert(cVertexCut); TH2F* h1 = new TH2F ("Vz2D","ReactZ vs. Phi_rotate", 600, -0.06,0.06,800,-0.4,0.4); TString SievePlotName = Form("Sieve2D_%d",FoilID); TH2F* h2 = new TH2F (SievePlotName,"theta_target vs. phi_target", 600, -0.06,0.06,700,-0.07,0.07); ////////////////////////////////////////////////////////////////// c1->cd(Idx++); t->Draw("L.tr.vz:L.tr.r_ph>>Vz2D","abs(L.gold.dp)<.05","COLZ"); c1->Update(); // h1->Write(NULL,TObject::kWriteDelete); cVertexCut->SetLineColor(6); cVertexCut->SetLineWidth(2); cVertexCut->Draw("L"); ////////////////////////////////////////////////////////////////// c1->cd(Idx++); t->Draw(Form("L.gold.th:L.gold.ph>>")+SievePlotName, VertexCut+"&&abs(L.gold.dp)<.05","COLZ"); c1->Update(); // h2->Write(NULL,TObject::kWriteDelete); for (UInt_t Col=1;Col<=7;Col++) for (UInt_t Row=1;Row<=7;Row++) DrawSieveCut(FoilID,Col,Row); ////////////////////////////////////////////////////////////////// c1->cd(Idx++); t->Draw("1.157*L.tr.tg_th:L.tr.tg_y+1.157*L.tr.tg_ph>>SievePlane(1000,-.05,.05,1000,-.1,.1)",VertexCut+"&&abs(L.gold.dp)<.05","COLZ"); DrawSieve(); SievePlane->SetTitle(Form("Sieve Plane (%s)",PlotID.Data())); DrawSieve(); c1->Update(); ////////////////////////////////////////////////////////////////// c1->Print(Form("./cutfiles/CutSummary_%s_%d.ps",PlotID.Data(),FoilID),""); c1->Print(Form("./cutfiles/CutSummary_%s_%d.png",PlotID.Data(),FoilID),"png"); } PlotSieveCut(TString PlotID="Sieve") { fdata = new TFile(Form("ROOTfiles/e06010_det_L_%s.root",PlotID.Data())); t=T; gSystem->Exec(Form("cp -vf ./cutfiles/gcut_L_0.root ./cutfiles/gcut_L_0.root.old2")); // fcut = new TFile("./cutfiles/gcut_L_0.root","UPDATE"); fcut = new TFile("./cutfiles/gcut_L_0.root","UPDATE"); assert(fcut); assert(fdata); for(UInt_t v=1;v<=6;v++) { PlotSieve(v,PlotID); } // fcut->Write(); } ModifyCut5_7_x() { fcut = new TFile("./cutfiles/gcut_L_0.root","UPDATE"); assert(fcut); // TCutG * g = new TCutG(); hcut_L_5_7_5->SetName("hcut_L_5_7_6"); hcut_L_5_7_5->Write("",TObject::kOverwrite) ; hcut_L_5_7_4->SetName("hcut_L_5_7_5"); hcut_L_5_7_4->Write("",TObject::kOverwrite) ; hcut_L_5_7_3->SetName("hcut_L_5_7_4"); hcut_L_5_7_3->Write("",TObject::kOverwrite) ; hcut_L_5_7_2->SetName("hcut_L_5_7_3"); hcut_L_5_7_2->Write("",TObject::kOverwrite) ; hcut_L_5_7_1->SetName("hcut_L_5_7_2"); hcut_L_5_7_1->Write("",TObject::kOverwrite) ; gDirectory->Delete("hcut_L_5_7_1;1") ; fcut->Write(); } PlotDP() { gStyle->SetOptStat(11); TChain *T = new TChain("T"); T->Add("ROOTfiles/e06010_det_L_2534.root"); T->Add("ROOTfiles/e06010_det_L_2533.root"); T->Add("ROOTfiles/e06010_det_L_2532.root"); T->Add("ROOTfiles/e06010_det_L_2531.root"); T->Add("ROOTfiles/e06010_det_L_2530.root"); T->Add("ROOTfiles/e06010_det_L_2529.root"); T->Add("ROOTfiles/e06010_det_L_2528.root"); T->Add("ROOTfiles/e06010_det_L_2527.root"); fcut = new TFile("./cutfiles/gcut_L_dp.root",""); TCanvas * c1 = new TCanvas("c", "c", 1800, 1100); c1->Divide(1,5); UInt_t idx=1; TCutG *gcuts = 0; // c1->cd(idx++); // T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_2527Test(1000,-.07,.07,1000,-.07,.07)" // ,"L.tr.n==1 && fEvtHdr.fRun == 2527" // ,"COLZ"); // gcuts = (TCutG*)gROOT->FindObject("L_dp_m4"); // assert(gcuts); // gcuts->SetLineColor(6); // gcuts->SetLineWidth(2); // gcuts->Draw("L"); c1->cd(idx++); T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_m4(1000,-.07,.07,1000,-.07,.07)" ,"L.tr.n==1 && fEvtHdr.fRun == 2528" ,"COLZ"); gcuts = (TCutG*)gROOT->FindObject("L_dp_m4"); assert(gcuts); gcuts->SetLineColor(6); gcuts->SetLineWidth(2); gcuts->Draw("L"); c1->cd(idx++); T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_m2(1000,-.07,.07,1000,-.07,.07)" ,"L.tr.n==1 && fEvtHdr.fRun == 2529" ,"COLZ"); gcuts = (TCutG*)gROOT->FindObject("L_dp_m2"); assert(gcuts); gcuts->SetLineColor(6); gcuts->SetLineWidth(2); gcuts->Draw("L"); c1->cd(idx++); T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_0(1000,-.07,.07,1000,-.07,.07)" ,"L.tr.n==1 && (fEvtHdr.fRun == 2530 || fEvtHdr.fRun == 2531) " ,"COLZ"); gcuts = (TCutG*)gROOT->FindObject("L_dp_0"); assert(gcuts); gcuts->SetLineColor(6); gcuts->SetLineWidth(2); gcuts->Draw("L"); c1->cd(idx++); T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_p2(1000,-.07,.07,1000,-.07,.07)" ,"L.tr.n==1 && fEvtHdr.fRun == 2532" ,"COLZ"); gcuts = (TCutG*)gROOT->FindObject("L_dp_p2"); assert(gcuts); gcuts->SetLineColor(6); gcuts->SetLineWidth(2); gcuts->Draw("L"); c1->cd(idx++); T->Draw("L.tr.r_ph:L.tr.tg_dp>>hDpCut_p4(1000,-.07,.07,1000,-.07,.07)" ,"L.tr.n==1 && (fEvtHdr.fRun == 2533 || fEvtHdr.fRun == 2534) " ,"COLZ"); gcuts = (TCutG*)gROOT->FindObject("L_dp_p4"); assert(gcuts); gcuts->SetLineColor(6); gcuts->SetLineWidth(2); gcuts->Draw("L"); ////////////////////////////////////////////////////////////////// c1->Print(Form("./cutfiles/DpCutSummary.ps"),""); c1->Print(Form("./cutfiles/DprtexCutSummary.png"),"png"); } PlotDP_New() { gStyle->SetOptStat(11); TChain *T = new TChain("T"); T->Add("ROOTfiles/e06010_det_L_2534.root"); T->Add("ROOTfiles/e06010_det_L_2533.root"); T->Add("ROOTfiles/e06010_det_L_2532.root"); T->Add("ROOTfiles/e06010_det_L_2531.root"); T->Add("ROOTfiles/e06010_det_L_2530.root"); T->Add("ROOTfiles/e06010_det_L_2529.root"); T->Add("ROOTfiles/e06010_det_L_2528.root"); T->Add("ROOTfiles/e06010_det_L_2527.root"); fcut = new TFile("./cutfiles/gcut_L_dpfull.root","update"); TCanvas * c1 = new TCanvas("c", "c", 1800, 1100); c1->Divide(6,5); UInt_t idx=1; TCutG *gcuts = 0; const TString KineName[5] = {"m4","m2","0","p2","p4"}; const TString KineRunName[5] = {"fEvtHdr.fRun == 2528", "fEvtHdr.fRun == 2529", "(fEvtHdr.fRun == 2530 || fEvtHdr.fRun == 2531)", "fEvtHdr.fRun == 2532", "(fEvtHdr.fRun == 2533 || fEvtHdr.fRun == 2534)" }; TString FoilCut[6] = {"abs(ReactPt_L.z+.2)<.01","abs(ReactPt_L.z+0.134)<.01","abs(ReactPt_L.z+0.067)<.01", " abs(ReactPt_L.z)<.015","abs(ReactPt_L.z-0.063)<.015","abs(ReactPt_L.z-0.13)<.015"}; for(UInt_t KineID = 0; KineID<5; KineID++) { cout<<"Working on run "<cd(idx++); fcut->cd(); TString VertexCut = Form("fcut_L_%d",FoilID); cout<<"Working on Kine "<FindObjectAny(VertexCut); assert(cVertexCut); TString PlotName = Form("hDpCutCheck_%s_Foil%d",KineName[KineID].Data(),FoilID); TString draw = Form("L.tr.tg_th:sqrt(PriKine_C.W2)>>%s(1000,11.15,11.25,1000,-.1,.1)",PlotName.Data()); TString cut = KineRunName[KineID]+" && (L.tr.n==1 && abs(L.tr.tg_th)<.1 && abs(L.tr.tg_ph)<.05) && "+FoilCut[FoilID-1]; // TString cut = VertexCut; cout<<"draw ="<FindObjectAny(PlotName)); assert(h2); h2->SetTitle(Form("Kine %s, Foil #%d",KineName[KineID].Data(),FoilID)); cout<<"draw cut ..."<FindObjectAny(Form("L_dp_%s_%d",KineName[KineID].Data(),FoilID)); assert(gcuts); cout<<"Draw cut "<GetName()<SetLineColor(6); gcuts->SetLineWidth(1); gcuts->Draw("L"); h2->Write("",TObject::kOverwrite); c1->Update(); } } fcut->Write(); ////////////////////////////////////////////////////////////////// c1->Print(Form("./cutfiles/DpCutSummary_New.ps"),""); c1->Print(Form("./cutfiles/DpCutSummary_New.png"),"png"); } PlotVertexCut() { fdata = new TFile("ROOTfiles/e06010_det_L_5832.root"); // fdata = new TFile("ROOTfiles/e06010_det_L_2505.root"); t=T; // fcut = new TFile("./cutfiles/gcut_L_1.root",""); fcut = new TFile("./cutfiles/gcut_L_5832.root",""); Double_t w = 900; Double_t h = 800; // TCanvas * c1 = new TCanvas("c", "c", w, h); TCanvas *c1= new TCanvas(Form("GCutCheck_Vertex"), Form("GCutCheck_Vertex%d"), w, h); // c1->SetWindowSize(w + (w - c->GetWw()), h + (h - c->GetWh())); c1->Update(); TH2F* h1 = new TH2F ("Vz2D","ReactZ vs. Phi_rotate", 600, -0.06,0.06,800,-0.4,0.4); t->Draw("L.tr.vz:L.tr.r_ph>>Vz2D","abs(L.gold.dp)<.05","COLZ"); ////////////////////////////////////////////////////////////////// for(UInt_t FoilID = 0;FoilID<7;FoilID++) { TString VertexCut = Form("fcut_L_%d",FoilID); TCutG *cVertexCut = (TCutG*)gROOT->FindObject(VertexCut); assert(cVertexCut); cVertexCut->SetLineColor(6); cVertexCut->SetLineWidth(2); cVertexCut->Draw("L"); TLatex * VertexCutLabel = new TLatex( cVertexCut->GetMean(1) ,cVertexCut->GetMean(2)-2*cVertexCut->GetRMS(2) , Form("Vertex #%d",FoilID)); VertexCutLabel->SetTextAlign(22); VertexCutLabel->SetTextColor(2); VertexCutLabel->SetTextSize(.03); VertexCutLabel->Draw(); } ////////////////////////////////////////////////////////////////// c1->Print(Form("./cutfiles/VertexCutSummary.5832.ps"),""); c1->Print(Form("./cutfiles/VertexCutSummary.5832.png"),"png"); } CutCheck() { // PlotSieveCut("2528"); // ModifyCut5_7_x(); // PlotDP_New(); PlotVertexCut(); }