CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoJets/JetAnalyzers/interface/MyCluster.h

Go to the documentation of this file.
00001 #ifndef MYCLUSTER_H
00002 #define MYCLUSTER_H
00003 #include "CLHEP/Vector/LorentzVector.h"
00004 
00005 enum {ClusterEm=0,ClusterHd=1,ClusterEmHd=2,ClusterTower=3,RecHitEm=4,RecHitHd=5,CaloTowerEm=6,CaloTowerHd=7};
00006 
00007 struct MatchParam{
00008   int index;
00009   double distance;
00010 };
00011 
00012 struct CalCell{
00013   CLHEP::HepLorentzVector Momentum;
00014   int   pid;
00015   bool used;
00016 };
00017 
00018 
00019 struct CalCluster{
00020   CLHEP::HepLorentzVector Momentum;
00021   double em;
00022   double hd;
00023   int    type;
00024   int ncells;
00025   std::vector<CalCell> clusterCellList;
00026   std::vector<MatchParam> MatchedClusters;
00027   std::vector<CalCluster> SubClusterList;
00028 };
00029 
00030 class CellGreater {
00031   public:
00032   bool operator () (const CalCell& i, const CalCell& j) {
00033     return (i.Momentum.e() > j.Momentum.e());
00034   }
00035 };
00036 
00037 class CellEtGreater {
00038   public:
00039   bool operator () (const CalCell& i, const CalCell& j) {
00040     return (i.Momentum.perp() > j.Momentum.perp());
00041   }
00042 };
00043 
00044 class ClusterGreater {
00045   public:
00046   bool operator () (const CalCluster& i, const CalCluster& j) {
00047     return (i.Momentum.e() > j.Momentum.e());
00048   }
00049 };
00050 
00051 class ClusterEtGreater {
00052   public:
00053   bool operator () (const CalCluster& i, const CalCluster& j) {
00054     return (i.Momentum.perp() > j.Momentum.perp());
00055   }
00056 };
00057 class ClusterPtGreater {
00058   public:
00059 
00060   bool operator () (const CalCluster& i, const CalCluster& j) {
00061     return (i.Momentum.perp() > j.Momentum.perp());
00062   }
00063 };
00064 
00065 
00066 #endif