44 float theta1 = 2. * atan(
exp(- aZCandidate.first->getRecoElectron()->superCluster()->eta()) );
45 float phi1 = aZCandidate.first->getRecoElectron()->superCluster()->phi();
47 float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
cos ( phi1 );
48 float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
sin ( phi1 );
49 float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
cos(theta1);
50 float mod1 =
sqrt( x1*x1 + y1*y1 + z1*z1 );
52 float theta2 = 2. * atan(
exp(- aZCandidate.second->getRecoElectron()->superCluster()->eta()) );
53 float phi2 = aZCandidate.second->getRecoElectron()->superCluster()->phi();
55 float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
cos ( phi2 );
56 float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
sin ( phi2 );
57 float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
cos(theta2);
58 float mod2 =
sqrt( x2*x2 + y2*y2 + z2*z2 );
60 return (x1*x2 + y1*y2 + z1*z2)/( mod1* mod2 );
69 float theta1 = 2. * atan(
exp(- aZCandidate.first->getRecoElectron()->eta()) );
70 float phi1 = aZCandidate.first->getRecoElectron()->phi();
72 float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
cos ( phi1 );
73 float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
sin ( phi1 );
74 float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
cos(theta1);
75 float mod1 =
sqrt( x1*x1 + y1*y1 + z1*z1 );
77 float theta2 = 2. * atan(
exp(- aZCandidate.second->getRecoElectron()->eta()) );
78 float phi2 = aZCandidate.second->getRecoElectron()->phi();
80 float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
cos ( phi2 );
81 float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
sin ( phi2 );
82 float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
cos(theta2);
83 float mod2 =
sqrt( x2*x2 + y2*y2 + z2*z2 );
85 return (x1*x2 + y1*y2 + z1*z2)/( mod1* mod2 );
92 return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection, aZCandidate.first->getRecoElectron()->superCluster()->eta(), aZCandidate.first->getRecoElectron()->superCluster()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection, aZCandidate.second->getRecoElectron()->superCluster()->eta(), aZCandidate.second->getRecoElectron()->superCluster()->phi());
100 return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection, aZCandidate.first->getRecoElectron()->eta(), aZCandidate.first->getRecoElectron()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection, aZCandidate.second->getRecoElectron()->eta(), aZCandidate.second->getRecoElectron()->phi());
109 return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy(), aZCandidate.first->getRecoElectron()->superCluster()->eta(), aZCandidate.first->getRecoElectron()->superCluster()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy(), aZCandidate.second->getRecoElectron()->superCluster()->eta(), aZCandidate.second->getRecoElectron()->superCluster()->phi());
118 return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy(), aZCandidate.first->getRecoElectron()->eta(), aZCandidate.first->getRecoElectron()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy(), aZCandidate.second->getRecoElectron()->eta(), aZCandidate.second->getRecoElectron()->phi());
127 TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());
129 TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
132 return (ele1LV + ele2LV).Rapidity();
141 TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());
143 TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
145 return (ele1LV + ele2LV).Eta();
154 TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());
156 TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
158 return (ele1LV + ele2LV).Theta();
167 TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());
169 TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
171 return (ele1LV + ele2LV).Phi();
180 TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());
182 TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
184 return (ele1LV + ele2LV).Pt();
Sin< T >::type sin(const T &t)
Cos< T >::type cos(const T &t)
static float invMassCalc(float Energy1, float Eta1, float Phi1, float Energy2, float Eta2, float Phi2)