CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 /*
15  The HiBremRecoveryClusterAlgo 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  HiBremRecoveryClusterAlgo(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  double theBarrelBremEnergyThreshold = 2.3,
34  double theEndcapBremEnergyThreshold = 5.7,
35  VerbosityLevel the_verbosity = pERROR
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  BarrelBremEnergyThreshold = theBarrelBremEnergyThreshold;
47  EndcapBremEnergyThreshold = theEndcapBremEnergyThreshold;
48  verbosity = the_verbosity;
49  }
50 
51  void setVerbosity(VerbosityLevel the_verbosity)
52  {
53  verbosity = the_verbosity;
54  }
55 
56  // the method called from outside to do the SuperClustering - returns a vector of SCs:
58 
59  private:
60 
61  // make superclusters out of clusters produced by the Island algorithm:
63  double etaRoad, double phiRoad);
64 
65  // return true if the cluster is within the search phi-eta window of the seed
66  bool match(reco::CaloClusterPtr seed_p,
67  reco::CaloClusterPtr cluster_p,
68  double etaRoad, double phiRoad);
69 
71 
72  double eb_rdeta_;
73  double eb_rdphi_;
74  double ec_rdeta_;
75  double ec_rdphi_;
76 
78 
79  // Barrel Basic Cluster threshold in the brem recovery process
82 
84 
85 };
86 
87 #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)