14 CanvasName.push_back(
static_cast<string>(
"Offset-bunch0" ) );
15 CanvasName.push_back(
static_cast<string>(
"Offset-bunch1" ) );
16 CanvasName.push_back(
static_cast<string>(
"Offset-bunch2" ) );
17 CanvasName.push_back(
static_cast<string>(
"Offset-bunch3" ) );
18 CanvasName.push_back(
static_cast<string>(
"Sigma-bunch0" ) );
19 CanvasName.push_back(
static_cast<string>(
"Sigma-bunch1" ) );
20 CanvasName.push_back(
static_cast<string>(
"Sigma-bunch2" ) );
21 CanvasName.push_back(
static_cast<string>(
"Sigma-bunch3" ) );
37 cout <<
"tofcalgsec::calib_barrel_common: the number of Graphs is NOT reasonable!!!"
42 m_name = string(
"calib_etf_bunch" );
45 const double tbegin = -0.8;
46 const double tend = 0.8;
50 for (
unsigned int j = 0; j < 4; j++ )
54 if ( k == 0 ) {
sprintf( hname,
"tleft-bunch%i", j ); }
55 else if ( k == 1 ) {
sprintf( hname,
"tright-bunch%i", j ); }
56 else if ( k == 2 ) {
sprintf( hname,
"tcombine-bunch%i", j ); }
58 m_histograms.push_back(
new TH1F( hname, hname, tbin, tbegin, tend ) );
82 std::cout << setiosflags( ios::left ) << setw( 10 ) << icounter << setw( 8 ) <<
data->size()
83 << setw( 30 ) <<
name() << std::endl;
85 if (
data->size() > 0 )
87 std::vector<Record*>::iterator
iter =
data->begin();
101void calib_etf_bunch::fillRecord(
const Record* r ) {
102 double t0 = r->
phi();
103 int ibunch =
static_cast<int>( t0 / ( 12000. / 499.8 /
nKind ) + 0.1 ) %
nKind;
104 if ( ibunch < 0 || ibunch >
int(
nKind ) )
return;
114void calib_etf_bunch::fitHistogram() {
115 TF1* g =
new TF1(
"g",
"gaus" );
116 g->SetLineColor( 2 );
117 g->SetLineWidth( 1 );
119 std::vector<TH1F*>::iterator iter1 =
m_histograms.begin();
120 std::vector<HepVector>::iterator iter2 = m_fitresult.begin();
123 ( *iter1 )->Fit( g,
"Q" );
124 ( *iter2 )[0] = g->GetParameter( 1 );
125 ( *iter2 )[1] = g->GetParError( 1 );
126 ( *iter2 )[2] = g->GetParameter( 2 );
127 ( *iter2 )[3] = g->GetParError( 2 );
133void calib_etf_bunch::fillGraph() {
135 char gname1[256], gname2[256];
148 std::vector<double> toffset, toffseterr;
149 std::vector<double> tsigma, tsigmaerr;
155 unsigned int number = 0;
156 std::vector<HepVector>::iterator
iter = m_fitresult.begin();
157 for (
unsigned int j = 0; j < 4; j++ )
159 sprintf( gname1,
"bunch%i-offset", j );
160 sprintf( gname2,
"bunch%i-sigma", j );
163 gra[j + 4] =
new TH1F( gname2, gname2,
nBinPerCounter, -0.5, 2.5 );
168 toffset[k] = ( *(
iter + number ) )[0];
169 toffseterr[k] = ( *(
iter + number ) )[1];
170 tsigma[k] = ( *(
iter + number ) )[2];
171 tsigmaerr[k] = ( *(
iter + number ) )[3];
172 gra[j]->SetBinContent( k + 1, toffset[k] );
173 gra[j]->SetBinError( k + 1, toffseterr[k] );
174 gra[j + 4]->SetBinContent( k + 1, tsigma[k] );
175 gra[j + 4]->SetBinError( k + 1, tsigmaerr[k] );
181 gra[j]->SetMarkerSize( 1.5 );
182 gra[j]->SetMarkerStyle( 20 );
183 gra[j]->SetMarkerColor( 2 );
186 gra[j + 1]->SetMarkerSize( 1.5 );
187 gra[j + 1]->SetMarkerStyle( 21 );
188 gra[j + 1]->SetMarkerColor( 4 );
195void calib_etf_bunch::fitGraph() {
196 TF1* p0 =
new TF1(
"p0",
"pol0" );
197 p0->SetLineColor( 1 );
198 p0->SetLineWidth( 1 );
200 X = HepVector( 2, 0 );
204 ( *(
iter + i ) )->
Fit(
"p0",
"Q" );
205 X[0] = p0->GetParameter( 0 );
206 X[1] = p0->GetParError( 0 );
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
std::vector< Record * > RecordSet
const unsigned int NStrip
const int nGraphTotalBunch
std::vector< HepVector > m_result
const std::string & name() const
std::vector< TH1F * > m_histograms
unsigned int nBinPerCounter
unsigned int nCanvasPerCounter
unsigned int nHistPerCounter
std::vector< unsigned int > nGraphPerCanvas
std::vector< string > CanvasName
std::vector< TH1F * > m_graphs
TofCalibFit(bool isbarrel, const int npar)
void calculate(RecordSet *&data, unsigned int ibunch)
calib_etf_bunch(const unsigned int nbunch)