CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
HiBremRecoveryClusterAlgo.h
Go to the documentation of this file.
1 #ifndef RecoHi_HiEgammaAlgos_HiBremRecoveryClusterAlgo_h_
2 #define RecoHi_HiEgammaAlgos_HiBremRecoveryClusterAlgo_h_
3 
10 
11 #include <vector>
12 
13 /*
14  The HiBremRecoveryClusterAlgo 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  HiBremRecoveryClusterAlgo(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  double theBarrelBremEnergyThreshold = 2.3,
31  double theEndcapBremEnergyThreshold = 5.7,
32  VerbosityLevel the_verbosity = pERROR) {
33  // e*_rdeta_ and e*_rdphi_ are half the total window
34  // because they correspond to one direction (positive or negative)
35  eb_rdeta_ = eb_sc_road_etasize / 2;
36  eb_rdphi_ = eb_sc_road_phisize / 2;
37  ec_rdeta_ = ec_sc_road_etasize / 2;
38  ec_rdphi_ = ec_sc_road_phisize / 2;
39 
40  seedTransverseEnergyThreshold = theSeedTransverseEnergyThreshold;
41  BarrelBremEnergyThreshold = theBarrelBremEnergyThreshold;
42  EndcapBremEnergyThreshold = theEndcapBremEnergyThreshold;
43  verbosity = the_verbosity;
44  }
45 
46  void setVerbosity(VerbosityLevel the_verbosity) { verbosity = the_verbosity; }
47 
48  // the method called from outside to do the SuperClustering - returns a vector of SCs:
50 
51 private:
52  // make superclusters out of clusters produced by the Island algorithm:
53  void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad);
54 
55  // return true if the cluster is within the search phi-eta window of the seed
56  bool match(reco::CaloClusterPtr seed_p, reco::CaloClusterPtr cluster_p, double etaRoad, double phiRoad);
57 
59 
60  double eb_rdeta_;
61  double eb_rdphi_;
62  double ec_rdeta_;
63  double ec_rdphi_;
64 
66 
67  // Barrel Basic Cluster threshold in the brem recovery process
70 
72 };
73 
74 #endif
HiBremRecoveryClusterAlgo(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, double theBarrelBremEnergyThreshold=2.3, double theEndcapBremEnergyThreshold=5.7, VerbosityLevel the_verbosity=pERROR)
bool match(reco::CaloClusterPtr seed_p, reco::CaloClusterPtr cluster_p, double etaRoad, double phiRoad)
reco::SuperClusterCollection makeSuperClusters(reco::CaloClusterPtrVector &clusters)
reco::SuperClusterCollection superclusters_v
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
void setVerbosity(VerbosityLevel the_verbosity)
void makeIslandSuperClusters(reco::CaloClusterPtrVector &clusters_v, double etaRoad, double phiRoad)