Skip to content

Commit

Permalink
Update KTau
Browse files Browse the repository at this point in the history
The decayMode and emFraction is now in KBasicTau.
A lot of redundant content was removed.
  • Loading branch information
JoramBerger committed Nov 30, 2014
1 parent feb768d commit be117c2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 41 deletions.
28 changes: 12 additions & 16 deletions DataFormats/interface/KTau.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,27 +52,23 @@ struct KBasicTau : public KLepton
typedef std::vector<KBasicTau> KBasicTaus;


/// Kappa Tau data format
/** copy from DataFormats/TauReco/interface/PFTau.h */
struct KTau : public KBasicTau
{
float emFraction;
/// four-vectors and full PFCandidates
KLVs piZeroCandidates;
KPFCandidates chargedHadronCandidates;
KPFCandidates gammaCandidates;

int nSignalChargedHadrCands, nSignalGammaCands, nSignalPiZeroCands, nSignalCands;
int nSignalTracks;

KLV leadCand;
KLV leadChargedHadrCand;
KLV leadNeutralCand;

KPFCandidates signalChargedHadrCands;
KPFCandidates signalGammaCands;
KLVs signalPiZeroCands;

KTrack track;

//bool longLived
int hpsDecayMode; // hadronic decay mode as identified by HPS algorithm
int tauKey;

inline int nCandidates()
{
return chargedHadronCandidates.size() + gammaCandidates.size();
}
};
typedef std::vector<KTau> KTaus;


#endif
32 changes: 7 additions & 25 deletions Producers/interface/KTauProducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,56 +40,38 @@ class KTauProducer : public KBasicTauProducer<reco::PFTau, reco::PFTauDiscrimina
{
return className == "reco::PFTauDiscriminator";
}

virtual void fillSingle(const SingleInputType &in, SingleOutputType &out)
{
// Fill fields of KBasicTau via base class
KBasicTauProducer<reco::PFTau, reco::PFTauDiscriminator, KTaus>::fillSingle(in, out);

// Fill additional fields from KTau
out.tauKey = createRecoPFTauHash(in);
out.emFraction = in.emFraction();
out.nSignalChargedHadrCands = in.signalPFChargedHadrCands().size();
out.nSignalGammaCands = in.signalPFGammaCands().size();
out.nSignalPiZeroCands = in.signalPiZeroCandidates().size();
out.nSignalCands = in.signalPFCands().size();
out.hpsDecayMode = in.decayMode();

if(in.leadPFCand().isNonnull())
copyP4(in.leadPFCand()->p4(), out.leadCand.p4);
if(in.leadPFChargedHadrCand().isNonnull()){
copyP4(in.leadPFChargedHadrCand()->p4(), out.leadChargedHadrCand.p4);
if (in.leadPFChargedHadrCand()->trackRef().isNonnull())
KTrackProducer::fillTrack(*in.leadPFChargedHadrCand()->trackRef(), out.track);
}
if(in.leadPFNeutralCand().isNonnull())
copyP4(in.leadPFNeutralCand()->p4(), out.leadNeutralCand.p4); // leading PFGamma candidate


for(size_t i = 0; i < in.signalPFChargedHadrCands().size(); i++)
{
KPFCandidate tmp;
KPFCandidateProducer::fillPFCandidate(*in.signalPFChargedHadrCands().at(i), tmp);
out.signalChargedHadrCands.push_back(tmp);
out.chargedHadronCandidates.push_back(tmp);
}
std::sort(out.signalChargedHadrCands.begin(), out.signalChargedHadrCands.end(), PFSorter);
std::sort(out.chargedHadronCandidates.begin(), out.chargedHadronCandidates.end(), PFSorter);

for(size_t i = 0; i < in.signalPiZeroCandidates().size(); i++)
{
KLV tmp;
copyP4(in.signalPiZeroCandidates()[i].p4(), tmp.p4);
out.signalPiZeroCands.push_back(tmp);
out.piZeroCandidates.push_back(tmp);
}
std::sort(out.signalPiZeroCands.begin(), out.signalPiZeroCands.end(), LVSorter);
std::sort(out.piZeroCandidates.begin(), out.piZeroCandidates.end(), LVSorter);

for(size_t i = 0; i < in.signalPFGammaCands().size(); i++)
{
KPFCandidate tmp;
KPFCandidateProducer::fillPFCandidate(*in.signalPFGammaCands().at(i), tmp);
out.signalGammaCands.push_back(tmp);
out.gammaCandidates.push_back(tmp);
}
std::sort(out.signalGammaCands.begin(), out.signalGammaCands.end(), PFSorter);

out.nSignalTracks = in.signalTracks().size();
std::sort(out.gammaCandidates.begin(), out.gammaCandidates.end(), PFSorter);
}
private:
KLVSorter<KPFCandidate> PFSorter;
Expand Down

0 comments on commit be117c2

Please sign in to comment.