CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTRegionalEcalResonanceFilter.h
Go to the documentation of this file.
1 
9 //
10 // Original Authors: Vladimir Litvine , Yong Yang
11 // Modified by: Joshua Hardenbrook 10-8-2014
12 
13 // system include files
14 #include <memory>
15 
16 // user include files
24 
27 
30 
31 // Geometry
41 
45 
49 
50 // ES stuff
56 
57 //
58 //Ecal status
61 
62 // class declaration
63 //
64 #include <algorithm>
65 #include <utility>
66 
67 #include "TLorentzVector.h"
68 #include <vector>
69 
70 namespace edm {
72 }
73 
75 {
76  public:
79 
80  virtual bool filter(edm::Event &, const edm::EventSetup&);
81  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
82  private:
83  // ----------member data ---------------------------
84  void doSelection(int detector, const reco::BasicClusterCollection *clusterCollection,
86  const EcalChannelStatus &channelStatus,
87  const CaloSubdetectorTopology* topology_p,
88  std::map<int, std::vector<EcalRecHit> > &RecHits5x5_clus,
89  std::vector<int> &indCandClus,
90  std::vector<int> &indIsoClus,
91  std::vector<int> &indClusSelected
92  );
93 
94 
95  void makeClusterES(float x, float y, float z,const CaloSubdetectorGeometry*&iSubGeom,CaloSubdetectorTopology*& topology_p);
96 
97  void calcPaircluster(const reco::BasicCluster &bc1, const reco::BasicCluster &bc2, float &mpair, float &ptpair,float &etapair,float &phipair);
98 
99  bool checkStatusOfEcalRecHit(const EcalChannelStatus &channelStatus, const EcalRecHit &rh);
100 
101  void calcShowerShape(const reco::BasicCluster &bc, const EcalChannelStatus &channelStatus, const EcalRecHitCollection *recHits,const CaloSubdetectorTopology *topology_p, bool calc5x5, std::vector<EcalRecHit> &rechit5x5,float res[]);
102 
103  void convxtalid(int & , int &);
104  int diff_neta_s(int,int);
105  int diff_nphi_s(int,int);
106 
107 
108  static float DeltaPhi(float phi1, float phi2);
109  static float GetDeltaR(float eta1, float eta2, float phi1, float phi2);
110 
111  // Input hits & clusters
116 
122 
127 
128 
131 
132  // EB region 1
138 
139  // EB region 2
144 
147 
148  // double selePtGamma_;
149  // double selePtPair_;
150  // double seleS4S9Gamma_;
151  // double seleIso_;
153 
154  // EB Isolation Configuraiton
155  double seleBeltDR_;
158 
163 
165 
166  // EE region 1
172 
173  // EE region 2
179 
180  // EE region 3
186 
189  // double seleS4S9GammaEndCap_; //old non-regional filter
190  // double seleIsoEndCap_; //old non-regional filter
191 
193 
194  // EE isolation configuration
199 
204 
206  edm::InputTag preshHitProducer_; // name of module/plugin/producer producing hits
209  double etThresh_;
212  double mip_;
213  double gamma_;
214 
215  PreshowerClusterAlgo * presh_algo_; // algorithm doing the real work
216 
217  std::map<DetId, EcalRecHit> m_esrechit_map;
218  std::set<DetId> m_used_strips;
219 
220  int debug_;
221 };
virtual bool filter(edm::Event &, const edm::EventSetup &)
bool checkStatusOfEcalRecHit(const EcalChannelStatus &channelStatus, const EcalRecHit &rh)
static float GetDeltaR(float eta1, float eta2, float phi1, float phi2)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::EDGetTokenT< EERecHitCollection > endcapHitsToken_
void doSelection(int detector, const reco::BasicClusterCollection *clusterCollection, const EcalRecHitCollection *hitCollection, const EcalChannelStatus &channelStatus, const CaloSubdetectorTopology *topology_p, std::map< int, std::vector< EcalRecHit > > &RecHits5x5_clus, std::vector< int > &indCandClus, std::vector< int > &indIsoClus, std::vector< int > &indClusSelected)
edm::EDGetTokenT< reco::BasicClusterCollection > barrelClustersToken_
void calcPaircluster(const reco::BasicCluster &bc1, const reco::BasicCluster &bc2, float &mpair, float &ptpair, float &etapair, float &phipair)
edm::EDGetTokenT< ESRecHitCollection > preshHitsToken_
edm::EDGetTokenT< EBRecHitCollection > barrelHitsToken_
static float DeltaPhi(float phi1, float phi2)
void calcShowerShape(const reco::BasicCluster &bc, const EcalChannelStatus &channelStatus, const EcalRecHitCollection *recHits, const CaloSubdetectorTopology *topology_p, bool calc5x5, std::vector< EcalRecHit > &rechit5x5, float res[])
HLTRegionalEcalResonanceFilter(const edm::ParameterSet &)
edm::EDGetTokenT< reco::BasicClusterCollection > endcapClustersToken_
void makeClusterES(float x, float y, float z, const CaloSubdetectorGeometry *&iSubGeom, CaloSubdetectorTopology *&topology_p)
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
bool doSelBarrel_
------—BARREL CONFIGURATION
std::map< DetId, EcalRecHit > m_esrechit_map