CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Multi5x5BremRecoveryClusterAlgo.h
Go to the documentation of this file.
1 #ifndef RecoEcal_EgammaClusterAlgos_Multi5x5BremRecoveryClusterAlgo_h_
2 #define RecoEcal_EgammaClusterAlgos_Multi5x5BremRecoveryClusterAlgo_h_
3 
10 
12 
13 #include <vector>
14 
15 
16 /*
17  The Multi5x5BremRecoveryClusterAlgo class encapsulates the functionality needed
18  to perform the SuperClustering.
19 
20  WARNING: This code assumes that the BasicClusters
21  from the event are sorted by energy
22 */
23 
25 {
26  public:
27 
28 
30  double eb_sc_road_etasize = 0.06, // Search window in eta - Barrel
31  double eb_sc_road_phisize = 0.80, // Search window in phi - Barrel
32  double ec_sc_road_etasize = 0.14, // Search window in eta - Endcap
33  double ec_sc_road_phisize = 0.40, // Search window in eta - Endcap
34  bool dynamicPhiRoad = true,
35  double theSeedTransverseEnergyThreshold = 0.40
36  )
37  {
38  // e*_rdeta_ and e*_rdphi_ are half the total window
39  // because they correspond to one direction (positive or negative)
40  eb_rdeta_ = eb_sc_road_etasize / 2;
41  eb_rdphi_ = eb_sc_road_phisize / 2;
42  ec_rdeta_ = ec_sc_road_etasize / 2;
43  ec_rdphi_ = ec_sc_road_phisize / 2;
44 
45  seedTransverseEnergyThreshold = theSeedTransverseEnergyThreshold;
46  dynamicPhiRoad_ = dynamicPhiRoad;
47  if (dynamicPhiRoad_) phiRoadAlgo_ = new BremRecoveryPhiRoadAlgo(bremRecoveryPset);
48 
49  }
50 
51  // destructor
53  {
54  if (dynamicPhiRoad_) delete phiRoadAlgo_;
55  }
56 
57 
58  // the method called from outside to do the SuperClustering - returns a vector of SCs:
60 
61  private:
62 
63  // make superclusters out of clusters produced by the Island algorithm:
65  double etaRoad, double phiRoad);
66 
67  // return true if the cluster is within the search phi-eta window of the seed
68  bool match(reco::CaloClusterPtr seed_p,
69  reco::CaloClusterPtr cluster_p,
70  double etaRoad, double phiRoad);
71 
72  //
73 
74  double eb_rdeta_;
75  double eb_rdphi_;
76  double ec_rdeta_;
77  double ec_rdphi_;
78 
82 
84 
85 };
86 
87 #endif
void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad)
reco::SuperClusterCollection makeSuperClusters(reco::CaloClusterPtrVector &clusters)
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
reco::SuperClusterCollection superclusters_v
Multi5x5BremRecoveryClusterAlgo(const edm::ParameterSet &bremRecoveryPset, double eb_sc_road_etasize=0.06, double eb_sc_road_phisize=0.80, double ec_sc_road_etasize=0.14, double ec_sc_road_phisize=0.40, bool dynamicPhiRoad=true, double theSeedTransverseEnergyThreshold=0.40)
bool match(reco::CaloClusterPtr seed_p, reco::CaloClusterPtr cluster_p, double etaRoad, double phiRoad)