Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/Calorimeter.cc

    r5eda6767 r341014c  
    231231  fItParticleInputArray->Reset();
    232232  number = -1;
    233   fTowerRmax=0.;
    234233  while((particle = static_cast<Candidate *>(fItParticleInputArray->Next())))
    235234  {
    236235    const TLorentzVector &particlePosition = particle->Position;
    237236    ++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();
    242237
    243238    pdgCode = TMath::Abs(particle->PID);
     
    455450
    456451    fTower->AddCandidate(particle);
    457     fTower->Position = position;
    458452  }
    459453
     
    467461{
    468462  Candidate *track, *tower, *mother;
    469   Double_t energy, pt, eta, phi, r;
     463  Double_t energy, pt, eta, phi;
    470464  Double_t ecalEnergy, hcalEnergy;
    471465  Double_t ecalNeutralEnergy, hcalNeutralEnergy;
     
    517511  for(size_t i = 0; i < fTower->ECalEnergyTimePairs.size(); ++i)
    518512  {
    519     weight = TMath::Power((fTower->ECalEnergyTimePairs[i].first),2);
     513    weight = TMath::Sqrt(fTower->ECalEnergyTimePairs[i].first);
    520514    sumWeightedTime += weight * fTower->ECalEnergyTimePairs[i].second;
    521515    sumWeight += weight;
     
    523517  }
    524518
    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  }
    528523  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);
    538526  }
    539527
     
    571559  if(ecalNeutralEnergy > fECalEnergyMin && ecalNeutralSigma > fECalEnergySignificanceMin)
    572560  {
    573     // create new photon tower assuming null mass
     561    // create new photon tower
    574562    tower = static_cast<Candidate *>(fTower->Clone());
    575563    pt = ecalNeutralEnergy / TMath::CosH(eta);
     
    658646      track = static_cast<Candidate *>(track->Clone());
    659647      track->AddCandidate(mother);
     648
    660649      track->Momentum *= rescaleFactor;
    661       track->Momentum.SetPtEtaPhiM(track->Momentum.Pt()*rescaleFactor, track->Momentum.Eta(), track->Momentum.Phi(), track->Momentum.M());
    662650
    663651      fEFlowTrackOutputArray->Add(track);
Note: See TracChangeset for help on using the changeset viewer.