BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TofCalibFit Class Referenceabstract

#include <TofCalibFit.h>

Inheritance diagram for TofCalibFit:

Public Member Functions

 TofCalibFit (bool isbarrel, const int npar)
 ~TofCalibFit ()
const std::string & name () const
virtual void calculate (RecordSet *&data, unsigned int icounter)=0
void fillTxt (const char *file)
void fillRoot (const char *file)
HepVector tcorrelation ()
void setTCorrelation (HepVector tc)

Protected Attributes

int m_npar
unsigned int nKind
unsigned int nBinPerCounter
unsigned int nHistPerCounter
unsigned int nCanvasPerCounter
std::vector< unsigned int > nGraphPerCanvasPerCounter
unsigned int nHistogram
unsigned int nCanvas
std::vector< unsigned int > nGraphPerCanvas
string m_name
HepVector X
std::vector< TH1F * > m_histograms
std::vector< TH1F * > m_graphs
std::vector< HepVector > m_result
std::vector< string > CanvasPerCounterName
std::vector< string > CanvasName
HepVector m_tcorrelation

Detailed Description

Definition at line 21 of file TofCalibFit.h.

Constructor & Destructor Documentation

◆ TofCalibFit()

TofCalibFit::TofCalibFit ( bool isbarrel,
const int npar )

Definition at line 17 of file TofCalibFit.cxx.

17 {
18 if ( isbarrel ) { nCounter = NBarrel; }
19 else { nCounter = NEndcap; }
20
21 nKind = 0;
23
26 nHistogram = 0;
27 nCanvas = 0;
28
29 m_npar = npar;
30 X = HepVector( m_npar, 0 );
31 m_name = string( "calibfit" );
32
33 m_tcorrelation = HepVector( nBarrelCommon, 0 );
34}
const int nBarrelCommon
Definition TofCalibFit.h:19
const unsigned int NBarrel
Definition TofDataSet.h:12
const unsigned int NEndcap
Definition TofDataSet.h:13
string m_name
Definition TofCalibFit.h:50
unsigned int nCanvas
Definition TofCalibFit.h:47
unsigned int nBinPerCounter
Definition TofCalibFit.h:41
HepVector m_tcorrelation
Definition TofCalibFit.h:60
unsigned int nKind
Definition TofCalibFit.h:40
unsigned int nCanvasPerCounter
Definition TofCalibFit.h:44
unsigned int nHistPerCounter
Definition TofCalibFit.h:43
HepVector X
Definition TofCalibFit.h:51
unsigned int nHistogram
Definition TofCalibFit.h:46

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), and calib_etf_bunch::calib_etf_bunch().

◆ ~TofCalibFit()

TofCalibFit::~TofCalibFit ( )

Definition at line 36 of file TofCalibFit.cxx.

36 {
37 std::vector<TH1F*>::iterator iter1 = m_histograms.begin();
38 for ( ; iter1 != m_histograms.end(); iter1++ ) { delete ( *iter1 ); }
39 m_histograms.clear();
40 std::vector<TH1F*>::iterator iter2 = m_graphs.begin();
41 for ( ; iter2 != m_graphs.end(); iter2++ ) { delete ( *iter2 ); }
42 m_graphs.clear();
43 m_result.clear();
44}
std::vector< HepVector > m_result
Definition TofCalibFit.h:55
std::vector< TH1F * > m_histograms
Definition TofCalibFit.h:53
std::vector< TH1F * > m_graphs
Definition TofCalibFit.h:54

Member Function Documentation

◆ calculate()

virtual void TofCalibFit::calculate ( RecordSet *& data,
unsigned int icounter )
pure virtual

◆ fillRoot()

void TofCalibFit::fillRoot ( const char * file)

Definition at line 75 of file TofCalibFit.cxx.

