#include "display.h" #include "mwdc_defs.h" #include "mwdc_funcs.h" Int_t display() { /********************* BEGIN BLOCK TO OPEN ROOTFILE ********************/ TString run_number; TString filename; TTree *t1; plane_type plane; Int_t number_of_events = 0; Int_t event_counter = 0; Int_t hit_counter = 0; char dummystring[STRING_LENGTH]; Int_t number_of_hits[NUMBER_OF_PLANES]; Double_t hit_wires[NUMBER_OF_PLANES][MAX_NUMBER_OF_HITS]; Double_t hit_times[NUMBER_OF_PLANES][MAX_NUMBER_OF_HITS]; Double_t shower_x[100]; Double_t shower_y[100]; Double_t shower_e[100]; Double_t reftime[NUMBER_OF_PLANES][MAX_NUMBER_OF_HITS]; Double_t toff[NUMBER_OF_PLANES][MAX_NUMBER_OF_HITS]; cout << "Run: " ; cin >> run_number; filename=Form(ROOTFILE_FORM,run_number.Data()); TFile *f1 = new TFile(filename.Data(),"r"); T = (TTree *) f1->Get("T"); number_of_events = T->GetEntries(); cout << "Opened file " <SetBranchAddress(dummystring, &number_of_hits[plane]); sprintf(dummystring, "B.dc.%s.wire", plane_type_name[plane]); T->SetBranchAddress(dummystring, &hit_wires[plane]); sprintf(dummystring, "B.dc.%s.time", plane_type_name[plane]); T->SetBranchAddress(dummystring, &hit_times[plane]); T->SetBranchAddress("B.ts.sh.x", shower_x); T->SetBranchAddress("B.ts.sh.y", shower_y); T->SetBranchAddress("B.ts.sh.e", shower_e); sprintf(dummystring, "B.dc.%s.myref", plane_type_name[plane]); T->SetBranchAddress(dummystring, &reftime[plane]); sprintf(dummystring, "B.dc.%s.offset", plane_type_name[plane]); T->SetBranchAddress(dummystring, &toff[plane]); } /********************* END BLOCK TO OPEN ROOTFILE ********************/ const Int_t NUMBER_OF_PADS = 4; char a[STRING_LENGTH]; // Input dummy Int_t wire_counter; Int_t pad_number = -1; Int_t pads[NUMBER_OF_PADS]; // Prepare canvas for output TCanvas *c1 = new TCanvas( "display_canvas", "display_canvas",0,0,1040,562); c1->Divide(4,1); c1->cd(1); gPad->Range(-135,-197,275,765); c1->cd(2); gPad->Range(-105,-77,305,885); c1->cd(3); gPad->Range(-105,-77,305,885); c1->cd(4); gPad->Range(-50,-21,360,941); char answer[100]; //for(event_counter = 0; event_counter < number_of_events; event_counter++) for(event_counter = 100; event_counter < 1000; event_counter++) { T->GetEntry(event_counter); cout<<"Event Number "<cd(pad_number); gPad->Clear(); display::draw_chamber_outline(c1, pad_number); display::draw_axis(pad_number); } // MWDC Info for (plane = 0; plane < NUMBER_OF_PLANES; plane++) { pad_number = chamber[plane] + 1; // Notice pads number 1 to 4 c1->cd(pad_number); if (number_of_hits[plane] > 0) display::draw_wire(c1, plane, number_of_hits, hit_wires); c1->Update(); } // Plane Loop // Shower Info pad_number = 4; c1->cd(pad_number); display::draw_hit(c1, shower_x, shower_y, shower_e); // menu prompt (still buggy, does update only once) c1->Update(); fprintf(stderr,"Type to continue, \"q\" to quit and \"u\" to update ==>"); fgets(answer,99,stdin); if (answer[0] == 'q' || answer[0] == 'Q') return(0); while (answer[0] == 'u' || answer[0] == 'U') { fgets(answer,99,stdin); c1->Update(); answer[0] = ""; } answer[0] = ""; fflush(stderr); } // Event Loop return (0); }