2#include "include/fun.h"
11 cout <<
"Alignment type: ResiAlign" << endl;
20 m_hnTrk =
new TH1F(
"mHNtrack",
"", 10, -0.5, 9.5);
23 m_hnHit =
new TH1F(
"mHNhit",
"", 100, -0.5, 99.5);
26 m_hlayHitmap =
new TH1F(
"mHitmap",
"", 43, -0.5, 42.5);
29 m_hresAll =
new TH1F(
"mHResAllInc",
"", 200, -1.0, 1.0);
30 hlist->Add(m_hresAll);
32 m_hresInn =
new TH1F(
"mHResInnInc",
"", 200, -1.0, 1.0);
33 hlist->Add(m_hresInn);
35 m_hresStp =
new TH1F(
"mHResStpInc",
"", 200, -1.0, 1.0);
36 hlist->Add(m_hresStp);
38 m_hresOut =
new TH1F(
"mHResOutInc",
"", 200, -1.0, 1.0);
39 hlist->Add(m_hresOut);
42 sprintf(hname,
"mRes_Layer%02d", lay);
43 m_hresLay[lay] =
new TH1F(hname,
"", 200, -1.0, 1.0);
44 hlist->Add(m_hresLay[lay]);
47 for(
int iEP=0; iEP<
NEP; iEP++){
48 m_gr[iEP] =
new TGraph();
49 sprintf(hname,
"mgrResi%02d", iEP);
50 m_gr[iEP]->SetName(hname);
51 hlist->Add(m_gr[iEP]);
53 m_grSinPhi[iEP] =
new TGraph();
54 sprintf(hname,
"mgrResi_sinPhi%02d", iEP);
55 m_grSinPhi[iEP]->SetName(hname);
56 hlist->Add(m_grSinPhi[iEP]);
58 m_grCosPhi[iEP] =
new TGraph();
59 sprintf(hname,
"mgrResi_cosPhi%02d", iEP);
60 m_grCosPhi[iEP]->SetName(hname);
61 hlist->Add(m_grCosPhi[iEP]);
70 hist = (TH1F*)fhist->Get(
"HNtrack");
73 hist = (TH1F*)fhist->Get(
"HNhit");
76 hist = (TH1F*)fhist->Get(
"Hitmap");
77 m_hlayHitmap->Add(hist);
79 hist = (TH1F*)fhist->Get(
"HResAllInc");
82 hist = (TH1F*)fhist->Get(
"HResInnInc");
85 hist = (TH1F*)fhist->Get(
"HResStpInc");
88 hist = (TH1F*)fhist->Get(
"HResOutInc");
92 sprintf(hname,
"Res_Layer%02d", lay);
93 hist = (TH1F*)fhist->Get(hname);
94 m_hresLay[lay]->Add(hist);
97 for(
int iEP=0; iEP<
NEP; iEP++){
98 sprintf(hname,
"grResi%02d", iEP);
99 TGraph* gr = (TGraph*)fhist->Get(hname);
103 for(
int i=0; i<np; i++){
104 gr->GetPoint(i, xx, yy);
105 m_gr[iEP]->SetPoint(m_npoint[iEP], xx, yy);
106 m_grSinPhi[iEP]->SetPoint(m_npoint[iEP],
sin(xx), yy);
107 m_grCosPhi[iEP]->SetPoint(m_npoint[iEP],
cos(xx), yy);
120 double rLayer[] = { 120.225, 205.0, 237.55, 270.175, 302.625, 334.775, 366.65, 500.0,
121 120.225, 205.0, 237.55, 270.175, 302.625, 334.775, 366.65, 500.0 };
123 TCanvas c1(
"c1",
"c1", 10, 10, 700, 500);
126 TF1* fResPhi =
new TF1(
"fResPhi",
funResi, 0,
PI2, 3);
127 fResPhi->SetParameter(0, 0.0);
128 fResPhi->SetParameter(1, 0.0);
129 fResPhi->SetParameter(2, 0.0);
131 for(iEP=0; iEP<
NEP; iEP++){
132 if((m_gr[iEP]->GetN()) > 500){
134 m_gr[iEP]->Fit(
"fResPhi",
"V");
135 par[0] = fResPhi->GetParameter(0);
136 par[1] = fResPhi->GetParameter(1);
137 par[2] = fResPhi->GetParameter(2);
138 err[0] = fResPhi->GetParError(0);
139 err[1] = fResPhi->GetParError(1);
140 err[2] = fResPhi->GetParError(2);
162 rz = par[0] / rLayer[iEP];
164 if (7==iEP || 15==iEP) {
178 alignPar->
setErrRz(iEP, err[0]/rLayer[iEP]);
185void ResiAlign::renameHist(){
187 m_hnTrk->SetName(
"HNtrack");
188 m_hnHit->SetName(
"HNhit");
189 m_hlayHitmap->SetName(
"Hitmap");
190 m_hresAll->SetName(
"HResAllInc");
191 m_hresInn->SetName(
"HResInnInc");
192 m_hresStp->SetName(
"HResStpInc");
193 m_hresOut->SetName(
"HResOutInc");
195 sprintf(hname,
"Res_Layer%02d", lay);
196 m_hresLay[lay]->SetName(hname);
198 for(
int iEP=0; iEP<
NEP; iEP++){
199 sprintf(hname,
"grResi%02d", iEP);
200 m_gr[iEP]->SetName(hname);
202 sprintf(hname,
"grResi_sinPhi%02d", iEP);
203 m_grSinPhi[iEP]->SetName(hname);
205 sprintf(hname,
"grResi_cosPhi%02d", iEP);
206 m_grCosPhi[iEP]->SetName(hname);
212 val = par[0] + par[1]*
sin(x[0]) + par[2]*
cos(x[0]);
double sin(const BesAngle a)
double cos(const BesAngle a)
void setErrRz(int iEP, double val)
void setDelDy(int iEP, double val)
void setDelRz(int iEP, double val)
void setErrDx(int iEP, double val)
void setDelDx(int iEP, double val)
void setErrDy(int iEP, double val)
static Double_t funResi(double *x, double *par)
void mergeHist(TFile *fhist)
void align(MdcAlignPar *alignPar)
void init(TObjArray *hlist, MdcCosGeom *pGeom)
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)