Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FDC_occupancy.C
Go to the documentation of this file.
1 
2 // The following are special comments used by RootSpy to know
3 // which histograms to fetch for the macro.
4 //
5 // hnamepath: /occupancy/fdc_num_events
6 // hnamepath: /occupancy/fdc_cathode_occ
7 // hnamepath: /occupancy/fdc_wire_occ
8 //
9 // e-mail: davidl@jlab.org
10 // e-mail: pentchev@jlab.org
11 // e-mail: staylor@jlab.org
12 // e-mail: tbritton@jlab.org
13 //
14 
15 {
16  // RootSpy saves the current directory and style before
17  // calling the macro and restores it after so it is OK to
18  // change them and not change them back.
19 
20  TDirectory *dir = (TDirectory*)gDirectory->FindObjectAny("occupancy");
21  if(!dir) {
22  cout << "No 'occupancy' directory!" << endl;
23  return;
24  }
25 
26  TH2I *fdc_cathode_occ = (TH2I*)dir->FindObjectAny("fdc_cathode_occ");
27  TH2I *fdc_wire_occ = (TH2I*)dir->FindObjectAny("fdc_wire_occ");
28 
29  double Nevents = 1.0;
30  TH1I *fdc_num_events = (TH1I*)dir->FindObjectAny("fdc_num_events");
31  if(fdc_num_events) Nevents = (double)fdc_num_events->GetBinContent(1);
32 
33  // Just for testing
34  if(gPad == NULL){
35  TCanvas *c1 = new TCanvas("c1");
36  c1->cd(0);
37  c1->Draw();
38  c1->Update();
39  }
40  if(!gPad){
41  cout << "gPad is NULL!" << endl;
42  return;
43  }
44 
45  char nevents_str[256];
46  sprintf(nevents_str,"%g events", Nevents);
47  TLatex lat;
48  lat.SetTextAlign(22);
49  lat.SetTextSize(0.035);
50 
51  TCanvas *c1 = gPad->GetCanvas();
52  c1->cd(0);
53  c1->Clear();
54 
55  TPad *fdcpad1 = (TPad*)gDirectory->FindObjectAny("fdcpad1");
56  if(!fdcpad1) fdcpad1 = new TPad("fdcpad1", "", 0.0, 0.0, 0.66, 1.0);
57  fdcpad1->SetTicks();
58  fdcpad1->SetLogz();
59  fdcpad1->SetLeftMargin(0.10);
60  fdcpad1->SetRightMargin(0.15);
61  fdcpad1->Draw();
62  fdcpad1->cd();
63  if(fdc_cathode_occ){
64  fdc_cathode_occ->SetStats(0);
65  fdc_cathode_occ->SetYTitle("strip");
66  fdc_cathode_occ->SetXTitle("cathode plane");
67  TH1* h = fdc_cathode_occ->DrawCopy("colz");
68  h->Scale(1./Nevents);
69  h->GetZaxis()->SetRangeUser(0.001, 1.0);
70  }
71  lat.DrawLatex(25.0, 225.0 ,nevents_str);
72 
73  c1->cd(0);
74  TPad *fdcpad2 = (TPad*)gDirectory->FindObjectAny("fdcpad2");
75  if(!fdcpad2) fdcpad2 = new TPad("fdcpad2", "", 0.66, 0.0, 1.0, 1.0);
76  fdcpad2->SetTicks();
77  fdcpad2->SetLogz();
78  fdcpad2->SetLeftMargin(0.10);
79  fdcpad2->SetRightMargin(0.12);
80  fdcpad2->Draw();
81  fdcpad2->cd();
82  if(fdc_wire_occ){
83  fdc_wire_occ->SetStats(0);
84  fdc_wire_occ->SetYTitle("wire");
85  fdc_wire_occ->SetXTitle("wire plane");
86  TH1* h = fdc_wire_occ->DrawCopy("colz");
87  h->Scale(1./Nevents);
88  h->GetZaxis()->SetRangeUser(0.001, 1.0);
89  }
90  lat.DrawLatex(13.5, 100.0,nevents_str);
91 
92 }
TH1I * fdc_num_events
Definition: FDC_occupancy.C:30
sprintf(text,"Post KinFit Cut")
Double_t c1[2][NMODULES]
Definition: tw_corr.C:68
TH2I * fdc_cathode_occ
Definition: FDC_occupancy.C:26
char nevents_str[256]
Definition: FDC_occupancy.C:45
TPad * fdcpad1
Definition: FDC_occupancy.C:55
TH2I * fdc_wire_occ
Definition: FDC_occupancy.C:27
double Nevents
TPad * fdcpad2
Definition: FDC_occupancy.C:74
TDirectory * dir
Definition: bcal_hist_eff.C:31