31 m_hgenerated ( NULL ),
35 m_phi_vs_phiR ( NULL ),
36 m_phiv1reco_vs_phiR ( NULL ),
37 m_phiv2reco_vs_phiR ( NULL ),
38 m_phi_vs_phiR_etap ( NULL ),
39 m_phi_vs_phiR_etan ( NULL ),
58 msg(MSG::INFO) <<
">>> CheckFlow from Initialize" <<
endmsg;
62 msg(MSG::ERROR) <<
"Could not find StoreGateSvc" <<
endmsg;
67 m_b =
new TH1F(
"b",
"Impact parameter",35,0.,35.0);
76 "Phi - PhiR positive eta",
79 "Phi - PhiR negative eta",
83 20,0,20, 30,-7.5,7.5, 25,0,5000);
85 "Tracks vs b, eta, pt",
86 20,0,20, 30,-7.5,7.5, 25,0,5000);
88 ITHistSvc *rootHistSvc;
89 if (!service(
"THistSvc", rootHistSvc,
true).isSuccess()) {
90 msg(MSG::ERROR) <<
"Unable to locate THistSvc" <<
endmsg;
91 return StatusCode::FAILURE;
94 std::string StreamAndPath=
"/FlowOutPut/";
95 std::string histPath = StreamAndPath;
96 if ( rootHistSvc->regHist(histPath+
m_hgenerated->GetName(),
98 msg(MSG::WARNING) <<
"Can't book "
101 if ( rootHistSvc->regHist(histPath+
m_b->GetName(),
103 msg(MSG::WARNING) <<
"Can't book "
106 if ( rootHistSvc->regHist(histPath+
m_phi->GetName(),
108 msg(MSG::WARNING) <<
"Can't book "
111 if ( rootHistSvc->regHist(histPath+
m_phiR->GetName(),
113 msg(MSG::WARNING) <<
"Can't book "
118 msg(MSG::WARNING) <<
"Can't book "
123 msg(MSG::WARNING) <<
"Can't book "
128 msg(MSG::WARNING) <<
"Can't book "
133 msg(MSG::WARNING) <<
"Can't book "
138 msg(MSG::WARNING) <<
"Can't book "
141 if ( rootHistSvc->regHist(histPath+
m_v2betapth->GetName(),
143 msg(MSG::WARNING) <<
"Can't book "
146 if ( rootHistSvc->regHist(histPath+
m_ebetapth->GetName(),
148 msg(MSG::WARNING) <<
"Can't book "
159 msg(MSG::INFO) <<
">>> CheckFlow from execute" <<
endmsg;
177 if (
m_sgSvc->
retrieve(hijing_pars,
"Hijing_event_params").isFailure() ) {
178 msg(MSG::ERROR) <<
"Could not retrieve Hijing_event_params"
180 return StatusCode::FAILURE;
182 float b = hijing_pars->
get_b();
183 float phiR = hijing_pars->
get_bphi();
188 return StatusCode::SUCCESS;
193 float ngenerated = 0;
194 double phiv1_recon, phiv1_recop;
195 double phiv1_reco = 0, phiv2_reco = 0;
196 double phi_reco_sin1phip = 0, phi_reco_cos1phip = 0;
197 double phi_reco_sin1phin = 0, phi_reco_cos1phin = 0;
198 double phi_reco_sin2phi = 0, phi_reco_cos2phi = 0;
200 std::vector<HepMC::ConstGenParticlePtr>
particles;
202 if (
stat.isFailure()) {
208 int pid = pitr->pdg_id();
209 int p_stat = pitr->status();
210 double pt = pitr->momentum().perp();
211 double rapid = pitr->momentum().pseudoRapidity();
212 double phi = pitr->momentum().phi();
214 <<
" PID = " <<
pid <<
" Status = " << p_stat
215 <<
" Eta = " << rapid <<
" Phi = " <<
phi
216 <<
" PhiR = " << phiR <<
endmsg;
222 double phi_corr =
phi - phiR;
228 int kpi = (
int)(phi_corr/(2*
M_PI));
229 phi_corr -= kpi * 2*
M_PI;
230 if (phi_corr < -
M_PI) phi_corr += 2*
M_PI;
231 if (phi_corr >
M_PI) phi_corr -= 2*
M_PI;
251 phiv1_recop = std::atan2( phi_reco_sin1phip,phi_reco_cos1phip );
252 phiv1_recon = std::atan2( phi_reco_sin1phin,phi_reco_cos1phin ) +
M_PI;
253 if( phiv1_recon >
M_PI ) phiv1_recon -= 2*
M_PI;
255 phiv1_reco = (phiv1_recop + phiv1_recon)/2;
256 phiv2_reco = 0.5 * std::atan2( phi_reco_sin2phi,phi_reco_cos2phi );
258 <<
" PhiR = " << phiR
259 <<
" PhiV1Reco = " << phiv1_reco
260 <<
" PhiV2Reco = " << phiv2_reco <<
endmsg;
263 double phiR_v1corr = phiR;
264 if( phiR >
M_PI ) phiR_v1corr = phiR_v1corr - 2*
M_PI;
266 double phiR_v2corr = phiR;
267 if (phiR >
M_PI/2) phiR_v2corr -=
M_PI;
268 if (phiR > 3*
M_PI/2) phiR_v2corr -= 2*
M_PI;
273 return StatusCode::SUCCESS;
277 msg(MSG::INFO) <<
">>> CheckFlow from finalize" <<
endmsg;
279 return StatusCode::SUCCESS;