Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

JetSelector.hpp

Go to the documentation of this file.
00001 #ifndef CAFUTIL_JETSELECTOR_HPP__
00002 #define CAFUTIL_JETSELECTOR_HPP__
00003 
00004 #include "cafe/Event.hpp"
00005 #include "cafe/SelectUserObjects.hpp"
00006 #include "tmb_tree/TMBJet.hpp"
00007 #include "cafe/Stat.hpp"
00008 
00009 #include <string>
00010 
00011 
00012 namespace caf_util {
00013   
00096   class JetSelector : public cafe::SelectUserObjects<TMBJet>
00097   {
00098   public:
00099     JetSelector(const char *name);
00100     ~JetSelector() {};
00101     bool processEvent(cafe::Event &event);
00102     bool selectObject(const TMBJet &jet);
00103     float MaxAbsEtaOfL1CalCoverage(int runnum);
00104 
00105     const std::string& jes() const {return _jes;}
00106 
00108     void setJES(const std::string& jes) {_jes = jes ;}
00109 
00110   private:
00111     void before(cafe::Collection<TMBJet>& from) ;
00112     void SetJESType(const TMBJet& jet) ;
00113     void Smear(const TMBJet& jet);
00114   private:
00115     bool _useStandardCuts ; //< this flag is true if standard ID criteria is used
00116     bool _applyStandardIDCuts ; //< this flag is true if standard quality cuts are used
00117     bool _applyStandardEMJetsRemoval ; //< this flag is true if standard EM jet removal is used
00118     bool _applyStandardL1Conf ; //< this flag is true if standard L1 confirmation is used
00119     bool _requireVertexConf; //< this flag is true if jet-vertex confirmation (to P.V.[0]) is used
00120     bool _useSmearedJets; //< this flag is true if smeared jets are used
00121 
00122     std::string _jes ; //< type of the jes correction applied to the jet
00123     int _njets ; //< minimal number of jets to be selected
00124     int _njetsmax ; //< maximal number of jets to be selected
00125     int _nselected ; //< number of selected objects
00126     float _pTmin ; //< minimal pT of jets
00127     bool  _sort;   //< sort jets by pT
00128 
00129     cafe::StatPointer _stat ; //< pointer to the statistics collector object (see class Stat)
00130     float _EMFmin ; //< minimal EM jet fraction
00131     float _EMFmax ; //< maximal EM jet fraction
00132     float _CHFmin ; //< minimal CH jet fraction
00133     float _CHFmax ;     //< maximal CH jet fraction
00134     float _eta ; //< maximal absolute value of jet eta 
00135     float _detEta ; //< maximal absolute value of jet detEta 
00136     bool _isMC ; //< MC flag
00137     bool _doL1cut ; //< L1 confirmation flag
00138     float _L1boundaryOffset ;
00139     float _f90noL1 ; 
00140     float _chfnoL1 ; 
00141     float _l1cutCC ; 
00142     float _l1cutICD ;
00143     float _l1cutEC;
00144     int _runnum;    
00145     float _CPFmin ; // <minimal charged particle fraction
00146     std::string _vertexBranch ; //< For P.V. Matching. Can change to a configuraBLE value if needed
00147     cafe::Variables _vertexVars ; //< For P.V. Matching. Can change to a configurable value if needed
00148 
00149     UInt_t _PV0id ; // <Unique ID of the 0th Primary Vertex
00150 
00151     cafe::Variables _vars, _varsglob ;
00152     
00153     ClassDef(JetSelector, 0) ;
00154   };
00155   
00156 }
00157 #endif // CAFUTIL_JETSELECTOR_HPP__

Generated on Tue Mar 28 10:13:04 2006 for CAF by doxygen 1.3.4