herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
FourJetCorrelations.h
00001 // -*- C++ -*-
00002 
00003 // (C) 2007-2009 Simon Plaetzer -- sp@particle.uni-karlsruhe.de
00004 
00005 #ifndef HERWIG_FourJetCorrelations_H
00006 #define HERWIG_FourJetCorrelations_H
00007 //
00008 // This is the declaration of the FourJetCorrelations class.
00009 //
00010 
00011 #include "Analysis2Base.h"
00012 #include "FourJetCorrelations.fh"
00013 
00014 namespace Analysis2 {
00015 
00016 using namespace ThePEG;
00017 
00025 class FourJetCorrelations: public Analysis2::Analysis2Base {
00026 
00027 public:
00028 
00034   inline FourJetCorrelations();
00035 
00039   virtual ~FourJetCorrelations();
00041 
00042 public:
00043 
00049   virtual void analyze(const tPVector & particles);
00050 
00051 public:
00052 
00059   void persistentOutput(PersistentOStream & os) const;
00060 
00066   void persistentInput(PersistentIStream & is, int version);
00068 
00075   static void Init();
00076 
00077 protected:
00078 
00085   inline virtual IBPtr clone() const;
00086 
00091   inline virtual IBPtr fullclone() const;
00093 
00094 
00095 // If needed, insert declarations of virtual function defined in the
00096 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
00097 
00098 
00099 
00100 protected:
00101 
00109   virtual void doinit() throw(InitException);
00110 
00115   virtual void dofinish();
00117 
00118 protected:
00119 
00127   inline double cosChiBZ(const vector<Lorentz5Momentum>&);
00128 
00132   inline double cosPhiKSW(const vector<Lorentz5Momentum>&);
00133   
00137   inline double cosThetaNR(const vector<Lorentz5Momentum>&); 
00138 
00142   inline double cosAlpha34(const vector<Lorentz5Momentum>&); 
00144 
00145 private:
00146 
00150   string _cosAlpha34;
00151 
00155   string _cosChiBZ;
00156 
00160   string _cosPhiKSW;
00161 
00165   string _cosThetaNR;
00166 
00171   static ClassDescription<FourJetCorrelations> initFourJetCorrelations;
00172 
00177   FourJetCorrelations & operator=(const FourJetCorrelations &);
00178 
00179 };
00180 
00181 }
00182 
00183 #include "ThePEG/Utilities/ClassTraits.h"
00184 
00185 namespace ThePEG {
00186 
00191 template <>
00192 struct BaseClassTrait<Analysis2::FourJetCorrelations,1> {
00194   typedef Analysis2::Analysis2Base NthBase;
00195 };
00196 
00199 template <>
00200 struct ClassTraits<Analysis2::FourJetCorrelations>
00201   : public ClassTraitsBase<Analysis2::FourJetCorrelations> {
00203   static string className() { return "Analysis2::FourJetCorrelations"; }
00211   static string library() { return "Analysis2.so"; }
00212 };
00213 
00216 }
00217 
00218 #include "FourJetCorrelations.icc"
00219 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
00220 // #include "FourJetCorrelations.tcc"
00221 #endif
00222 
00223 #endif /* HERWIG_FourJetCorrelations_H */