75 {
76
77 unsigned int nhist = m_histograms.size();
78 if ( nhist != ( nCounter * nHistPerCounter + nHistogram ) )
79 {
80 std::cout << " tofcalgsec::TofCalibFit:" << m_name
81 << ": the number of histograms is NOT same as the number of histograms saved!"
82 << " nhist=" << nhist
83 << " calculated=" << ( nCounter * nHistPerCounter + nHistogram )
84 << " nCounter=" << nCounter << " nHistPerCounter=" << nHistPerCounter
85 << " nHistogram=" << nHistogram << std::endl;
86 exit( 0 );
87 }
88
89 unsigned int numgraph1 = 0;
90 unsigned int numgraph2 = 0;
91 if ( nCanvasPerCounter != 0 )
92 {
93 std::vector<unsigned int>::iterator iter = nGraphPerCanvasPerCounter.begin();
94 for ( ; iter != nGraphPerCanvasPerCounter.end(); iter++ )
95 { numgraph1 = numgraph1 + ( *iter ); }
96 }
97 if ( nCanvas != 0 )
98 {
99 std::vector<unsigned int>::iterator iter = nGraphPerCanvas.begin();
100 for ( ; iter != nGraphPerCanvas.end(); iter++ ) { numgraph2 = numgraph2 + ( *iter ); }
101 }
102 unsigned int ngraph = m_graphs.size();
103 if ( ngraph != ( nCounter * numgraph1 + numgraph2 ) )
104 {
105 std::cout << " tofcalgsec::TofCalibFit:" << m_name
106 << ": the number of graphs is NOT same as the number of graphs saved!"
107 << " ngraph=" << ngraph << " nCounter=" << nCounter
108 << " numgraph1=" << numgraph1 << " numgraph2=" << numgraph2 << std::endl;
109 exit( 0 );
110 }
111
112 TFile f( file, "RECREATE" );
113
114 gStyle->SetOptStat( 2211 );
115 gStyle->SetOptFit( 1111 );
116 gStyle->SetLabelSize( 0.03, "x" );
117 gStyle->SetLabelSize( 0.03, "y" );
118
119 char dirname[256];
120 char canvasname[256];
121 if ( nHistPerCounter > 0 || nCanvasPerCounter > 0 )
122 {
123 std::vector<TH1F*>::iterator iter1 = m_histograms.begin();
124 std::vector<TH1F*>::iterator iter2 = m_graphs.begin();
125 for ( unsigned int i = 0; i < nCounter; i++ )
126 {
127 sprintf( dirname, "tofid%i", i );
128 TDirectory* cdresult = f.mkdir( dirname );
129 cdresult->cd();
130
131 for ( unsigned int j = 0; j < nHistPerCounter; j++ ) { ( *( iter1 + j ) )->Write(); }
132 iter1 = iter1 + nHistPerCounter;
133
134 for ( unsigned int j = 0; j < nCanvasPerCounter; j++ )
135 {
136 std::vector<string>::iterator it1 = CanvasPerCounterName.begin() + j;
137 std::vector<unsigned int>::iterator it2 = nGraphPerCanvasPerCounter.begin() + j;
138 sprintf( canvasname, "%s-tofid-%i", ( *it1 ).c_str(), i );
139 TCanvas* c1 = new TCanvas( canvasname, canvasname, 1 );
140 c1->SetFillColor( 10 );
141 for ( unsigned int k = 0; k < ( *it2 ); k++ )
142 {
143 if ( k == 0 ) { ( *( iter2 + k ) )->Draw( "E" ); }
144 else { ( *( iter2 + k ) )->Draw( "Esame" ); }
145 }
146 iter2 = iter2 + ( *it2 );
147 c1->Write();
148 }
149 }
150 }
151
152 if ( nHistogram > 0 || nCanvas > 0 )
153 {
154 sprintf( dirname, "summary" );
155 TDirectory* cdresult = f.mkdir( dirname );
156 cdresult->cd();
157
158 std::vector<TH1F*>::iterator iter1 = m_histograms.begin() + nCounter * nHistPerCounter;
159 std::vector<TH1F*>::iterator iter2 = m_graphs.begin() + nCounter * numgraph1;
160 for ( ; iter1 != m_histograms.end(); iter1++ ) { ( *iter1 )->Write(); }
161
162 for ( unsigned int j = 0; j < nCanvas; j++ )
163 {
164 std::vector<string>::iterator it1 = CanvasName.begin() + j;
165 std::vector<unsigned int>::iterator it2 = nGraphPerCanvas.begin() + j;
166 sprintf( canvasname, ( *it1 ).c_str() );
167 TCanvas* c1 = new TCanvas( canvasname, canvasname, 1 );
168 c1->SetFillColor( 10 );
169 for ( unsigned int k = 0; k < ( *it2 ); k++ )
170 {
171 if ( k == 0 ) { ( *( iter2 + k ) )->Draw( "E" ); }
172 else { ( *( iter2 + k ) )->Draw( "Esame" ); }
173 }
174 iter2 = iter2 + ( *it2 );
175 c1->Write();
176 }
177 }
178
179 f.Close();
180
181 return;
182}
legend Draw()
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)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
char * file
Definition DQA_TO_DB.cxx:16
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
std::vector< unsigned int > nGraphPerCanvasPerCounter
Definition TofCalibFit.h:45
std::vector< unsigned int > nGraphPerCanvas
Definition TofCalibFit.h:48
std::vector< string > CanvasName
Definition TofCalibFit.h:58
std::vector< string > CanvasPerCounterName
Definition TofCalibFit.h:57

