CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/DataFormats/TauReco/interface/RecoTauPiZero.h

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       // Algorithm where each photon becomes a pi zero
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