65 {
66 double pi = 3.141592653;
67 double dist[NPreXtBin];
68 double xtpar[6];
69 char hname[200];
70
71 TF1* funXt = new TF1( "funXt", xtfun, 0, 300, 6 );
72 funXt->FixParameter( 0, 0.0 );
73 funXt->SetParameter( 1, 0.03 );
74 funXt->SetParameter( 2, 0.0 );
75 funXt->SetParameter( 3, 0.0 );
76 funXt->SetParameter( 4, 0.0 );
77 funXt->SetParameter( 5, 0.0 );
78
80 for (
int lay = 0; lay <
NLAYER; lay++ )
81 {
82 sprintf( hname,
"mgrPreXt%02d", lay );
83 m_grXt[lay] = new TGraph();
84 m_grXt[lay]->SetName( hname );
85 m_grXt[lay]->SetMarkerStyle( 20 );
86 m_fdPreXt->Add( m_grXt[lay] );
87
88 double layRad = m_pGeom->getLayer( lay )->getLayerRad();
89 int ncel = m_pGeom->getLayer( lay )->getNcell();
90 double dm =
pi * layRad / (double)ncel;
91 Double_t nTot = m_nhitTot->GetBinContent( lay + 1 );
92 double tm = calconst->
getXtpar( lay, 0, 0, 6 );
93
94 fxtlog << "layer " << lay << endl;
95 for (
int bin = 0;
bin < NPreXtBin;
bin++ )
96 {
97 Double_t nhitBin = m_nhitBin[lay]->GetBinContent(
bin + 1 );
98 dist[
bin] = dm * nhitBin / nTot;
99 m_grXt[lay]->SetPoint(
bin, m_tbin[
bin], dist[
bin] );
100 fxtlog << setw( 4 ) <<
bin << setw( 15 ) << m_tbin[
bin] << setw( 15 ) << dist[
bin]
101 << setw( 15 ) << dm << setw( 10 ) << nhitBin << setw( 10 ) << nTot << endl;
102
103 if ( m_tbin[
bin] >= tm )
break;
104 }
105
107 {
108 m_grXt[lay]->Fit( funXt, "Q", "", 0.0, tm );
109 for ( int ord = 0; ord < 6; ord++ ) xtpar[ord] = funXt->GetParameter( ord );
110
111 for (
int iEntr = 0; iEntr <
NENTRXT; iEntr++ )
112 {
113 for (
int iLR = 0; iLR <
NLR; iLR++ )
114 {
115 for ( int ord = 0; ord < 6; ord++ )
116 { calconst->
resetXtpar( lay, iEntr, iLR, ord, xtpar[ord] ); }
117 }
118 }
119 }
120 else
121 {
122 for (
int ord = 0; ord < 6; ord++ ) xtpar[ord] = calconst->
getXtpar( lay, 0, 0, ord );
123 }
124
125 for ( int ord = 0; ord < 6; ord++ ) fxtlog << setw( 14 ) << xtpar[ord];
126 fxtlog << setw( 10 ) << tm << " 0" << endl;
127 }
128 fxtlog.close();
129 cout << "preXt.dat was written." << endl;
130
131 renameHist();
132 delete funXt;
133}
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)
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per bin
void resetXtpar(int lay, int entr, int lr, int order, double val)
double getXtpar(int lay, int entr, int lr, int order)