Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

TrigObjects.h

Go to the documentation of this file.
00001 //================================================
00002 //
00003 // A set of function objects used to seed the trigger word bits
00004 //
00005 // ===============================================
00006 //
00007 #ifndef ATLFAST_TRIGOBJECTS_H
00008 #define ATLFAST_TRIGOBJECTS_H
00009 
00010 // Gaudi includes
00011 #include "GaudiKernel/SmartDataPtr.h"
00012 
00013 #include <cmath>
00014 #include <cstdlib>
00015 
00016 
00017 //--------------------------------------------------------
00018 //
00019 // Function objects for sort
00020 //
00021 
00022 namespace TrigObj {
00023   const float etaMaxElec    = xxx.x;
00024   const float etaMaxPhoton  = xxx.x;
00025   const float etaMaxMuon    = xxx.x;
00026   const float etaMaxEMu_E   = xxx.x; //eta covrge El-Mu diff from e or mu alone
00027   const float etaMaxEMu_M   = xxx.x; //lumi dep in ATL++, but values degenerate
00028   const float ptMinEM1      = xxx.x;
00029   const float ptMinEM2Elec  = xxx.x;
00030   const float ptMinEM2Phot  = xxx.x;
00031   const float ptMinMU1Isol  = xxx.x;
00032   const float ptMinMU2Isol  = xxx.x;
00033   const float ptMinMU1NIsol = xxx.x;
00034   const float ptMinMU2NIsol = xxx.x;
00035   const float ptMinEMUElec  = xxx.x;
00036   const float ptMinEMUMuon  = xxx.x;
00037 
00038   class IsolatedElectron {
00039   public:
00040     IsolatedElectron() m_em1(0), m_em2(0), m_emu(0){}
00041     bool operator() ( ReconstructedParticle* a) { 
00042       if( abs(a->eta()) <= etaMaxElec) return false;
00043       float pt=a->pt();
00044       if( pt> ptMinEM1) ++m_em1;
00045       if( pt> ptMinEM2) ++m_em2;
00046       if( pt> ptMinEMU) ++m_emu;
00047       return true;                        // return value not used!
00048     }
00049     bool em1(){return m_em1>1;}
00050     bool em2(){return m_em2;}
00051     int  emu(){return m_emu;}
00052   private:
00053     bool m_em1;
00054     int m_em2;
00055     int m_emu;
00056   };
00057   
00058   class IsolatedPhoton {
00059   public:
00060     Photon() m_ph1(0), m_em2(0) {}
00061     bool operator() ( ReconstructedParticle* a) { 
00062       if( abs(a->eta()) <= etaMaxPhoton) return false;
00063       float pt=a->pt();
00064       if( pt> ptMinPH1) ++m_ph1;
00065       if( pt> ptMinEM2) ++m_em2;
00066       return true;                        // return value not used!
00067     }
00068     bool em1(){return m_ph1>1;}
00069     int  em2(){return m_em2;}
00070   private:
00071     int m_ph1;
00072     int m_em2;
00073   };
00074 //
00075   class IsolatedMuon {
00076   public:
00077     IsolatedMuon(int lumi) m_lumi(lumi), m_mu1(0), m_mu2(0) {}
00078     bool operator() ( ReconstructedParticle* a) { 
00079       if( abs(a->eta()) <= etaMaxMuon) return;
00080       float pt=a->pt();
00081       if(               pt> ptMinMU1Isol) ++m_mu1;
00082       if( highLumi() && pt> ptMinMU2Isol) ++m_mu2;
00083       return true;                        // return value not used!
00084     }
00085     bool mu1(){return m_mu1>1;}
00086     bool mu2(){return m_mu2>1;}
00087   private:
00088     bool highLumi(){return m_lumi==2;}
00089     int m_lumi;
00090     int m_mu1;
00091     int m_mu2;
00092   };
00093   class NonIsolatedMuonTrig {
00094   public:
00095     NonIsolatedMuon(int lumi) m_lumi(lumi), m_mu1(0), m_mu2(0) {}
00096     bool operator() ( ReconstructedParticle* a) { 
00097       etaMuon=abs(a->eta())
00098         if( etaMuon <= etaMaxMuon){
00099           float pt=a->pt();
00100           if(               pt> ptMinMU1NIsol) ++m_mu1;
00101           if( highlumi() && pt> ptMinMU2NIsol) ++m_mu2;
00102           return true;                        // return value not used!
00103         }
00104       if(etaMuon<=etaMaxEMu_M) ++m_emu; 
00105         
00106         
00107       }
00108       
00109       bool mu1(){return m_mu1>1;}
00110       bool mu2(){return m_mu2>2;}
00111     private:
00112       bool highLumi(){return m_lumi==2;}
00113       int m_lumi;
00114       int m_mu1;
00115       int m_mu2;
00116     };
00117 }
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 

Generated on Mon Feb 4 15:54:25 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001