◆ fillTxt()

void TofCalibFit::fillTxt ( const char * file)

Definition at line 46 of file TofCalibFit.cxx.

46 {
47 std::ofstream out( file, ios::out );
48 if ( out )
49 {
50 std::vector<HepVector>::iterator it;
51 for ( it = m_result.begin(); it != m_result.end(); it++ )
52 {
53 for ( int i = 0; i < ( *it ).num_row(); i++ ) { out << ( *it )[i] << " "; }
54 out << std::endl;
55 }
56 out.close();
57 }
58 else
59 {
60 cerr << "error when open file " << file << " for write in " << name() << "::fillTxt()"
61 << std::endl;
62 cout << "print all parameters to srceen: in total " << m_result.size() << " items"
63 << std::endl;
64 std::vector<HepVector>::iterator it;
65 for ( it = m_result.begin(); it != m_result.end(); it++ )
66 {
67 for ( int i = 0; i < ( *it ).num_row(); i++ ) { cout << ( *it )[i] << " "; }
68 cout << std::endl;
69 }
70 }
71
72 return;
73}
const std::string & name() const
Definition TofCalibFit.h:27

◆ name()

◆ setTCorrelation()

void TofCalibFit::setTCorrelation ( HepVector tc)
inline

Definition at line 35 of file TofCalibFit.h.

35{ m_tcorrelation = tc; }

◆ tcorrelation()

HepVector TofCalibFit::tcorrelation ( )
inline

Definition at line 34 of file TofCalibFit.h.

34{ return X; }

Member Data Documentation

◆ CanvasName

◆ CanvasPerCounterName

std::vector<string> TofCalibFit::CanvasPerCounterName
protected

◆ m_graphs

std::vector<TH1F*> TofCalibFit::m_graphs
protected

Definition at line 54 of file TofCalibFit.h.

Referenced by fillRoot(), and ~TofCalibFit().

◆ m_histograms

◆ m_name

◆ m_npar

int TofCalibFit::m_npar
protected

Definition at line 38 of file TofCalibFit.h.

Referenced by TofCalibFit().

◆ m_result

◆ m_tcorrelation

HepVector TofCalibFit::m_tcorrelation
protected

Definition at line 60 of file TofCalibFit.h.

Referenced by setTCorrelation(), and TofCalibFit().

◆ nBinPerCounter

◆ nCanvas

◆ nCanvasPerCounter

◆ nGraphPerCanvas

std::vector<unsigned int> TofCalibFit::nGraphPerCanvas
protected

◆ nGraphPerCanvasPerCounter

std::vector<unsigned int> TofCalibFit::nGraphPerCanvasPerCounter
protected

◆ nHistogram

◆ nHistPerCounter

◆ nKind

◆ X

HepVector TofCalibFit::X
protected

Definition at line 51 of file TofCalibFit.h.

Referenced by tcorrelation(), and TofCalibFit().


The documentation for this class was generated from the following files: