![]() |
![]() |
00001 #ifndef RecoTauTag_Pi0Tau_Pi0Algo_h_ 00002 #define RecoTauTag_Pi0Tau_Pi0Algo_h_ 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: Pi0Algo 00007 // Class: Pi0Algo 00008 // 00016 // 00017 // Original Author: Dongwook Jang 00018 // Created: Tue Jan 9 16:40:36 CST 2007 00019 // $Id: Pi0Algo.h,v 1.3 2007/06/01 22:00:53 dwjang Exp $ 00020 // 00021 // 00022 00023 00024 // system include files 00025 #include <memory> 00026 #include "DataFormats/Common/interface/Handle.h" 00027 #include "DataFormats/Math/interface/Point3D.h" 00028 #include "DataFormats/Math/interface/LorentzVector.h" 00029 #include "DataFormats/TrackReco/interface/Track.h" 00030 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00031 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" 00032 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h" 00033 #include "RecoTauTag/Pi0Tau/interface/Pi0.h" 00034 #include "RecoTauTag/Pi0Tau/interface/Pi0Fwd.h" 00035 00036 // 00037 // class decleration 00038 // 00039 00040 namespace reco { 00041 00042 class Pi0Algo { 00043 00044 public: 00045 00046 Pi0Algo(reco::TrackRef seedTrack); 00047 00048 ~Pi0Algo(); 00049 00050 const reco::Pi0Collection &pi0Collection() const { return pi0Collection_; } 00051 00052 math::XYZTLorentzVector calculateMomentumWRT(const math::XYZTLorentzVector &momentum, const math::XYZPoint &vertex) const; 00053 00054 math::XYZPoint calculatePositionAtEcal(const math::XYZTLorentzVector &momentum) const; 00055 00056 void fillPi0sUsingPF(edm::Handle<reco::PFCandidateCollection> &pFCandidateHandle); 00057 00058 // setters 00059 void setConeSize(double v) { coneSize_ = v; } 00060 00061 void setUse3DAngle(bool v) { use3DAngle_ = v; } 00062 00063 void setEcalEntrance(double v) { ecalEntrance_ = v; } 00064 00065 void setMassRes(double v) { massRes_ = v; } 00066 00067 private: 00068 00069 // cone size 00070 double coneSize_; 00071 00072 // use 3D angle (default is dR) 00073 bool use3DAngle_; 00074 00075 // radius of ecal entrance ( this will be replaced by geometry constant later if I find it ) 00076 double ecalEntrance_; 00077 00078 // mass resolution of pi0 from two photons 00079 // to select pi0s based on mass cut 00080 double massRes_; 00081 00082 // seedTrack will be a center of cone 00083 reco::TrackRef seedTrack_; 00084 00085 // pi0 collection in cone 00086 reco::Pi0Collection pi0Collection_; 00087 00088 }; 00089 00090 } 00091 #endif 00092