Project

General

Profile

Stephen's Stuff 26_8_19 » DC_Calib_Check_HMS.C

Stephen Kay, 08/26/2019 11:51 AM

 
1
#define DC_Calib_Check_HMS_cxx
2

    
3
#include "DC_Calib_Check_HMS.h"
4
#include <TStyle.h>
5
#include <TCanvas.h>
6
#include <TLine.h>
7
#include <TMath.h>
8
#include <TPaveText.h>
9
#include <TGaxis.h>
10

    
11
void DC_Calib_Check_HMS::Begin(TTree * /*tree*/)
12
{  
13
  printf("\n\n");
14
  TString option = GetOption();
15
}
16

    
17
void DC_Calib_Check_HMS::SlaveBegin(TTree * /*tree*/)
18
{
19
  printf("\n\n");
20
  TString option = GetOption();
21

    
22
  h2_1u1_DriftDistance = new TH2F("1u1_DriftDistance", "Drift Distance by wire number for 1u1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
23
  h2_1u2_DriftDistance = new TH2F("1u2_DriftDistance", "Drift Distance by wire number for 1u2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
24
  h2_1x1_DriftDistance = new TH2F("1x1_DriftDistance", "Drift Distance by wire number for 1x1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
25
  h2_1x2_DriftDistance = new TH2F("1x2_DriftDistance", "Drift Distance by wire number for 1x2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
26
  h2_1v1_DriftDistance = new TH2F("1v1_DriftDistance", "Drift Distance by wire number for 1v1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
27
  h2_1v2_DriftDistance = new TH2F("1v2_DriftDistance", "Drift Distance by wire number for 1v2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
28

    
29
  h2_2u1_DriftDistance = new TH2F("2u1_DriftDistance", "Drift Distance by wire number for 2u1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
30
  h2_2u2_DriftDistance = new TH2F("2u2_DriftDistance", "Drift Distance by wire number for 2u2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
31
  h2_2x1_DriftDistance = new TH2F("2x1_DriftDistance", "Drift Distance by wire number for 2x1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
32
  h2_2x2_DriftDistance = new TH2F("2x2_DriftDistance", "Drift Distance by wire number for 2x2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
33
  h2_2v1_DriftDistance = new TH2F("2v1_DriftDistance", "Drift Distance by wire number for 2v1 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
34
  h2_2v2_DriftDistance = new TH2F("2v2_DriftDistance", "Drift Distance by wire number for 2v2 Plane; Wire Number; Drift Distance", 120, 0, 120, 100, 0, 1);
35

    
36
  GetOutputList()->Add(h2_1u1_DriftDistance);
37
  GetOutputList()->Add(h2_1u2_DriftDistance);
38
  GetOutputList()->Add(h2_1x1_DriftDistance);
39
  GetOutputList()->Add(h2_1x2_DriftDistance);
40
  GetOutputList()->Add(h2_1v1_DriftDistance);
41
  GetOutputList()->Add(h2_1v2_DriftDistance);
42

    
43
  GetOutputList()->Add(h2_2u1_DriftDistance);
44
  GetOutputList()->Add(h2_2u2_DriftDistance);
45
  GetOutputList()->Add(h2_2x1_DriftDistance);
46
  GetOutputList()->Add(h2_2x2_DriftDistance);
47
  GetOutputList()->Add(h2_2v1_DriftDistance);
48
  GetOutputList()->Add(h2_2v2_DriftDistance);
49

    
50
}
51

    
52
Bool_t DC_Calib_Check_HMS::Process(Long64_t entry)
53
{
54
  fReader.SetEntry(entry);
55

    
56
  if (H_cer_npeSum[0] < 1.0) return kTRUE;
57
  if (T_hms_hEL_CLEAN_tdcTime[0] < 0) return kTRUE;
58

    
59
  for (Int_t i = 0; i < H_dc_1u1_time.GetSize(); i++){
60
    if (H_dc_1u1_time[i] > 0){
61
      h2_1u1_DriftDistance->Fill(H_dc_1u1_wirenum[i], H_dc_1u1_dist[i]);
62
    }
63
  }
64
  
65
  for (Int_t i = 0; i < H_dc_1u2_time.GetSize(); i++){
66
    if (H_dc_1u2_time[i] > 0){
67
      h2_1u2_DriftDistance->Fill(H_dc_1u2_wirenum[i], H_dc_1u2_dist[i]);
68
    }
69
  }
70

    
71
  for (Int_t i = 0; i < H_dc_1x1_time.GetSize(); i++){
72
    if (H_dc_1x1_time[i] > 0){
73
      h2_1x1_DriftDistance->Fill(H_dc_1x1_wirenum[i], H_dc_1x1_dist[i]);
74
    }
75
  }
76
  
77
  for (Int_t i = 0; i < H_dc_1x2_time.GetSize(); i++){
78
    if (H_dc_1x2_time[i] > 0){
79
      h2_1x2_DriftDistance->Fill(H_dc_1x2_wirenum[i], H_dc_1x2_dist[i]);
80
    }
81
  }
82
  
83
  for (Int_t i = 0; i < H_dc_1v1_time.GetSize(); i++){
84
    if (H_dc_1v1_time[i] > 0){
85
      h2_1v1_DriftDistance->Fill(H_dc_1v1_wirenum[i], H_dc_1v1_dist[i]);
86
    }
87
  }
88
  
89
  for (Int_t i = 0; i < H_dc_1v2_time.GetSize(); i++){
90
    if (H_dc_1v2_time[i] > 0){
91
      h2_1v2_DriftDistance->Fill(H_dc_1v2_wirenum[i], H_dc_1v2_dist[i]);
92
    }
93
  }
94

    
95
  for (Int_t i = 0; i < H_dc_2u1_time.GetSize(); i++){
96
    if (H_dc_2u1_time[i] > 0){
97
      h2_2u1_DriftDistance->Fill(H_dc_2u1_wirenum[i], H_dc_2u1_dist[i]);
98
    }
99
  }
100
  
101
  for (Int_t i = 0; i < H_dc_2u2_time.GetSize(); i++){
102
    if (H_dc_2u2_time[i] > 0){
103
      h2_2u2_DriftDistance->Fill(H_dc_2u2_wirenum[i], H_dc_2u2_dist[i]);
104
    }
105
  }
106

    
107
  for (Int_t i = 0; i < H_dc_2x1_time.GetSize(); i++){
108
    if (H_dc_2x1_time[i] > 0){
109
      h2_2x1_DriftDistance->Fill(H_dc_2x1_wirenum[i], H_dc_2x1_dist[i]);
110
    }
111
  }
112
  
113
  for (Int_t i = 0; i < H_dc_2x2_time.GetSize(); i++){
114
    if (H_dc_2x2_time[i] > 0){
115
      h2_2x2_DriftDistance->Fill(H_dc_2x2_wirenum[i], H_dc_2x2_dist[i]);
116
    }
117
  }
118
  
119
  for (Int_t i = 0; i < H_dc_2v1_time.GetSize(); i++){
120
    if (H_dc_2v1_time[i] > 0){
121
      h2_2v1_DriftDistance->Fill(H_dc_2v1_wirenum[i], H_dc_2v1_dist[i]);
122
    }
123
  }
124
  
125
  for (Int_t i = 0; i < H_dc_2v2_time.GetSize(); i++){
126
    if (H_dc_2v2_time[i] > 0){
127
      h2_2v2_DriftDistance->Fill(H_dc_2v2_wirenum[i], H_dc_2v2_dist[i]);
128
    }
129
  }  
130

    
131
  return kTRUE;
132
}
133

    
134
void DC_Calib_Check_HMS::SlaveTerminate()
135
{
136
}
137

    
138
void DC_Calib_Check_HMS::Terminate()
139
{
140
  TString option = GetOption();
141

    
142
  TString foutname = Form("HMS_DC_Calib_Check_Run%i", option.Atoi());
143
  TString outputpdf = foutname + ".pdf";
144
  TCanvas *cDC1 = new TCanvas("DC1","Drift Chamber 1 Planes",100,0,1000,900);
145
  cDC1->Divide(2,3);
146
  cDC1->cd(1); h2_1u1_DriftDistance->Draw("COLZ");
147
  cDC1->cd(2); h2_1u2_DriftDistance->Draw("COLZ");
148
  cDC1->cd(3); h2_1x1_DriftDistance->Draw("COLZ");
149
  cDC1->cd(4); h2_1x2_DriftDistance->Draw("COLZ");
150
  cDC1->cd(5); h2_1v1_DriftDistance->Draw("COLZ");
151
  cDC1->cd(6); h2_1v2_DriftDistance->Draw("COLZ");
152
  cDC1->Print(outputpdf + '(');               
153
  TCanvas *cDC2 = new TCanvas("DC2","Drift Chamber 2 Planes",100,0,1000,900);
154
  cDC2->Divide(2,3);
155
  cDC2->cd(1); h2_2u1_DriftDistance->Draw("COLZ");
156
  cDC2->cd(2); h2_2u2_DriftDistance->Draw("COLZ");
157
  cDC2->cd(3); h2_2x1_DriftDistance->Draw("COLZ");
158
  cDC2->cd(4); h2_2x2_DriftDistance->Draw("COLZ");
159
  cDC2->cd(5); h2_2v1_DriftDistance->Draw("COLZ");
160
  cDC2->cd(6); h2_2v2_DriftDistance->Draw("COLZ");
161
  cDC2->Print(outputpdf + ')');               
162

    
163
  TFile *Histogram_file = new TFile(Form("HMS_DCCalib_Check_Run%i.root",option.Atoi()),"RECREATE");
164

    
165
  h2_1u1_DriftDistance->Write();
166
  h2_1u2_DriftDistance->Write();
167
  h2_1x1_DriftDistance->Write();
168
  h2_1x2_DriftDistance->Write();
169
  h2_1v1_DriftDistance->Write();
170
  h2_1v2_DriftDistance->Write();
171

    
172
  h2_2u1_DriftDistance->Write();
173
  h2_2u2_DriftDistance->Write();
174
  h2_2x1_DriftDistance->Write();
175
  h2_2x2_DriftDistance->Write();
176
  h2_2v1_DriftDistance->Write();
177
  h2_2v2_DriftDistance->Write();
178

    
179
  Histogram_file->Close();
180
}
(2-2/7)