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