10 TDirectory *
dir = (TDirectory*)gDirectory->FindObjectAny(
"fcal");
13 TH2F* hitOcc2D = (TH2F*)gDirectory->FindObjectAny(
"hitOcc2D");
14 TH2F* hitTmT02D = (TH2F*)gDirectory->FindObjectAny(
"hitTmT02D");
15 TH2F* hitTmT0Sq2D = (TH2F*)gDirectory->FindObjectAny(
"hitTmT0Sq2D");
16 TH1I* hitTmT0 = (TH1I*)gDirectory->FindObjectAny(
"hitTmT0");
17 TH1I* hitT0 = (TH1I*)gDirectory->FindObjectAny(
"hitT0");
21 TCanvas *
c1 =
new TCanvas(
"c1",
"FCAL Monitor", 800, 800 );
28 TCanvas*
c1 = gPad->GetCanvas();
34 hitT0->SetFillColor( kYellow );
41 hitTmT0->SetStats( 0 );
42 hitTmT0->SetFillColor( kYellow );
47 if( hitTmT02D && hitOcc2D ){
49 TH2F* hitTmT02DAvg = (TH2F*)hitTmT02D->Clone(
"hitTmT02DAvg" );
50 hitTmT02DAvg->Divide( hitOcc2D );
52 for(
int x = 1;
x <= hitTmT02DAvg->GetNbinsX(); ++
x ){
53 for(
int y = 1;
y <= hitTmT02DAvg->GetNbinsY(); ++
y ){
55 if( hitOcc2D->GetBinContent(
x,
y ) == 0 ){
59 hitTmT02DAvg->SetBinContent(
x,
y, -1
E3 );
64 hitTmT02DAvg->SetMinimum(-10 );
65 hitTmT02DAvg->SetMaximum( 10 );
66 hitTmT02DAvg->SetStats( 0 );
68 hitTmT02DAvg->Draw(
"colz" );
71 if( hitTmT02D && hitTmT0Sq2D && hitOcc2D ){
73 TH2F* hitTmT02DAvg = (TH2F*)hitTmT02D->Clone(
"hitTmT02DAvg" );
74 TH2F* hitTmT02DRMS = (TH2F*)hitTmT02D->Clone(
"hitTmT02DRMS" );
75 TH2F* hitTmT0Sq2DAvg = (TH2F*)hitTmT0Sq2D->Clone(
"hitTmT0Sq2DAvg" );
76 hitTmT02DAvg->Divide( hitOcc2D );
77 hitTmT0Sq2DAvg->Divide( hitOcc2D );
79 hitTmT02DRMS->SetTitle(
"FCAL Local Hit Time RMS [ns]" );
81 for(
int x = 1;
x <= hitTmT02DAvg->GetNbinsX(); ++
x ){
82 for(
int y = 1;
y <= hitTmT02DAvg->GetNbinsY(); ++
y ){
84 if( hitOcc2D->GetBinContent(
x,
y ) != 0 ){
86 double var = hitTmT0Sq2DAvg->GetBinContent(
x,
y );
87 var -= ( hitTmT02DAvg->GetBinContent(
x,
y ) *
88 hitTmT02DAvg->GetBinContent(
x,
y ) );
90 hitTmT02DRMS->SetBinContent(
x,
y, TMath::Sqrt( var ) );
96 hitTmT02DRMS->SetBinContent(
x,
y, -1 );
101 hitTmT02DRMS->SetMinimum( 0 );
102 hitTmT02DRMS->SetMaximum( 10 );
103 hitTmT02DRMS->SetStats( 0 );
105 hitTmT02DRMS->Draw(
"colz" );