15 m_fdcom =
new TFolder(
"mCommon",
"mCommon" );
16 hlist->Add( m_fdcom );
18 m_fdTmap =
new TFolder(
"mThitmap",
"mThitmap" );
19 hlist->Add( m_fdTmap );
21 m_fdTraw =
new TFolder(
"mTraw",
"mTraw" );
22 hlist->Add( m_fdTraw );
24 m_fdTrawCel =
new TFolder(
"mTrawCell",
"mTrawCell" );
25 hlist->Add( m_fdTrawCel );
27 m_fdQmap =
new TFolder(
"mQhitmap",
"mQhitmap" );
28 hlist->Add( m_fdQmap );
30 m_fdQraw =
new TFolder(
"mQraw",
"mQraw" );
31 hlist->Add( m_fdQraw );
33 m_fdQrawCel =
new TFolder(
"mQrawCell",
"mQrawCell" );
34 hlist->Add( m_fdQrawCel );
36 m_hLayerHitmapT =
new TH1F(
"mT_Hitmap_Layer",
"", 43, -0.5, 42.5 );
37 m_fdcom->Add( m_hLayerHitmapT );
39 m_hWireHitMapT =
new TH1F(
"mT_Hitmap_Wire",
"", 6796, -0.5, 6795.5 );
40 m_fdcom->Add( m_hWireHitMapT );
42 m_hLayerHitmapQ =
new TH1F(
"mQ_Hitmap_Layer",
"", 43, -0.5, 42.5 );
43 m_fdcom->Add( m_hLayerHitmapQ );
45 m_hWireHitMapQ =
new TH1F(
"mQ_Hitmap_Wire",
"", 6796, -0.5, 6795.5 );
46 m_fdcom->Add( m_hWireHitMapQ );
48 m_hTesAll =
new TH1F(
"mTesAll",
"", 750, 0, 1500 );
49 m_fdcom->Add( m_hTesAll );
51 m_hTesCal =
new TH1F(
"mTesCal",
"", 750, 0, 1500 );
52 m_fdcom->Add( m_hTesCal );
54 m_hTesFlag =
new TH1F(
"mTes_Flag",
"", 300, -0.5, 299.5 );
55 m_fdcom->Add( m_hTesFlag );
57 for (
int lay = 0; lay <
NLAYER; lay++ )
61 sprintf( hname,
"mT_hitmap_Lay%02d", lay );
62 m_hlaymapT[lay] =
new TH1F( hname,
"", ncel, -0.5, (
float)ncel - 0.5 );
63 m_fdTmap->Add( m_hlaymapT[lay] );
65 sprintf( hname,
"mTDC_Lay%02d", lay );
66 m_htdc[lay] =
new TH1F( hname,
"", 800, 0, 20000 );
67 m_fdTraw->Add( m_htdc[lay] );
69 sprintf( hname,
"mTraw_Lay%02d", lay );
70 m_htraw[lay] =
new TH1F( hname,
"", 500, 0, 1000 );
71 m_fdTraw->Add( m_htraw[lay] );
73 sprintf( hname,
"mQ_hitmap_Lay%02d", lay );
74 m_hlaymapQ[lay] =
new TH1F( hname,
"", ncel, -0.5, (
float)ncel - 0.5 );
75 m_fdQmap->Add( m_hlaymapQ[lay] );
77 sprintf( hname,
"mQraw_Lay%02d", lay );
78 m_hqraw[lay] =
new TH1F( hname,
"", 2000, 0, 4000 );
79 m_fdQraw->Add( m_hqraw[lay] );
82 for (
int wir = 0; wir <
NWIRE; wir++ )
84 int lay = m_pGeom->getWire( wir )->getLayerId();
85 int cel = m_pGeom->getWire( wir )->getCellId();
87 sprintf( hname,
"mTraw_%02d_%03d_%04d", lay, cel, wir );
88 m_htrawCel[wir] =
new TH1F( hname,
"", 300, 0, 600 );
89 m_fdTrawCel->Add( m_htrawCel[wir] );
91 sprintf( hname,
"mQraw_%02d_%03d_%04d", lay, cel, wir );
92 m_hqrawCel[wir] =
new TH1F( hname,
"", 2000, 0, 4000 );
93 m_fdQrawCel->Add( m_hqrawCel[wir] );
98 TFolder* fdcom = (TFolder*)fhist->Get(
"Common" );
99 TFolder* fdTmap = (TFolder*)fhist->Get(
"Thitmap" );
100 TFolder* fdTraw = (TFolder*)fhist->Get(
"Traw" );
101 TFolder* fdTrawCel = (TFolder*)fhist->Get(
"TrawCell" );
102 TFolder* fdQmap = (TFolder*)fhist->Get(
"Qhitmap" );
103 TFolder* fdQraw = (TFolder*)fhist->Get(
"Qraw" );
104 TFolder* fdQrawCel = (TFolder*)fhist->Get(
"QrawCell" );
108 hist = (TH1F*)fdcom->FindObjectAny(
"T_Hitmap_Layer" );
109 m_hLayerHitmapT->Add( hist );
111 hist = (TH1F*)fdcom->FindObjectAny(
"T_Hitmap_Wire" );
112 m_hWireHitMapT->Add( hist );
114 hist = (TH1F*)fdcom->FindObjectAny(
"Q_Hitmap_Layer" );
115 m_hLayerHitmapQ->Add( hist );
117 hist = (TH1F*)fdcom->FindObjectAny(
"Q_Hitmap_Wire" );
118 m_hWireHitMapQ->Add( hist );
120 hist = (TH1F*)fdcom->FindObjectAny(
"TesAll" );
121 m_hTesAll->Add( hist );
123 hist = (TH1F*)fdcom->FindObjectAny(
"TesCal" );
124 m_hTesCal->Add( hist );
126 hist = (TH1F*)fdcom->FindObjectAny(
"Tes_Flag" );
127 m_hTesFlag->Add( hist );
129 for (
int lay = 0; lay <
NLAYER; lay++ )
131 sprintf( hname,
"T_hitmap_Lay%02d", lay );
132 hist = (TH1F*)fdTmap->FindObjectAny( hname );
133 m_hlaymapT[lay]->Add( hist );
135 sprintf( hname,
"TDC_Lay%02d", lay );
136 hist = (TH1F*)fdTraw->FindObjectAny( hname );
137 m_htdc[lay]->Add( hist );
139 sprintf( hname,
"Traw_Lay%02d", lay );
140 hist = (TH1F*)fdTraw->FindObjectAny( hname );
141 m_htraw[lay]->Add( hist );
143 sprintf( hname,
"Q_hitmap_Lay%02d", lay );
144 hist = (TH1F*)fdQmap->FindObjectAny( hname );
145 m_hlaymapQ[lay]->Add( hist );
147 sprintf( hname,
"Qraw_Lay%02d", lay );
148 hist = (TH1F*)fdQraw->FindObjectAny( hname );
149 m_hqraw[lay]->Add( hist );
152 for (
int wir = 0; wir <
NWIRE; wir++ )
154 int lay = m_pGeom->getWire( wir )->getLayerId();
155 int cel = m_pGeom->getWire( wir )->getCellId();
157 sprintf( hname,
"Traw_%02d_%03d_%04d", lay, cel, wir );
158 hist = (TH1F*)fdTrawCel->FindObjectAny( hname );
159 m_htrawCel[wir]->Add( hist );
161 sprintf( hname,
"Qraw_%02d_%03d_%04d", lay, cel, wir );
162 hist = (TH1F*)fdQrawCel->FindObjectAny( hname );
163 m_hqrawCel[wir]->Add( hist );
179 double chindfTmin[
NLAYER];
180 double chindfTmax[
NLAYER];
185 for ( lay = 0; lay <
NLAYER; lay++ )
188 chindfTmin[lay] = -1;
189 sprintf( funname,
"ftmin%02d", lay );
190 ftmin[lay] =
new TF1( funname, funTmin, 0, 150, 6 );
194 Stat_t nEntryTot = 0;
195 for (
int ibin = 1; ibin <= 25; ibin++ )
197 Stat_t entry = m_htraw[lay]->GetBinContent( ibin );
200 double c0Ini = (double)nEntryTot / 25.0;
201 double c1Ini = ( m_htraw[lay]->GetMaximum() ) - c0Ini;
203 ftmin[lay]->SetParameter( 0, c0Ini );
204 ftmin[lay]->SetParameter( 1, c1Ini );
205 ftmin[lay]->SetParameter( 2, 0 );
206 ftmin[lay]->SetParameter( 4, initT0 );
207 ftmin[lay]->SetParameter( 5, 1 );
210 gStyle->SetOptFit( 11 );
211 chisq = ftmin[lay]->GetChisquare();
212 ndf = ftmin[lay]->GetNDF();
213 chindfTmin[lay] = chisq / ndf;
217 t0Fit[lay] = ftmin[lay]->GetParameter( 4 );
223 if ( 0 == fitTminFg[lay] )
225 wir = m_pGeom->getWire( lay, 0 )->getWireId();
226 t0Cal[lay] = calconst->
getT0( wir );
233 for ( lay = 0; lay <
NLAYER; lay++ )
236 chindfTmax[lay] = -1;
237 sprintf( funname,
"ftmax%02d", lay );
238 ftmax[lay] =
new TF1( funname, funTmax, 250, 500, 4 );
242 ftmax[lay]->SetParameter( 2,
gInitTm[lay] );
243 ftmax[lay]->SetParameter( 3, 10 );
246 gStyle->SetOptFit( 11 );
247 chisq = ftmax[lay]->GetChisquare();
248 ndf = ftmax[lay]->GetNDF();
249 chindfTmax[lay] = chisq / ndf;
253 tmax[lay] = ftmax[lay]->GetParameter( 2 );
257 if ( 0 == fitTmaxFg[lay] )
258 { tmax[lay] = ( calconst->
getXtpar( lay, 0, 0, 6 ) ) + t0Fit[lay]; }
262 ofstream ft0(
"iniT0.dat" );
263 for ( lay = 0; lay <
NLAYER; lay++ )
265 ft0 << setw( 5 ) << lay << setw( 3 ) << fitTminFg[lay] << setw( 12 ) << t0Cal[lay]
266 << setw( 12 ) << t0Fit[lay] << setw( 12 ) << chindfTmin[lay] << setw( 5 )
267 << fitTmaxFg[lay] << setw( 12 ) << tmax[lay] << setw( 12 ) << tmax[lay] - t0Fit[lay]
268 << setw( 12 ) << chindfTmax[lay] << endl;
271 cout <<
"iniT0.dat was written." << endl;
275 int nwire = m_pGeom->getWireSize();
276 for ( i = 0; i < nwire; i++ )
278 lay = m_pGeom->getWire( i )->getLayerId();
281 calconst->
resetT0( i, t0Cal[lay] );
293 double xtini[8] = { 0, 0.03, 0, 0, 0, 0, 999.9, 0 };
294 for ( lay = 0; lay <
NLAYER; lay++ )
298 for ( iEntr = 0; iEntr <
NENTRXT; iEntr++ )
300 for ( lr = 0; lr <
NLR; lr++ )
302 for ( ord = 0; ord <
NXTPAR; ord++ )
304 if ( 6 == ord ) { xtpar = tmax[lay] - t0Fit[lay]; }
305 else { xtpar = xtini[ord]; }
306 calconst->
resetXtpar( lay, iEntr, lr, ord, xtpar );
313 for ( lay = 0; lay <
NLAYER; lay++ )
322 for ( lay = 0; lay <
NLAYER; lay++ )
324 for ( iEntr = 0; iEntr <
NENTRSD; iEntr++ )
326 for ( lr = 0; lr < 2; lr++ )
339 for ( lay = 0; lay <
NLAYER; lay++ )
341 for ( iEntr = 0; iEntr <
NENTRXT; iEntr++ )
343 for ( lr = 0; lr <
NLR; lr++ )
345 xtpar = tmax[lay] - t0Fit[lay];
346 calconst->
resetXtpar( lay, iEntr, lr, 6, xtpar );
353 for ( lay = 0; lay <
NLAYER; lay++ )