19 static_cast<string>(
"Most Probable Value of Q0 vs TOF counter Number (Barrel part)" ) );
21 static_cast<string>(
"Sigma of Q0 vs TOF Counter Number (Barrel part)" ) );
25 m_name = string(
"calib_barrel_q0" );
32 cout <<
"tofcalgsec::calib_barrel_q0: the number of Graphs is NOT reasonable!!!" << endl;
37 const double qbegin = 0.0;
38 const double qend = 5000.0;
42 for (
unsigned int i = 0; i <
NBarrel; i++ )
46 sprintf( hname,
"Q0-tofid-%i", i );
47 m_histograms.push_back(
new TH1F( hname, hname, qbin, qbegin, qend ) );
49 m_fitresult.push_back( HepVector(
nParQ0, 0 ) );
55 for (
unsigned int i = 0; i <
NBarrel; i++ )
70 std::cout << setiosflags( ios::left ) << setw( 10 ) << icounter << setw( 8 ) <<
data->size()
71 << setw( 30 ) <<
name() << std::endl;
73 if (
data->size() > 0 )
75 std::vector<Record*>::iterator
iter =
data->begin();
78 fitHistogram( icounter );
80 if ( icounter == (
NBarrel - 1 ) )
89void calib_barrel_q0::fillRecord(
const Record* r,
unsigned int icounter ) {
91 ( *iter )->Fill( r->
q0() );
95void calib_barrel_q0::fitHistogram(
unsigned int icounter ) {
96 TF1* ld =
new TF1(
"ld",
"landau" );
97 ld->SetLineColor( 2 );
98 ld->SetLineWidth( 1 );
100 std::vector<TH1F*>::iterator iter1 =
m_histograms.begin() + icounter;
101 std::vector<HepVector>::iterator iter2 = m_fitresult.begin() + icounter;
102 ( *iter1 )->Fit( ld,
"Q" );
103 ( *iter2 )[0] = ld->GetParameter( 1 );
104 ( *iter2 )[1] = ld->GetParError( 1 );
105 ( *iter2 )[2] = ld->GetParameter( 2 );
106 ( *iter2 )[3] = ld->GetParError( 2 );
111void calib_barrel_q0::fillGraph() {
113 std::vector<double> qmean, qmeanerr;
114 std::vector<double> qsig, qsigerr;
122 graph1->SetMarkerSize( 1.5 );
123 graph1->SetMarkerStyle( 20 );
124 graph1->SetMarkerColor( 2 );
128 graph2->SetMarkerSize( 1.5 );
129 graph2->SetMarkerStyle( 20 );
130 graph2->SetMarkerColor( 4 );
132 std::vector<HepVector>::iterator
iter = m_fitresult.begin();
133 for (
unsigned int i = 0; i <
NBarrel; i++,
iter++ )
135 qmean[i] = ( *iter )[0];
136 qmeanerr[i] = ( *iter )[1];
137 qsig[i] = ( *iter )[2];
138 qsigerr[i] = ( *iter )[3];
139 graph1->SetBinContent( i + 1, qmean[i] );
140 graph1->SetBinError( i + 1, qmeanerr[i] );
141 graph2->SetBinContent( i + 1, qsig[i] );
142 graph2->SetBinError( i + 1, qsigerr[i] );
151void calib_barrel_q0::fitGraph() {
152 unsigned int number = 0;
153 std::vector<HepVector>::iterator iter1 =
m_result.begin();
154 std::vector<HepVector>::iterator iter2 = m_fitresult.begin();
155 for ( ; iter1 !=
m_result.end(); iter1++, number++ )
157 ( *iter1 )[0] = ( *( iter2 + number ) )[0] / ( *iter2 )[0];
158 ( *iter1 )[1] = ( *( iter2 + number ) )[0];
159 ( *iter1 )[2] = ( *( iter2 + number ) )[2];
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 NBarrel
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 icounter)