40 float ele1EnergyCorrection,
41 float ele2EnergyCorrection) {
42 float theta1 = 2. * atan(
exp(-aZCandidate.first->getRecoElectron()->superCluster()->eta()));
43 float phi1 = aZCandidate.first->getRecoElectron()->superCluster()->phi();
45 float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
cos(phi1);
46 float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
sin(phi1);
47 float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
cos(theta1);
50 float theta2 = 2. * atan(
exp(-aZCandidate.second->getRecoElectron()->superCluster()->eta()));
51 float phi2 = aZCandidate.second->getRecoElectron()->superCluster()->phi();
53 float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
cos(phi2);
54 float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
sin(phi2);
55 float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
cos(theta2);
58 return (
x1 *
x2 +
y1 *
y2 + z1 *
z2) / (mod1 * mod2);
64 float ele1EnergyCorrection,
65 float ele2EnergyCorrection) {
66 float theta1 = 2. * atan(
exp(-aZCandidate.first->getRecoElectron()->eta()));
67 float phi1 = aZCandidate.first->getRecoElectron()->phi();
69 float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
cos(phi1);
70 float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
sin(theta1) *
sin(phi1);
71 float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() *
cos(theta1);
74 float theta2 = 2. * atan(
exp(-aZCandidate.second->getRecoElectron()->eta()));
75 float phi2 = aZCandidate.second->getRecoElectron()->phi();
77 float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
cos(phi2);
78 float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
sin(theta2) *
sin(phi2);
79 float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() *
cos(theta2);
82 return (
x1 *
x2 +
y1 *
y2 + z1 *
z2) / (mod1 * mod2);
88 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
89 float ele1EnergyCorrection,
90 float ele2EnergyCorrection) {
92 aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection,
93 aZCandidate.first->getRecoElectron()->superCluster()->eta(),
94 aZCandidate.first->getRecoElectron()->superCluster()->phi(),
95 aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection,
96 aZCandidate.second->getRecoElectron()->superCluster()->eta(),
97 aZCandidate.second->getRecoElectron()->superCluster()->phi());
103 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
104 float ele1EnergyCorrection,
105 float ele2EnergyCorrection) {
107 aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection,
108 aZCandidate.first->getRecoElectron()->eta(),
109 aZCandidate.first->getRecoElectron()->phi(),
110 aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection,
111 aZCandidate.second->getRecoElectron()->eta(),
112 aZCandidate.second->getRecoElectron()->phi());
118 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate) {
120 aZCandidate.first->getRecoElectron()->superCluster()->eta(),
121 aZCandidate.first->getRecoElectron()->superCluster()->phi(),
122 aZCandidate.second->getRecoElectron()->superCluster()->energy(),
123 aZCandidate.second->getRecoElectron()->superCluster()->eta(),
124 aZCandidate.second->getRecoElectron()->superCluster()->phi());
130 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate) {
132 aZCandidate.first->getRecoElectron()->eta(),
133 aZCandidate.first->getRecoElectron()->phi(),
134 aZCandidate.second->getRecoElectron()->superCluster()->energy(),
135 aZCandidate.second->getRecoElectron()->eta(),
136 aZCandidate.second->getRecoElectron()->phi());
142 TLorentzVector ele1LV(aZCandidate.first->getRecoElectron()->px(),
143 aZCandidate.first->getRecoElectron()->py(),
144 aZCandidate.first->getRecoElectron()->pz(),
145 aZCandidate.first->getRecoElectron()->superCluster()->energy());
147 TLorentzVector ele2LV(aZCandidate.second->getRecoElectron()->px(),
148 aZCandidate.second->getRecoElectron()->py(),
149 aZCandidate.second->getRecoElectron()->pz(),
150 aZCandidate.second->getRecoElectron()->superCluster()->energy());
152 return (ele1LV + ele2LV).Rapidity();
158 TLorentzVector ele1LV(aZCandidate.first->getRecoElectron()->px(),
159 aZCandidate.first->getRecoElectron()->py(),
160 aZCandidate.first->getRecoElectron()->pz(),
161 aZCandidate.first->getRecoElectron()->superCluster()->energy());
163 TLorentzVector ele2LV(aZCandidate.second->getRecoElectron()->px(),
164 aZCandidate.second->getRecoElectron()->py(),
165 aZCandidate.second->getRecoElectron()->pz(),
166 aZCandidate.second->getRecoElectron()->superCluster()->energy());
168 return (ele1LV + ele2LV).Eta();
174 TLorentzVector ele1LV(aZCandidate.first->getRecoElectron()->px(),
175 aZCandidate.first->getRecoElectron()->py(),
176 aZCandidate.first->getRecoElectron()->pz(),
177 aZCandidate.first->getRecoElectron()->superCluster()->energy());
179 TLorentzVector ele2LV(aZCandidate.second->getRecoElectron()->px(),
180 aZCandidate.second->getRecoElectron()->py(),
181 aZCandidate.second->getRecoElectron()->pz(),
182 aZCandidate.second->getRecoElectron()->superCluster()->energy());
184 return (ele1LV + ele2LV).Theta();
190 TLorentzVector ele1LV(aZCandidate.first->getRecoElectron()->px(),
191 aZCandidate.first->getRecoElectron()->py(),
192 aZCandidate.first->getRecoElectron()->pz(),
193 aZCandidate.first->getRecoElectron()->superCluster()->energy());
195 TLorentzVector ele2LV(aZCandidate.second->getRecoElectron()->px(),
196 aZCandidate.second->getRecoElectron()->py(),
197 aZCandidate.second->getRecoElectron()->pz(),
198 aZCandidate.second->getRecoElectron()->superCluster()->energy());
200 return (ele1LV + ele2LV).Phi();
206 TLorentzVector ele1LV(aZCandidate.first->getRecoElectron()->px(),
207 aZCandidate.first->getRecoElectron()->py(),
208 aZCandidate.first->getRecoElectron()->pz(),
209 aZCandidate.first->getRecoElectron()->superCluster()->energy());
211 TLorentzVector ele2LV(aZCandidate.second->getRecoElectron()->px(),
212 aZCandidate.second->getRecoElectron()->py(),
213 aZCandidate.second->getRecoElectron()->pz(),
214 aZCandidate.second->getRecoElectron()->superCluster()->energy());
216 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)