Definition at line 126 of file TrackParameterAnalyzer.cc.
References HltBtagPostValidation_cff::c, funct::cos(), gather_cfg::cout, edmSimTrackContainerToken_, edmSimVertexContainerToken_, edm::Event::getByToken(), h1_Beff_, h1_par0_, h1_par1_, h1_par2_, h1_par3_, h1_par4_, h1_pull0_, h1_pull1_, h1_pull2_, h1_pull3_, h1_pull4_, h1_res0_, h1_res1_, h1_res2_, h1_res3_, h1_res4_, h2_dvsphi_, reco::TrackBase::i_dsz, reco::TrackBase::i_dxy, reco::TrackBase::i_lambda, reco::TrackBase::i_phi, reco::TrackBase::i_qoverp, kappa, M_PI, match(), AlCaHLTBitMon_ParallelJobs::p, funct::pow(), class-composition::Q, data-class-funcs::q, recoTrackCollectionToken_, hiRegitInitialStep_cff::recTracks, alignCSCRings::s, simUnit_, funct::sin(), mathSSE::sqrt(), OrderedSet::t, findQualityFiles::v, verbose_, and HLTMuonOfflineAnalyzer_cfi::z0.
127 using CLHEP::HepLorentzVector;
129 const double fBfield = 3.8;
134 std::cout <<
"SimVertex " << simVtcs->size() << std::endl;
135 for (edm::SimVertexContainer::const_iterator
v = simVtcs->begin();
v != simVtcs->end(); ++
v) {
136 std::cout <<
"simvtx " << std::setw(10) << std::setprecision(4) <<
v->position().x() <<
" " <<
v->position().y()
137 <<
" " <<
v->position().z() <<
" " <<
v->parentIndex() <<
" " <<
v->noParent() <<
" " << std::endl;
146 std::cout <<
"simtrks " << simTrks->size() << std::endl;
148 std::vector<ParameterVector> tsim;
149 for (edm::SimTrackContainer::const_iterator
t = simTrks->begin();
t != simTrks->end(); ++
t) {
151 std::cout <<
"simtrk has no vertex" << std::endl;
155 HepLorentzVector
v((*simVtcs)[
t->vertIndex()].position().x(),
156 (*simVtcs)[
t->vertIndex()].position().y(),
157 (*simVtcs)[
t->vertIndex()].position().z(),
158 (*simVtcs)[
t->vertIndex()].position().e());
159 int pdgCode =
t->type();
161 if (pdgCode == -99) {
163 std::cout <<
"funny particle skipped , code=" << pdgCode << std::endl;
166 if ((pdgCode == 11) || (pdgCode == 13) || (pdgCode == 15) || (pdgCode == -211) || (pdgCode == -2212) ||
169 }
else if ((pdgCode == -11) || (pdgCode == -13) || (pdgCode == -15) || (pdgCode == 211) || (pdgCode == 2212) ||
173 std::cout << pdgCode <<
" " << std::endl;
175 HepLorentzVector
p(
t->momentum().x(),
t->momentum().y(),
t->momentum().z(),
t->momentum().e());
178 <<
" gen=" << std::setw(4) <<
t->genpartIndex() <<
" vtx=" << std::setw(4) <<
t->vertIndex()
179 <<
" pdg=" << std::setw(5) <<
t->type() <<
" Q=" << std::setw(3) << Q <<
" pt=" << std::setw(6)
180 <<
p.perp() <<
" vx=" << std::setw(6) <<
v.x() <<
" vy=" << std::setw(6) <<
v.y()
181 <<
" vz=" << std::setw(6) <<
v.z() << std::endl;
183 if ((Q != 0) && (
p.perp() > 0.1)) {
187 double kappa = -Q * 0.002998 * fBfield /
p.perp();
188 double D0 = x0 *
sin(
p.phi()) - y0 *
cos(
p.phi()) - 0.5 * kappa * (x0 * x0 + y0 * y0);
189 double q =
sqrt(1. - 2. * kappa * D0);
190 double s0 = (x0 *
cos(
p.phi()) + y0 *
sin(
p.phi())) /
q;
192 if (fabs(kappa * s0) > 0.001) {
193 s1 = asin(kappa * s0) /
kappa;
195 double ks02 = (kappa * s0) * (kappa * s0);
196 s1 = s0 * (1. + ks02 / 6. + 3. / 40. * ks02 * ks02 + 5. / 112. *
pow(ks02, 3));
216 for (reco::TrackCollection::const_iterator
t = recTracks->begin();
t != recTracks->end(); ++
t) {
220 std::cout <<
"reco pars= " << p << std::endl;
222 for (std::vector<ParameterVector>::const_iterator
s = tsim.begin();
s != tsim.end(); ++
s) {
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Sin< T >::type sin(const T &t)
math::Vector< dimension >::type ParameterVector
parameter vector
bool match(const ParameterVector &a, const ParameterVector &b)
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
Cos< T >::type cos(const T &t)
edm::EDGetTokenT< reco::TrackCollection > recoTrackCollectionToken_
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
reco::TrackBase::ParameterVector ParameterVector
static const G4double kappa
Power< A, B >::type pow(const A &a, const B &b)
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix