Go to the documentation of this file.00001 #ifndef FORIA_JET_HH
00002 #define FORIA_JET_HH
00003
00004 #include "ForIA/IFourMomentum.hh"
00005 #include "ForIA/Track.fh"
00006 #include "ForIA/Jet.fh"
00007 #include "ForIA/JetKey.fh"
00008 #include "ForIA/Event.hh"
00009 #include "boost/smart_ptr.hpp"
00010 #include <vector>
00011 #include <iostream>
00012
00013
00014 namespace ForIA{
00015
00016 using std::vector;
00017
00018 class Jet: public IFourMomentum{
00019
00020
00021 public:
00022
00024 enum Algorithm {ALG_UNDEFINED=0, ALG_BEGIN=1, ANTI_KT=ALG_BEGIN, KT, SISCONE, CAMBRIDGE_AACHEN, ALG_END};
00025
00027 enum Calibration {CALIBRATION_UNDEFINED=0, CALIBRATION_BEGIN=1,
00028 LC_TOPO=CALIBRATION_BEGIN, TOPO, EM_TOPO, H1_TOPO, TOPO_END};
00029
00035 Jet(JetKeyConstPtr key);
00036
00037
00049 Jet(JetKeyConstPtr &key,
00050 double E, double pT, double mass, double eta, double phi);
00051
00053 double E() const;
00055 double ET() const;
00057 double PT() const;
00059 double mass()const;
00061 double theta() const;
00063 double phi() const;
00065 double eta() const;
00067 double rapidity()const;
00069 double px()const;
00071 double py()const;
00073 double pz()const;
00074
00076 double rParam()const;
00077
00079 double HECFraction()const;
00081 double HECQuality()const;
00083 double LArQuality()const;
00085 double LArQualityMean()const;
00087 double negativeEnergy()const;
00089 double EMFraction()const;
00091 double chargedFraction()const;
00093 double fracSamplingMax()const;
00094
00099 bool isBadLooser()const;
00100
00102 bool isUgly() const;
00104 int isBadLoose() const;
00106 int isBadMedium() const;
00108 int isBadTight() const;
00109
00110 double emScaleEta() const;
00111
00112 void scaleEnergy(double scale, bool percentual);
00113
00114 const TrackVector &matchedTracks()const;
00115
00116 private:
00117
00118 friend std::ostream &operator << (std::ostream &out, const Jet &jet);
00119 friend void Event::matchTracksToJets(const JetKey&)const;
00120 friend class DataConverter;
00121
00122 JetKeyConstPtr m_key;
00123
00124 Calibration m_calibration;
00125
00126 mutable double m_E;
00127 double m_PT;
00128 double m_mass;
00129 double m_phi;
00130 double m_eta;
00131
00132 mutable double m_px;
00133 mutable double m_py;
00134 mutable double m_pz;
00135 mutable double m_rapidity;
00136 mutable bool m_gotpx;
00137 mutable bool m_gotpy;
00138 mutable bool m_gotpz;
00139 mutable bool m_gotRapidity;
00140
00141 int m_isBadLoose;
00142 int m_isBadMedium;
00143 int m_isBadTight;
00144
00145 double m_emScaleEta;
00146 double m_emFrac;
00147
00148 double m_hecFraction;
00149 double m_hecQuality;
00150 double m_larQuality;
00151 double m_averageLARQualityFraction;
00152 mutable double m_LARQualityMean;
00153 mutable bool m_gotLARQualityMean;
00154 double m_negEnergy;
00155 double m_trackPTSum;
00156 mutable double m_chargedFraction;
00157 mutable bool m_gotChargedFraction;
00158 double m_fracSamplingMax;
00159
00160 double m_tileGap3;
00161 double m_bchCorrCell;
00162
00163 mutable bool m_badLooser;
00164 mutable bool m_gotBadLooser;
00165
00166 const Event *m_event;
00167 mutable TrackVector m_matchedTracks;
00168 mutable bool m_gotMatchedTracks;
00169
00170 };
00171 }
00172 #endif