1 |
#ifndef PhotonIsolator_h
|
2 |
#define PhotonIsolator_h
|
3 |
|
4 |
#include <memory>
|
5 |
#include <string>
|
6 |
#include <iostream>
|
7 |
#include <map>
|
8 |
|
9 |
#include "FWCore/Framework/interface/Event.h"
|
10 |
#include "FWCore/Framework/interface/EventSetup.h"
|
11 |
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
12 |
#include "FWCore/Framework/interface/ESHandle.h"
|
13 |
|
14 |
#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
|
15 |
//#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
|
16 |
//#include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
|
17 |
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
|
18 |
//#include "Geometry/Records/interface/IdealGeometryRecord.h"
|
19 |
#include "Geometry/Records/interface/CaloGeometryRecord.h"
|
20 |
|
21 |
#include "../interface/TRootPhoton.h"
|
22 |
#include "../interface/TRootSuperCluster.h"
|
23 |
#include "../interface/TRootCluster.h"
|
24 |
#include "../interface/TRootTrack.h"
|
25 |
|
26 |
#include "TClonesArray.h"
|
27 |
|
28 |
#define PI 3.141592654
|
29 |
#define TWOPI 6.283185308
|
30 |
|
31 |
|
32 |
class PhotonIsolator{
|
33 |
|
34 |
public:
|
35 |
|
36 |
PhotonIsolator(edm::ParameterSet * config, edm::ParameterSet * producersNames);
|
37 |
~PhotonIsolator();
|
38 |
|
39 |
float deltaPhi(float phi1, float phi2);
|
40 |
float deltaR(float phi1, float phi2, float eta1, float eta2);
|
41 |
void setVerbosity(int verbosity) {verbosity_ = verbosity; };
|
42 |
bool loadHcalRecHits(const edm::Event& iEvent, const edm::EventSetup& iSetup);
|
43 |
Double_t basicClustersIsolation(TRootPhoton* photon, TClonesArray* superClusters, TClonesArray* basicClusters);
|
44 |
Double_t basicClustersDoubleConeIsolation(TRootPhoton* photon, TClonesArray* superClusters, TClonesArray* basicClusters);
|
45 |
Double_t hcalRecHitIsolation(TRootPhoton* photon);
|
46 |
Double_t trackerIsolation(TRootPhoton* photon, TClonesArray* tracks, Int_t &nTracks);
|
47 |
|
48 |
|
49 |
private:
|
50 |
|
51 |
edm::ParameterSet * config_;
|
52 |
edm::ParameterSet * producersNames_;
|
53 |
int verbosity_;
|
54 |
int basicClustersIsolation_BarrelBC_type_;
|
55 |
int basicClustersIsolation_EndcapBC_type_;
|
56 |
double basicClustersIsolation_DRmax_;
|
57 |
double basicClustersIsolation_ClusterEt_threshold_;
|
58 |
int basicClustersDoubleConeIsolation_BarrelBC_type_;
|
59 |
int basicClustersDoubleConeIsolation_EndcapBC_type_;
|
60 |
double basicClustersDoubleConeIsolation_DRmin_;
|
61 |
double basicClustersDoubleConeIsolation_DRmax_;
|
62 |
double basicClustersDoubleConeIsolation_ClusterEt_threshold_;
|
63 |
double hcalRecHitIsolation_DRmax_;
|
64 |
double hcalRecHitIsolation_HitEt_threshold_;
|
65 |
double trackerIsolation_DRmax_;
|
66 |
double trackerIsolation_pt_threshold_;
|
67 |
int trackerIsolation_pixelLayers_threshold_;
|
68 |
bool allowMissingCollection_;
|
69 |
|
70 |
const HBHERecHitCollection* hbheHits_;
|
71 |
const HORecHitCollection* hoHits_;
|
72 |
const HFRecHitCollection* hfHits_;
|
73 |
const CaloGeometry* geometry_;
|
74 |
|
75 |
};
|
76 |
|
77 |
#endif
|