CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DataFormats/JetReco/interface/Jet.h

Go to the documentation of this file.
00001 #ifndef JetReco_Jet_h
00002 #define JetReco_Jet_h
00003 
00017 #include <string>
00018 #include "DataFormats/Candidate/interface/CompositePtrCandidate.h"
00019 
00020 namespace reco {
00021   class Jet : public CompositePtrCandidate {
00022   public:
00023     typedef edm::Ptr<Candidate> Constituent;
00024     typedef std::vector<Constituent>  Constituents;
00025 
00027     class EtaPhiMoments {
00028     public:
00029       float etaMean;
00030       float phiMean;
00031       float etaEtaMoment;
00032       float phiPhiMoment;
00033       float etaPhiMoment;
00034     };
00035 
00037     Jet () : mJetArea (0), mPileupEnergy (0), mPassNumber (0) {}
00039     Jet (const LorentzVector& fP4, const Point& fVertex);
00040     Jet (const LorentzVector& fP4, const Point& fVertex, const Constituents& fConstituents);
00042     virtual ~Jet () {}
00043 
00045     EtaPhiMoments etaPhiStatistics () const;
00046 
00048     float etaetaMoment () const;
00049 
00051     float phiphiMoment () const;
00052 
00054     float etaphiMoment () const;
00055 
00057     float etInAnnulus (float fRmin, float fRmax) const;
00058 
00060     int nCarrying (float fFraction) const;
00061  
00063     float maxDistance () const;
00064  
00066     virtual int nConstituents () const {return numberOfDaughters();}
00067 
00069     static float physicsEta (float fZVertex, float fDetectorEta);
00070 
00072     static float detectorEta (float fZVertex, float fPhysicsEta);
00073 
00074     static Candidate::LorentzVector physicsP4 (const Candidate::Point &newVertex, const Candidate &inParticle,const Candidate::Point &oldVertex=Candidate::Point(0,0,0));
00075 
00076     static Candidate::LorentzVector detectorP4 (const Candidate::Point &vertex, const Candidate &inParticle);
00077 
00079     virtual Constituents getJetConstituents () const;
00080 
00082     virtual std::vector<const reco::Candidate*> getJetConstituentsQuick () const;
00083 
00085     virtual std::string print () const;
00086 
00088     virtual void scaleEnergy (double fScale);
00089     
00091     virtual void setJetArea (float fArea) {mJetArea = fArea;}
00093     virtual float jetArea () const {return mJetArea;}
00094 
00096     virtual void setPileup (float fEnergy) {mPileupEnergy = fEnergy;}
00098     virtual float pileup () const {return mPileupEnergy;}
00099     
00101     virtual void setNPasses (int fPasses) {mPassNumber = fPasses;}
00103     virtual int nPasses () const {return mPassNumber;}
00104 
00105     bool isJet() const;
00106     
00107   private:
00108     float mJetArea;
00109     float mPileupEnergy;
00110     int mPassNumber;
00111   };
00112 }
00113 #endif