Go to the documentation of this file.00001 #ifndef DataFormats_TauReco_RecoTauPiZero_h
00002 #define DataFormats_TauReco_RecoTauPiZero_h
00003
00004 #include "DataFormats/Candidate/interface/CompositePtrCandidate.h"
00005
00006 namespace reco {
00007 class RecoTauPiZero : public CompositePtrCandidate {
00008 public:
00009 enum PiZeroAlgorithm {
00010
00011 kUndefined = 0,
00012 kTrivial = 1,
00013 kCombinatoric = 2,
00014 kStrips = 3
00015 };
00016
00017 RecoTauPiZero():CompositePtrCandidate(),algoName_(kUndefined){
00018 this->setPdgId(111); }
00019
00020 RecoTauPiZero(PiZeroAlgorithm algoName):
00021 CompositePtrCandidate(), algoName_(algoName) { this->setPdgId(111); }
00022
00024 RecoTauPiZero(Charge q, const LorentzVector& p4,
00025 const Point& vtx = Point( 0, 0, 0 ),
00026 int pdgId = 111, int status = 0, bool integerCharge = true,
00027 PiZeroAlgorithm algoName=kUndefined):
00028 CompositePtrCandidate(
00029 q, p4, vtx, pdgId, status, integerCharge ),algoName_(algoName) {}
00030
00032 RecoTauPiZero(Charge q, const PolarLorentzVector& p4,
00033 const Point& vtx = Point( 0, 0, 0 ),
00034 int pdgId = 111, int status = 0, bool integerCharge = true,
00035 PiZeroAlgorithm algoName=kUndefined):
00036 CompositePtrCandidate(
00037 q, p4, vtx, pdgId, status, integerCharge ),algoName_(algoName) {}
00038
00040 explicit RecoTauPiZero(
00041 const Candidate & p, PiZeroAlgorithm algoName=kUndefined):
00042 CompositePtrCandidate(p),algoName_(algoName) { this->setPdgId(111); }
00043
00045 ~RecoTauPiZero(){};
00046
00048 size_t numberOfGammas() const;
00049
00051 size_t numberOfElectrons() const;
00052
00054 double maxDeltaPhi() const;
00055
00057 double maxDeltaEta() const;
00058
00060 PiZeroAlgorithm algo() const;
00061
00063 bool algoIs(PiZeroAlgorithm algo) const;
00064
00065 void print(std::ostream& out=std::cout) const;
00066
00067 private:
00068 PiZeroAlgorithm algoName_;
00069
00070 };
00071
00072 std::ostream & operator<<(std::ostream& out, const RecoTauPiZero& c);
00073
00074 }
00075
00076 #endif