CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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  The Multi5x5BremRecoveryClusterAlgo class encapsulates the functionality needed
17  to perform the SuperClustering.
18 
19  WARNING: This code assumes that the BasicClusters
20  from the event are sorted by energy
21 */
22 
24 public:
26  double eb_sc_road_etasize = 0.06, // Search window in eta - Barrel
27  double eb_sc_road_phisize = 0.80, // Search window in phi - Barrel
28  double ec_sc_road_etasize = 0.14, // Search window in eta - Endcap
29  double ec_sc_road_phisize = 0.40, // Search window in eta - Endcap
30  bool dynamicPhiRoad = true,
31  double theSeedTransverseEnergyThreshold = 0.40) {
32  // e*_rdeta_ and e*_rdphi_ are half the total window
33  // because they correspond to one direction (positive or negative)
34  eb_rdeta_ = eb_sc_road_etasize / 2;
35  eb_rdphi_ = eb_sc_road_phisize / 2;
36  ec_rdeta_ = ec_sc_road_etasize / 2;
37  ec_rdphi_ = ec_sc_road_phisize / 2;
38 
39  seedTransverseEnergyThreshold = theSeedTransverseEnergyThreshold;
40  dynamicPhiRoad_ = dynamicPhiRoad;
41  if (dynamicPhiRoad_)
42  phiRoadAlgo_ = new BremRecoveryPhiRoadAlgo(bremRecoveryPset);
43  }
44 
45  // destructor
47  if (dynamicPhiRoad_)
48  delete phiRoadAlgo_;
49  }
50 
51  // the method called from outside to do the SuperClustering - returns a vector of SCs:
53 
54 private:
55  // make superclusters out of clusters produced by the Island algorithm:
56  void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad);
57 
58  double eb_rdeta_;
59  double eb_rdphi_;
60  double ec_rdeta_;
61  double ec_rdphi_;
62 
66 
68 };
69 
70 #endif
void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad)
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)
reco::SuperClusterCollection makeSuperClusters(const reco::CaloClusterPtrVector &clusters)