11 #include "GaudiKernel/PhysicalConstants.h"
47 <<
", phi size (units of 0.06) =" <<
m_gridp
51 return StatusCode::SUCCESS;
62 etgridused[
ip][
ie] =
false;
70 ATH_MSG_ERROR(
"No TruthParticle collection with name " <<
"TruthGen" <<
" found in StoreGate!");
71 return StatusCode::FAILURE;
76 unsigned int nPart = xTruthParticleContainer->
size();
77 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
80 if (
part->isGenStable()) {
81 if ((
part->pdgId() != 13) && (
part->pdgId() != -13) &&
82 (
part->pdgId() != 12) && (
part->pdgId() != -12) &&
83 (
part->pdgId() != 14) && (
part->pdgId() != -14) &&
84 (
part->pdgId() != 16) && (
part->pdgId() != -16) &&
85 (std::abs(
part->eta()) <=
96 return StatusCode::FAILURE;
110 double ethigh = 2. *
m_stop;
119 for (
int ip0 = 0; ip0 <
m_grphi; ++ip0) {
120 if (etgrid[ip0][ie0] > ethigh && !etgridused[ip0][ie0]) {
121 ethigh = etgrid[ip0][ie0];
131 CLHEP::HepLorentzVector FoundJet;
143 sum =
sum + etgrid[ip1][etahigh - 1];
144 sum1 = sum1 + etgrid[ip1][etahigh + 1];
156 sum1 = sum1 + etgrid[(phihigh + 1) %
m_grphi][ie1];
159 phihigh = (phihigh + 1) %
m_grphi;
171 if (!etgridused[ip1][ie1])
172 sum =
sum + etgrid[ip1][ie1];
173 if (!etgridused[ip1][ie1 + 1])
174 sum1 = sum1 + etgrid[ip1][ie1 + 1];
175 if (!etgridused[ip1 + 1][ie1])
176 sum2 = sum2 + etgrid[(ip1 + 1) %
m_grphi][ie1];
177 if (!etgridused[ip1 + 1][ie1 + 1])
178 sum3 = sum3 + etgrid[(ip1 + 1) %
m_grphi][ie1 + 1];
181 if (
sum < sum1 && sum2 < sum1 && sum3 < sum1)
182 etahigh = etahigh + 1;
183 if (
sum < sum2 && sum1 <= sum2 && sum3 < sum2)
184 phihigh = (phihigh + 1) %
m_grphi;
185 if (
sum < sum3 && sum2 <= sum3 && sum1 <= sum3) {
186 etahigh = etahigh + 1;
187 phihigh = (phihigh + 1) %
m_grphi;
198 return StatusCode::FAILURE;
214 if (!etgridused[ip1][ie1]) {
215 etgridused[ip1][ie1] =
true;
216 jetpx = jetpx + etgrid[ip1][ie1] *
218 jetpy = jetpy + etgrid[ip1][ie1] *
220 jetpz = jetpz + etgrid[ip1][ie1] *
228 FoundJet.setPx(jetpx);
229 FoundJet.setPy(jetpy);
230 FoundJet.setPz(jetpz);
232 if (std::abs(FoundJet.pseudoRapidity()) <
m_userEta) {
233 m_Jets.push_back(FoundJet);
238 sort(
m_Jets.begin(),
m_Jets.end(), std::greater<McObj>());
240 <<
" Number of jets found = " <<
m_Jets.size() <<
" \n ");
244 <<
" Rapidity " <<
m_Jets[0].P().pseudoRapidity()
245 <<
" Phi " <<
m_Jets[0].P().
phi() <<
"\n ");
248 <<
" Rapidity " <<
m_Jets[1].P().pseudoRapidity()
249 <<
" Phi " <<
m_Jets[1].P().
phi() <<
"\n ");
253 <<
m_Jets[
m_Jets.size() - 1].P().pseudoRapidity() <<
" Phi "
260 return StatusCode::SUCCESS;
263 setFilterPassed(
false);
265 return StatusCode::SUCCESS;