Jet.h

Go to the documentation of this file.
00001 // ================================================
00002 // Jet class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 // Namespace Atlfast::
00008 //
00009 // class: Jet
00010 //
00011 // Authors: P.Clarke, H.Phillips, E.Richter-Was, P.Sherwood, R.Steward
00012 //
00013 // Description: 
00014 //
00015 //  Class to represent Jets constructed from Clusters
00016 //
00017 //..................................................
00018 
00019 
00020 #ifndef ATLFAST_JET_H
00021 #define ATLFAST_JET_H
00022 
00023 
00024 #include "CLHEP/Vector/LorentzVector.h"
00025 /*
00026 #ifndef ATLFAST_IKINEMATIC_H
00027 #include "AtlfastEvent/IKinematic.h"
00028 #endif
00029 */
00030 
00031 #ifndef ATLFAST_IAODNAVIGATION_H
00032 #include "AtlfastEvent/IAODNavigation.h"
00033 #endif
00034 
00035 
00036 #ifndef ATLFAST_CLUSTER_H
00037 #include "AtlfastEvent/ICluster.h"
00038 #endif
00039 
00040 #ifndef ATLFAST_IAOOVISITOR_H
00041 #include "AtlfastEvent/IAOOvisitor.h"
00042 #endif
00043 
00044 /*
00045 #ifndef ATLFAST_IKINEMATICBASE_H
00046 #include "AtlfastEvent/IKinematicBase.h"
00047 #endif
00048 */
00049 
00050 #ifndef ATLFAST_AODNAVIGATIONIMP_H
00051 #include "AtlfastEvent/AODNavigationImp.h"
00052 #endif
00053 
00054 #include <string>
00055 #include <vector>
00056 #include <map>
00057 
00058 namespace Atlfast {
00059 
00060   class ReconstructedParticle;
00068   //........................................
00069   class Jet : 
00070     virtual public IAODNavigation, 
00071     protected AODNavigationImp{
00072     
00073     private:
00074     
00076     HepLorentzVector m_momentum ;
00077     
00078     int m_pdg_id;
00079     bool m_tagged;
00080 
00081     double m_dRbquark;
00082     double m_dRcquark;
00083     double m_dRhadtau;
00084 
00085     std::map<std::string,double> m_isBTagged;
00086     std::map<std::string,double> m_bCorrFactors;
00087 
00088     std::map<std::string,double> m_lCorrFactors;
00089 
00090     std::map<std::string,double> m_isTauTagged;
00091     std::map<std::string,double> m_tauCorrFactors;
00092 
00093     std::vector<const ReconstructedParticle*> m_muons;
00094     std::vector<const ICluster*> m_clusters;
00095     
00096     public:
00097     
00098     // Constructors
00099     
00100     Jet():AODNavigationImp() {}
00101     
00102     explicit Jet( const ICluster& cluster);      
00103     Jet( const HepLorentzVector& vec, ICluster& cluster );
00104     Jet(const Jet&);
00105     Jet& operator=(const Jet&);
00106     
00107     void setMomentum(const HepLorentzVector& vec);
00108     void addMuon(const ReconstructedParticle*);
00109     // To implement IKinematic
00110     virtual HepLorentzVector momentum() const; 
00111     virtual double  eta() const;
00112     virtual double  phi() const;
00113     virtual double  pT()  const;
00114     virtual double  eT()  const;
00115     virtual double  mT()  const;
00116     virtual IKinematic* clone() const;
00117     //
00118     virtual double  px()  const;
00119     virtual double  py()  const;
00120     virtual double  pz()  const;
00121     
00122     double  e()   const;
00123     
00124     // methods to set and get label - the 'true' jet flavour
00125     void setPdg_id(int);
00126     int  pdg_id() const;
00127     
00128     // methods from b-tagging part of AtlfastB
00129     void   setBTagged(std::string tagname);
00130     bool   isBTagged() const;
00131     bool   isBTagged(std::string tagname) const;
00132     void   setBTagCorrFactor(std::string tagname, double);
00133     double bTagCorrFactor() const;
00134     double bTagCorrFactor(std::string tagname) const;
00135 
00136     // methods from b-tagging part of AtlfastB
00137     void   setLightTagCorrFactor(std::string tagname, double);
00138     double lTagCorrFactor() const;
00139     double lTagCorrFactor(std::string tagname) const;
00140 
00141     // methods from tau-tagging part of AtlfastB
00142     void   setTauTagged(std::string tagname);
00143     bool   isTauTagged() const;
00144     bool   isTauTagged(std::string tagname) const;
00145     void   setTauTagCorrFactor(std::string tagname, double);
00146     double tauTagCorrFactor() const;
00147     double tauTagCorrFactor(std::string tagname) const;
00148 
00149     // Labelling parameter methods
00150     void   setdRbquark(double);
00151     double getdRbquark() const;
00152     void   setdRcquark(double);
00153     double getdRcquark() const;
00154     void   setdRhadtau(double);
00155     double getdRhadtau() const;
00156     
00157     //IAOOvisitor interface
00158     virtual void accept(IAOOvisitor* iaPtr) const {iaPtr->process(this);}
00159     virtual void print(const std::string& coor, std::string t="" ) const;
00160     //Reconstruction style navigation
00161     virtual void fillToken( INavigationToken & ) const;
00162     virtual void fillToken( INavigationToken &, const boost::any&) const{};
00163   };
00164 } // end of namespace 
00165 
00166 
00167 #endif
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00177 
00178 
00179 

Generated on Fri Sep 21 13:00:09 2007 for AtlfastEvent by  doxygen 1.5.1