1 #ifndef __L1Trigger_L1THGCal_HGCalShowerShape_h__ 2 #define __L1Trigger_L1THGCal_HGCalShowerShape_h__ 49 float meanX(
const std::vector<pair<float,float> >& energy_X_tc)
const;
52 template<
typename Delta=std::minus<
float>>
float sigmaXX(
53 const std::vector<pair<float,float> >& energy_X_tc,
54 const float X_cluster)
const {
58 float deltaX2_sum = 0;
59 for(
const auto& energy_X : energy_X_tc){
60 deltaX2_sum += energy_X.first *
pow(
delta(energy_X.second, X_cluster),2);
61 Etot += energy_X.first;
64 if (Etot>0) X_MSE=deltaX2_sum/Etot;
65 float X_RMS=
sqrt(X_MSE);
73 const std::vector<pair<float,float> >& energy_phi_tc,
74 const float phi_cluster)
const {
75 return sigmaXX<DeltaPhi<float>>(energy_phi_tc,phi_cluster);
float sigmaRRMax(const l1t::HGCalMulticluster &c3d) const
T operator()(const T &x, const T &y) const
void eventSetup(const edm::EventSetup &es)
int coreShowerLength(const l1t::HGCalMulticluster &c3d, const HGCalTriggerGeometryBase &triggerGeometry) const
float sigmaRRTot(const l1t::HGCalMulticluster &c3d) const
HGCalTriggerTools triggerTools_
float sigmaPhiPhiTot(const l1t::HGCalMulticluster &c3d) const
int firstLayer(const l1t::HGCalMulticluster &c3d) const
float sigmaPhiPhi(const std::vector< pair< float, float > > &energy_phi_tc, const float phi_cluster) const
float meanX(const std::vector< pair< float, float > > &energy_X_tc) const
int lastLayer(const l1t::HGCalMulticluster &c3d) const
float sigmaXX(const std::vector< pair< float, float > > &energy_X_tc, const float X_cluster) const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
float sigmaRRMean(const l1t::HGCalMulticluster &c3d, float radius=5.) const
float sigmaEtaEtaMax(const l1t::HGCalMulticluster &c3d) const
math::XYZTLorentzVector LorentzVector
int showerLength(const l1t::HGCalMulticluster &c3d) const
float sigmaZZ(const l1t::HGCalMulticluster &c3d) const
float sigmaPhiPhiMax(const l1t::HGCalMulticluster &c3d) const
int maxLayer(const l1t::HGCalMulticluster &c3d) const
float eMax(const l1t::HGCalMulticluster &c3d) const
float sigmaEtaEtaTot(const l1t::HGCalMulticluster &c3d) const
Power< A, B >::type pow(const A &a, const B &b)