Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
#include "DataFormats/PatCandidates/interface/TauPFSpecific.h"

#include "DataFormats/JetReco/interface/Jet.h"

pat::tau::TauPFSpecific::TauPFSpecific(const reco::PFTau& tau)
    :  // reference to PFJet from which PFTau was made
      pfJetRef_(tau.jetRef()),
      // Leading track/charged candidate
      leadPFChargedHadrCand_(tau.leadPFChargedHadrCand()),
      leadPFChargedHadrCandsignedSipt_(tau.leadPFChargedHadrCandsignedSipt()),
      // Leading neutral candidate
      leadPFNeutralCand_(tau.leadPFNeutralCand()),
      // Leading charged or neutral candidate
      leadPFCand_(tau.leadPFCand()),
      // Signal cone
      selectedSignalPFCands_(tau.signalPFCands()),
      selectedSignalPFChargedHadrCands_(tau.signalPFChargedHadrCands()),
      selectedSignalPFNeutrHadrCands_(tau.signalPFNeutrHadrCands()),
      selectedSignalPFGammaCands_(tau.signalPFGammaCands()),
      signalTauChargedHadronCandidates_(tau.signalTauChargedHadronCandidates()),
      signalPiZeroCandidates_(tau.signalPiZeroCandidates()),
      // Isolation cone
      selectedIsolationPFCands_(tau.isolationPFCands()),
      selectedIsolationPFChargedHadrCands_(tau.isolationPFChargedHadrCands()),
      selectedIsolationPFNeutrHadrCands_(tau.isolationPFNeutrHadrCands()),
      selectedIsolationPFGammaCands_(tau.isolationPFGammaCands()),
      isolationTauChargedHadronCandidates_(tau.isolationTauChargedHadronCandidates()),
      isolationPiZeroCandidates_(tau.isolationPiZeroCandidates()),
      isolationPFChargedHadrCandsPtSum_(tau.isolationPFChargedHadrCandsPtSum()),
      isolationPFGammaCandsEtSum_(tau.isolationPFGammaCandsEtSum()),
      // Other useful variables
      maximumHCALPFClusterEt_(tau.maximumHCALPFClusterEt()),
      emFraction_(tau.emFraction()),
      hcalTotOverPLead_(tau.hcalTotOverPLead()),
      hcalMaxOverPLead_(tau.hcalMaxOverPLead()),
      hcal3x3OverPLead_(tau.hcal3x3OverPLead()),
      ecalStripSumEOverPLead_(tau.ecalStripSumEOverPLead()),
      bremsRecoveryEOverPLead_(tau.bremsRecoveryEOverPLead()),
      // Electron rejection variables
      electronPreIDTrack_(tau.electronPreIDTrack()),
      electronPreIDOutput_(tau.electronPreIDOutput()),
      electronPreIDDecision_(tau.electronPreIDDecision()),
      // Muon rejection variables
      caloComp_(tau.caloComp()),
      segComp_(tau.segComp()),
      muonDecision_(tau.muonDecision()),
      // Variables specific to dynamic strip reconstruction
      bendCorrMass_(tau.bendCorrMass()),
      signalConeSize_(tau.signalConeSize()) {
  if (tau.jetRef().isAvailable() &&
      tau.jetRef().isNonnull()) {  // CV: add protection to ease transition to new CMSSW 4_2_x RecoTauTags
    reco::Jet::EtaPhiMoments etaPhiStatistics = tau.jetRef()->etaPhiStatistics();
    etaetaMoment_ = etaPhiStatistics.etaEtaMoment;
    phiphiMoment_ = etaPhiStatistics.phiPhiMoment;
    etaphiMoment_ = etaPhiStatistics.etaPhiMoment;
  }
}