60 {
62 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
63 MsgStream log(
msgSvc,
"MilleAlign" );
64 log << MSG::INFO << "MilleAlign::initialize()" << endmsg;
65
66 m_hlist = hlist;
67 m_mdcGeomSvc = mdcGeomSvc;
68 m_mdcFunSvc = mdcFunSvc;
69 m_mdcUtilitySvc = mdcUtilitySvc;
70
71
72 m_hresAll = new TH1F( "HResAllInc", "", 200, -1.0, 1.0 );
73 m_hlist->Add( m_hresAll );
74
75 m_hresInn = new TH1F( "HResInnInc", "", 200, -1.0, 1.0 );
76 m_hlist->Add( m_hresInn );
77
78 m_hresStp = new TH1F( "HResStpInc", "", 200, -1.0, 1.0 );
79 m_hlist->Add( m_hresStp );
80
81 m_hresOut = new TH1F( "HResOutInc", "", 200, -1.0, 1.0 );
82 m_hlist->Add( m_hresOut );
83
84 char hname[200];
85 for (
int lay = 0; lay <
LAYERNMAX; lay++ )
86 {
87 sprintf( hname,
"Res_Layer%02d", lay );
88 m_hresLay[lay] = new TH1F( hname, "", 200, -1.0, 1.0 );
89 m_hlist->Add( m_hresLay[lay] );
90 }
91
92 m_hresAllRec = new TH1F( "HResAllRecInc", "", 200, -1.0, 1.0 );
93 m_hlist->Add( m_hresAllRec );
94 for (
int lay = 0; lay <
LAYERNMAX; lay++ )
95 {
96 sprintf( hname,
"Res_LayerRec%02d", lay );
97 m_hresLayRec[lay] = new TH1F( hname, "", 200, -1.0, 1.0 );
98 m_hlist->Add( m_hresLayRec[lay] );
99 }
100
101
102 m_hddoca = new TH1F( "delt_doca", "", 200, -1.0, 1.0 );
103 m_hlist->Add( m_hddoca );
104
105 for (
int lay = 0; lay <
LAYERNMAX; lay++ )
106 {
107 sprintf( hname,
"delt_docaLay%02d", lay );
108 m_hddocaLay[lay] = new TH1F( hname, "", 200, -1.0, 1.0 );
109 m_hlist->Add( m_hddocaLay[lay] );
110 }
111
112
117
118 int i;
120 {
123 }
124
125 m_pMilleAlign = new Millepede();
126 m_pMilleAlign->InitMille( &m_dofs[0], &m_sigm[0], m_nglo, m_nloc,
g_start_chi_cut, 3,
128
129 m_derGB.resize( m_npar );
130 m_derNonLin.resize( m_npar );
131 m_par.resize( m_npar );
132 m_error.resize( m_npar );
133 m_pull.resize( m_npar );
134
135 m_derLC.resize( m_nloc );
136
137
138 std::vector<double> constTX;
139 std::vector<double> constTY;
140 std::vector<double> constRZ;
141
142 std::vector<double> constTXE;
143 std::vector<double> constTXW;
144 std::vector<double> constTYE;
145 std::vector<double> constTYW;
146 std::vector<double> constRZE;
147 std::vector<double> constRZW;
148
149 constTX.resize( m_npar );
150 constTY.resize( m_npar );
151 constRZ.resize( m_npar );
152
153 constTXE.resize( m_npar );
154 constTXW.resize( m_npar );
155 constTYE.resize( m_npar );
156 constTYW.resize( m_npar );
157 constRZE.resize( m_npar );
158 constRZW.resize( m_npar );
159
160 for ( i = 0; i < m_npar; i++ )
161 {
162 constTX[i] = 0.0;
163 constTY[i] = 0.0;
164 constRZ[i] = 0.0;
165
166 constTXE[i] = 0.0;
167 constTXW[i] = 0.0;
168 constTYE[i] = 0.0;
169 constTYW[i] = 0.0;
170 constRZE[i] = 0.0;
171 constRZW[i] = 0.0;
172 }
173 constTX[7] = 1.0;
174 constTX[15] = 1.0;
175 constTY[23] = 1.0;
176 constTY[31] = 1.0;
177 constRZ[39] = 1.0;
178 constRZ[47] = 1.0;
179
180 constTXE[7] = 1.0;
181 constTXW[15] = 1.0;
182 constTYE[23] = 1.0;
183 constTYW[31] = 1.0;
184 constRZE[39] = 1.0;
185 constRZW[47] = 1.0;
186
187
188
189
190
191 m_pMilleAlign->ConstF( &constTXE[0], 0.0 );
192 m_pMilleAlign->ConstF( &constTXW[0], 0.0 );
193 m_pMilleAlign->ConstF( &constTYE[0], 0.0 );
194 m_pMilleAlign->ConstF( &constTYW[0], 0.0 );
195 m_pMilleAlign->ConstF( &constRZE[0], 0.0 );
196 m_pMilleAlign->ConstF( &constRZW[0], 0.0 );
197}
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)
const double g_res_cut_init
const double g_start_chi_cut