test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 /*
15  The BremRecoveryClusterAlgo class encapsulates the functionality needed
16  to perform the SuperClustering.
17 
18  WARNING: This code assumes that the BasicClusters
19  from the event are sorted by energy
20 */
21 
23 {
24  public:
25 
26  enum VerbosityLevel { pDEBUG = 0, pWARNING = 1, pINFO = 2, pERROR = 3 };
27 
28  BremRecoveryClusterAlgo(double eb_sc_road_etasize = 0.06, // Search window in eta - Barrel
29  double eb_sc_road_phisize = 0.80, // Search window in phi - Barrel
30  double ec_sc_road_etasize = 0.14, // Search window in eta - Endcap
31  double ec_sc_road_phisize = 0.40, // Search window in eta - Endcap
32  double theSeedTransverseEnergyThreshold = 0.40,
33  VerbosityLevel the_verbosity = pERROR
34  )
35  {
36  // e*_rdeta_ and e*_rdphi_ are half the total window
37  // because they correspond to one direction (positive or negative)
38  eb_rdeta_ = eb_sc_road_etasize / 2;
39  eb_rdphi_ = eb_sc_road_phisize / 2;
40  ec_rdeta_ = ec_sc_road_etasize / 2;
41  ec_rdphi_ = ec_sc_road_phisize / 2;
42 
43  seedTransverseEnergyThreshold = theSeedTransverseEnergyThreshold;
44  verbosity = the_verbosity;
45  }
46 
47  void setVerbosity(VerbosityLevel the_verbosity)
48  {
49  verbosity = the_verbosity;
50  }
51 
52  // the method called from outside to do the SuperClustering - returns a vector of SCs:
54 
55  private:
56 
57  // make superclusters out of clusters produced by the Island algorithm:
59  double etaRoad, double phiRoad);
60 
61  // return true if the cluster is within the search phi-eta window of the seed
62  bool match(reco::CaloClusterPtr seed_p,
63  reco::CaloClusterPtr cluster_p,
64  double etaRoad, double phiRoad);
65 
66  //
67 
69 
70  double eb_rdeta_;
71  double eb_rdphi_;
72  double ec_rdeta_;
73  double ec_rdphi_;
74 
76 
78 
79 };
80 
81 #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