Go to the documentation of this file.00001 #ifndef EventShapeVariables_h
00002 #define EventShapeVariables_h
00003
00023 #include "DataFormats/Math/interface/Vector3D.h"
00024 #include "DataFormats/Candidate/interface/Candidate.h"
00025 #include "DataFormats/Candidate/interface/CandidateFwd.h"
00026
00027 #include "TMatrixDSym.h"
00028 #include "TVectorD.h"
00029
00030 #include <vector>
00031
00032 class EventShapeVariables {
00033
00034 public:
00036 explicit EventShapeVariables(const edm::View<reco::Candidate>& inputVectors);
00038 explicit EventShapeVariables(const std::vector<math::XYZVector>& inputVectors);
00040 explicit EventShapeVariables(const std::vector<math::RhoEtaPhiVector>& inputVectors);
00042 explicit EventShapeVariables(const std::vector<math::RThetaPhiVector>& inputVectors);
00044 ~EventShapeVariables(){};
00045
00049 double isotropy(const unsigned int& numberOfSteps = 1000) const;
00050
00053 double circularity(const unsigned int& numberOfSteps = 1000) const;
00054
00058 double sphericity(double = 2.) const;
00062 double aplanarity(double = 2.) const;
00066 double C(double = 2.) const;
00070 double D(double = 2.) const;
00071
00072 private:
00075 TMatrixDSym compMomentumTensor(double = 2.) const;
00076 TVectorD compEigenValues(double = 2.) const;
00077
00079 std::vector<math::XYZVector> inputVectors_;
00080 };
00081
00082 #endif
00083