2 void Draw_Array(
string locSystem, TObjArray* locTotalArray);
14 TDirectory *
locDirectory = (TDirectory*)gDirectory->FindObjectAny(
"RF");
20 gDirectory->cd(
"DeltaT_All");
37 int locFirstHit = 0, locSecondHit = 0;
38 TObjArray* locTotalArray =
new TObjArray();
39 TObjArray* locRowArray = NULL;
42 ostringstream locHistName;
43 locHistName << locSystem <<
"RF_DeltaT_" << locFirstHit <<
"_" << locSecondHit;
44 TObject* locObject = gDirectory->Get(locHistName.str().c_str());
47 if(locSecondHit == locFirstHit)
50 locSecondHit = locFirstHit;
54 if(locSecondHit == locFirstHit)
56 locRowArray =
new TObjArray();
57 for(
int loc_i = 0; loc_i < locSecondHit; ++loc_i)
58 locRowArray->AddLast(NULL);
59 locTotalArray->AddLast(locRowArray);
61 locRowArray->AddLast(locObject);
67 void Draw_Array(
string locSystem, TObjArray* locTotalArray)
69 int locNumHits = locTotalArray->GetEntriesFast();
72 string locHistName =
string(
"DeltaTMeans_") + locSystem +
string(
"RF");
73 string locHistTitle =
string(
"Shifted #Deltat Means (ns), ") + locSystem +
string(
" RF;First Hit;Second Hit");
74 TH2F* locMeanHist =
new TH2F(locHistName.c_str(), locHistTitle.c_str(), locNumHits, 0.5, locNumHits + 0.5, locNumHits, 0.5, locNumHits + 0.5);
77 locHistName =
string(
"DeltaTSigmas_") + locSystem +
string(
"RF");
78 locHistTitle =
string(
"#Deltat #sigma/#sqrt{2} (ns), ") + locSystem +
string(
" RF;First Hit;Second Hit");
79 TH2F* locStdDevHist =
new TH2F(locHistName.c_str(), locHistTitle.c_str(), locNumHits, 0.5, locNumHits + 0.5, locNumHits, 0.5, locNumHits + 0.5);
82 locHistName =
string(
"DeltaTSkewness_") + locSystem +
string(
"RF");
83 locHistTitle =
string(
"#Deltat Skewness, ") + locSystem +
string(
" RF;First Hit;Second Hit");
84 TH2F* locSkewnessHist =
new TH2F(locHistName.c_str(), locHistTitle.c_str(), locNumHits, 0.5, locNumHits + 0.5, locNumHits, 0.5, locNumHits + 0.5);
87 locHistName =
string(
"DeltaTKurtosis_") + locSystem +
string(
"RF");
88 locHistTitle =
string(
"#Deltat Kurtosis, ") + locSystem +
string(
" RF;First Hit;Second Hit");
89 TH2F* locKurtosisHist =
new TH2F(locHistName.c_str(), locHistTitle.c_str(), locNumHits, 0.5, locNumHits + 0.5, locNumHits, 0.5, locNumHits + 0.5);
92 string locCanvasName =
string(
"DeltaTs_") + locSystem +
string(
"RFCanvas");
93 int locPadHeight = 200;
94 gStyle->SetOptStat(0000);
95 gStyle->SetNumberContours(20);
97 TCanvas*
locCanvas =
new TCanvas(locCanvasName.c_str(), locCanvasName.c_str(), locNumHits*locPadHeight*16.0/9.0, locNumHits*locPadHeight);
98 locCanvas->Divide(locNumHits, locNumHits);
99 for(
int loc_i = 0; loc_i < locNumHits; ++loc_i)
101 TObjArray* locRowArray = (TObjArray*)locTotalArray->At(loc_i);
102 for(
int loc_j = 0; loc_j < locNumHits; ++loc_j)
104 TH1* locDeltaTHist = (TH1*)locRowArray->At(loc_j);
105 if((locDeltaTHist == NULL) || (loc_i == loc_j))
107 locMeanHist->SetBinContent(loc_i + 1, loc_j + 1, -1.0/0.0);
108 locStdDevHist->SetBinContent(loc_i + 1, loc_j + 1, -1.0/0.0);
109 locSkewnessHist->SetBinContent(loc_i + 1, loc_j + 1, -1.0/0.0);
110 locKurtosisHist->SetBinContent(loc_i + 1, loc_j + 1, -1.0/0.0);
111 if(locDeltaTHist == NULL)
115 double locPeakLocation = locDeltaTHist->GetBinCenter(locDeltaTHist->GetMaximumBin());
116 locDeltaTHist->GetXaxis()->SetRangeUser(locPeakLocation - 10.0, locPeakLocation + 10.0);
117 double locMean = locDeltaTHist->GetMean();
121 locMeanHist->SetBinContent(loc_i + 1, loc_j + 1, locShiftedMean);
122 locStdDevHist->SetBinContent(loc_i + 1, loc_j + 1, locDeltaTHist->GetStdDev()/
sqrt(2.0));
123 locSkewnessHist->SetBinContent(loc_i + 1, loc_j + 1, locDeltaTHist->GetSkewness());
124 locKurtosisHist->SetBinContent(loc_i + 1, loc_j + 1, locDeltaTHist->GetKurtosis());
127 locDeltaTHist->GetXaxis()->SetRangeUser(locMean - 0.5, locMean + 0.5);
129 int locCanvasIndex = (locNumHits - loc_j - 1)*locNumHits + loc_i + 1;
130 locCanvas->cd(locCanvasIndex);
131 locDeltaTHist->Draw();
135 locCanvasName =
string(
"DeltaTMeans_") + locSystem +
string(
"RFCanvas");
136 new TCanvas(locCanvasName.c_str(), locCanvasName.c_str(), 1600, 900);
137 locMeanHist->Draw(
"COLZ");
139 locCanvasName =
string(
"DeltaTSigmas_") + locSystem +
string(
"RFCanvas");
140 new TCanvas(locCanvasName.c_str(), locCanvasName.c_str(), 1600, 900);
141 locStdDevHist->Draw(
"COLZ");
143 locCanvasName =
string(
"DeltaTSkewness_") + locSystem +
string(
"RFCanvas");
144 new TCanvas(locCanvasName.c_str(), locCanvasName.c_str(), 1600, 900);
145 locSkewnessHist->Draw(
"COLZ");
147 locCanvasName =
string(
"DeltaTKurtosis_") + locSystem +
string(
"RFCanvas");
148 new TCanvas(locCanvasName.c_str(), locCanvasName.c_str(), 1600, 900);
149 locKurtosisHist->Draw(
"COLZ");
void Draw_Array(string locSystem, TObjArray *locTotalArray)
int RFMacro_InternalDeltaTs(void)
TObjArray * Get_RFDeltaTHists(string locSystem)
TDirectory * locDirectory