CMS 3D CMS Logo

L2TauIsolationAlgs.h

Go to the documentation of this file.
00001 /*
00002 L2 Tau trigger Isolation algorithms
00003 
00004 Author: Michail Bachtis
00005 University of Wisconsin-Madison
00006 e-mail: bachtis@hep.wisc.edu
00007 */
00008 
00009 #ifndef L2TAUISOLATIONALGS_H
00010 #define L2TAUISOLATIONALGS_H
00011 
00012 #include "DataFormats/Math/interface/LorentzVector.h"
00013 #include "DataFormats/Math/interface/LorentzVectorFwd.h"
00014 #include <vector>
00015 #include "DataFormats/TauReco/interface/L2TauIsolationInfo.h"
00016 #include "DataFormats/JetReco/interface/CaloJet.h"
00017 
00018 using namespace reco;
00019 
00022 
00023 
00024 
00025 class L2TauECALCluster
00026 {
00027  public:
00028   //Constructors
00029   L2TauECALCluster();
00030   L2TauECALCluster(const math::PtEtaPhiELorentzVector&); 
00031   ~L2TauECALCluster();
00032 
00033 
00034   //Return Functions
00035   math::PtEtaPhiELorentzVector p4() const;//LorenzVector
00036   int nCrystals() const; //N Crystals
00037 
00038   //Add Crystal to Cluster
00039   void addCrystal(const math::PtEtaPhiELorentzVector&);//Add a Crystal
00040 
00041  private:
00042   //Cluster LorentzVector
00043   math::PtEtaPhiELorentzVector p4_;
00044 
00045   //Number of crystals
00046   int m_ncrystals;
00047 
00048 };
00049 
00050 typedef std::vector<L2TauECALCluster> L2TauECALClusterCollection;
00051 typedef std::vector<L2TauECALCluster>::const_iterator L2TauECALClusterIt;
00052 
00053 
00054 
00057 
00058 
00059 class L2TauECALClustering
00060 {
00061  public:
00062   //Constructor 
00063   L2TauECALClustering();
00064   L2TauECALClustering(double);
00065     
00066   //Destructor
00067   ~L2TauECALClustering();
00068 
00069 
00070   //METHODS
00071   void run(const math::PtEtaPhiELorentzVectorCollection&,const CaloJet&,L2TauIsolationInfo&);
00072 
00073  private:
00074   //VARIABLES
00075   double m_clusterRadius;     //Cluster Radius
00076 
00077 
00078   L2TauECALClusterCollection m_clusters;//Cluster Container
00079 
00080   //METHODS
00081   void clusterize(const math::PtEtaPhiELorentzVectorCollection&); //Do Clustering
00082   std::vector<double> clusterSeperation(const CaloJet&) const; //Calculation of Cluster Moments
00083 
00084 };
00085 
00088 
00089 class L2TauECALIsolation
00090 {
00091  public:
00092   L2TauECALIsolation();
00093   L2TauECALIsolation(double,double);
00094 
00095   ~L2TauECALIsolation();
00096 
00097  
00098   void run(const math::PtEtaPhiELorentzVectorCollection&,const CaloJet& ,L2TauIsolationInfo&);
00099 
00100 
00101  private:
00102   //METHODS;
00103   double isolatedEt( const math::PtEtaPhiELorentzVectorCollection& ,const CaloJet&) const; //Return the Isolated Et
00104 
00105 
00106   //VARIABLES;
00107   double m_innerCone; //Inner Cone
00108   double m_outerCone; //Outer Cone
00109 
00110 };
00111 
00112 
00115 
00116 
00117 class L2TauTowerIsolation
00118 {
00119  public:
00120   L2TauTowerIsolation();
00121   L2TauTowerIsolation(double,double);
00122 
00123   ~L2TauTowerIsolation();
00124 
00125 
00126   void run(const CaloJet&, const math::PtEtaPhiELorentzVectorCollection&, L2TauIsolationInfo&);
00127 
00128 
00129  private:
00130   //METHODS;
00131   double isolatedEt(const CaloJet&,const math::PtEtaPhiELorentzVectorCollection&) const;
00132   double seedTowerEt(const math::PtEtaPhiELorentzVectorCollection&) const; 
00133 
00134   //VARIABLES;
00135   double m_innerCone;
00136   double m_outerCone;
00137 
00138 
00139 };
00140 
00141 #endif

Generated on Tue Jun 9 17:44:58 2009 for CMSSW by  doxygen 1.5.4