CMS 3D CMS Logo

BremRecoveryClusterAlgo.h
Go to the documentation of this file.
1 #ifndef RecoEcal_EgammaClusterAlgos_BremRecoveryClusterAlgo_h_
2 #define RecoEcal_EgammaClusterAlgos_BremRecoveryClusterAlgo_h_
3 
10 
11 #include <vector>
12 
13 /*
14  The BremRecoveryClusterAlgo class encapsulates the functionality needed
15  to perform the SuperClustering.
16 
17  WARNING: This code assumes that the BasicClusters
18  from the event are sorted by energy
19 */
20 
22 public:
23  enum VerbosityLevel { pDEBUG = 0, pWARNING = 1, pINFO = 2, pERROR = 3 };
24 
25  BremRecoveryClusterAlgo(double eb_sc_road_etasize = 0.06, // Search window in eta - Barrel
26  double eb_sc_road_phisize = 0.80, // Search window in phi - Barrel
27  double ec_sc_road_etasize = 0.14, // Search window in eta - Endcap
28  double ec_sc_road_phisize = 0.40, // Search window in eta - Endcap
29  double theSeedTransverseEnergyThreshold = 0.40,
30  VerbosityLevel the_verbosity = pERROR) {
31  // e*_rdeta_ and e*_rdphi_ are half the total window
32  // because they correspond to one direction (positive or negative)
33  eb_rdeta_ = eb_sc_road_etasize / 2;
34  eb_rdphi_ = eb_sc_road_phisize / 2;
35  ec_rdeta_ = ec_sc_road_etasize / 2;
36  ec_rdphi_ = ec_sc_road_phisize / 2;
37 
38  seedTransverseEnergyThreshold = theSeedTransverseEnergyThreshold;
39  verbosity = the_verbosity;
40  }
41 
42  void setVerbosity(VerbosityLevel the_verbosity) { verbosity = the_verbosity; }
43 
44  // the method called from outside to do the SuperClustering - returns a vector of SCs:
46 
47 private:
48  // make superclusters out of clusters produced by the Island algorithm:
49  void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad);
50 
51  // return true if the cluster is within the search phi-eta window of the seed
52  bool match(reco::CaloClusterPtr seed_p, reco::CaloClusterPtr cluster_p, double etaRoad, double phiRoad);
53 
54  //
55 
57 
58  double eb_rdeta_;
59  double eb_rdphi_;
60  double ec_rdeta_;
61  double ec_rdphi_;
62 
64 
66 };
67 
68 #endif
reco::SuperClusterCollection makeSuperClusters(reco::CaloClusterPtrVector &clusters)
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
void setVerbosity(VerbosityLevel the_verbosity)
void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad)
BremRecoveryClusterAlgo(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, double theSeedTransverseEnergyThreshold=0.40, VerbosityLevel the_verbosity=pERROR)
bool match(reco::CaloClusterPtr seed_p, reco::CaloClusterPtr cluster_p, double etaRoad, double phiRoad)
reco::SuperClusterCollection superclusters_v