00001 #ifndef EventShapeVariables_h 00002 #define EventShapeVariables_h 00003 00004 #include <memory> 00005 #include <vector> 00006 #include <string> 00007 #include <iostream> 00008 00009 #include "TMath.h" 00010 #include "TVector3.h" 00011 #include "TVectorD.h" 00012 #include "TMatrixDSym.h" 00013 00014 00015 class EventShapeVariables { 00016 00017 public: 00018 00019 explicit EventShapeVariables(); 00020 ~EventShapeVariables(){}; 00021 00022 int nStep() {return nStep_;}; 00023 double sphericity() const {return sph_; }; 00024 double aplanarity() const {return apl_; }; 00025 double circularity() const {return cir_; }; 00026 double isotropy() const {return iso_; }; 00027 00028 void setNStep(int value) {nStep_=value;}; 00029 double sphericity(const std::vector<TVector3>&); 00030 double aplanarity(const std::vector<TVector3>&); 00031 double circularity(const std::vector<TVector3>&); 00032 double isotropy(const std::vector<TVector3>&); 00033 00034 private: 00035 00036 TMatrixDSym momentumTensor(const std::vector<TVector3>&); 00037 00038 private: 00039 00040 int nStep_; 00041 double sph_; 00042 double apl_; 00043 double cir_; 00044 double iso_; 00045 }; 00046 00047 #endif 00048