CMS 3D CMS Logo

HLTEcalResonanceFilter.h
Go to the documentation of this file.
1 
9 //
10 // Original Authors: Vladimir Litvine , Yong Yang
11 
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  public:
77  ~HLTEcalResonanceFilter() override;
78 
79  bool filter(edm::Event &, const edm::EventSetup&) override;
80  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
81  private:
82  // ----------member data ---------------------------
83  void doSelection(int detector, const reco::BasicClusterCollection *clusterCollection,
85  const EcalChannelStatus &channelStatus,
86  const CaloSubdetectorTopology* topology_p,
87  std::map<int, std::vector<EcalRecHit> > &RecHits5x5_clus,
88  std::vector<int> &indCandClus,
89  std::vector<int> &indIsoClus,
90  std::vector<int> &indClusSelected
91  );
92 
93 
94  void makeClusterES(float x, float y, float z,const CaloSubdetectorGeometry* iSubGeom,const CaloSubdetectorTopology* topology_p);
95 
96  void calcPaircluster(const reco::BasicCluster &bc1, const reco::BasicCluster &bc2, float &mpair, float &ptpair,float &etapair,float &phipair);
97 
98  bool checkStatusOfEcalRecHit(const EcalChannelStatus &channelStatus, const EcalRecHit &rh);
99 
100  void calcShowerShape(const reco::BasicCluster &bc, const EcalChannelStatus &channelStatus, const EcalRecHitCollection *recHits,const CaloSubdetectorTopology *topology_p, bool calc5x5, std::vector<EcalRecHit> &rechit5x5,float res[]);
101 
102  void convxtalid(int & , int &);
103  int diff_neta_s(int,int);
104  int diff_nphi_s(int,int);
105 
106 
107  static float DeltaPhi(float phi1, float phi2);
108  static float GetDeltaR(float eta1, float eta2, float phi1, float phi2);
109 
110  // Input hits & clusters
115 
121 
126 
127 
130  double selePtGamma_;
131  double selePtPair_;
136  double seleBeltDR_;
138  double seleIso_;
144 
145  //for pi0/eta ->gg endcap
165 
166 
171 
172 
174  edm::InputTag preshHitProducer_; // name of module/plugin/producer producing hits
177  double etThresh_;
180  double mip_;
181  double gamma_;
182 
183  PreshowerClusterAlgo * presh_algo_; // algorithm doing the real work
184 
185 
186 
187  std::map<DetId, EcalRecHit> m_esrechit_map;
188  std::set<DetId> m_used_strips;
189 
190 
191  int debug_;
192 };
edm::EDGetTokenT< EERecHitCollection > endcapHitsToken_
Definition: Electron.h:6
edm::EDGetTokenT< EBRecHitCollection > barrelHitsToken_
std::map< DetId, EcalRecHit > m_esrechit_map
std::string BarrelHits_
output hits
bool doSelBarrel_
for pi0/eta ->gg barrel
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
HLT enums.
edm::EDGetTokenT< reco::BasicClusterCollection > barrelClustersToken_
edm::EDGetTokenT< ESRecHitCollection > preshHitsToken_
PreshowerClusterAlgo * presh_algo_
edm::EDGetTokenT< reco::BasicClusterCollection > endcapClustersToken_