Changes in modules/Calorimeter.cc [341014c:5eda6767] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/Calorimeter.cc
r341014c r5eda6767 231 231 fItParticleInputArray->Reset(); 232 232 number = -1; 233 fTowerRmax=0.; 233 234 while((particle = static_cast<Candidate *>(fItParticleInputArray->Next()))) 234 235 { 235 236 const TLorentzVector &particlePosition = particle->Position; 236 237 ++number; 238 239 // compute maximum radius (needed in FinalizeTower to assess whether barrel or endcap tower) 240 if (particlePosition.Perp() > fTowerRmax) 241 fTowerRmax=particlePosition.Perp(); 237 242 238 243 pdgCode = TMath::Abs(particle->PID); … … 450 455 451 456 fTower->AddCandidate(particle); 457 fTower->Position = position; 452 458 } 453 459 … … 461 467 { 462 468 Candidate *track, *tower, *mother; 463 Double_t energy, pt, eta, phi ;469 Double_t energy, pt, eta, phi, r; 464 470 Double_t ecalEnergy, hcalEnergy; 465 471 Double_t ecalNeutralEnergy, hcalNeutralEnergy; … … 511 517 for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i) 512 518 { 513 weight = TMath:: Sqrt(fTower->ECalEnergyTimePairs[i].first);519 weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2); 514 520 sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second; 515 521 sumWeight += weight; … … 517 523 } 518 524 525 // check whether barrel or endcap tower 526 if (fTower->Position.Perp() < fTowerRmax && TMath::Abs(eta) > 0.) 527 r = fTower->Position.Z()/TMath::SinH(eta); 528 else 529 r = fTower->Position.Pt(); 530 519 531 if(sumWeight > 0.0) 520 532 { 521 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, sumWeightedTime / sumWeight);533 fTower->Position.SetPtEtaPhiE(r, eta, phi, sumWeightedTime / sumWeight); 522 534 } 523 535 else 524 536 { 525 fTower->Position.SetPtEtaPhiE( 1.0, eta, phi, 999999.9);537 fTower->Position.SetPtEtaPhiE(r, eta, phi, 999999.9); 526 538 } 527 539 … … 559 571 if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin) 560 572 { 561 // create new photon tower 573 // create new photon tower assuming null mass 562 574 tower = static_cast<Candidate *>(fTower->Clone()); 563 575 pt = ecalNeutralEnergy / TMath::CosH(eta); … … 646 658 track = static_cast<Candidate *>(track->Clone()); 647 659 track->AddCandidate(mother); 648 649 660 track->Momentum *= rescaleFactor; 661 track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M()); 650 662 651 663 fEFlowTrackOutputArray->Add(track);
Note:
See TracChangeset
for help on using the changeset viewer.