/Home/aooliver/hepsoft/lcdroot/LCDRootApps/PhUtil/inc/LCDEventShape.h

Go to the documentation of this file.
00001 // ----------------------------------------------------------------------------
00002 // $Id: LCDEventShape.h,v 1.3 2001/10/08 17:51:39 toshi Exp $
00003 // ----------------------------------------------------------------------------
00004 
00005 #ifndef LCDEVENTSHAPE
00006 #define LCDEVENTSHAPE
00007 
00008 #include "TMath.h"
00009 #include "TMatrixD.h"
00010 #include "TRandom.h"
00011 #include "TVector3.h"
00012 #include "TLorentzVector.h"
00013 #include "TObjArray.h"
00014 #include "TClass.h"
00015 
00016 class LCDEventShape : public TObject{   
00017 
00018 public:
00019   LCDEventShape();
00020   ~LCDEventShape();
00021 
00022   void SetPartList(TObjArray* e);
00023   // Input the particle 3(4)-vector list
00024   // e: 3-vector  TVector3       ..(px,py,pz) or
00025   //    4-vector  TLorentzVector ..(px,py,pz,E) 
00026   // Even input the TLorentzVector, we don't use Energy 
00027         
00028   void     SetThMomPower(Double_t tp);
00029   Double_t GetThMomPower();
00030   void     SetFast(Int_t nf);
00031   Int_t    GetFast();
00032 
00033   TVector3 GetThrustAxis();
00034   TVector3 GetMajorAxis();
00035   TVector3 GetMinorAxis();
00036   
00037   Double_t GetThrust() {return m_dThrust[1];};
00038   Double_t GetMajor()  {return m_dThrust[2];};
00039   Double_t GetMinor()  {return m_dThrust[3];};
00040 
00041   Double_t oblateness();
00042 
00043 private:        
00044   Double_t ulAngle(Double_t x, Double_t y);
00045   Double_t sign(Double_t a, Double_t b);
00046   void     ludbrb(TMatrixD *mom, 
00047                   Double_t the, 
00048                   Double_t phi, 
00049                   Double_t bx, 
00050                   Double_t by,
00051                   Double_t bz);
00052         
00053   Int_t iPow(Int_t man, Int_t exp);
00054         
00055   Double_t m_dSphMomPower; 
00056   // PARU(41): Power of momentum dependence in sphericity finder.
00057 
00058   Double_t m_dDeltaThPower;
00059   // PARU(42): Power of momentum dependence in thrust finder.   
00060 
00061   Int_t m_iFast; 
00062   // MSTU(44): # of initial fastest particles choosen to start search.
00063 
00064   Double_t m_dConv;
00065   // PARU(48): Convergence criteria for axis maximization.
00066 
00067   Int_t m_iGood;
00068   // MSTU(45): # different starting configurations that must
00069   // converge before axis is accepted as correct.       
00070 
00071   TMatrixD m_dAxes;
00072   // data: results
00073   // m_dAxes[1] is the Thrust axis.
00074   // m_dAxes[2] is the Major axis.
00075   // m_dAxes[3] is the Minor axis.
00076 
00077   //TVector3 m_ThrustAxis;
00078   //TVector3 m_MajorAxis;
00079   //TVector3 m_MinorAxis;
00080   
00081   TRandom m_random;
00082 
00083   Double_t m_dThrust[4];
00084   Double_t m_dOblateness;
00085   
00086   static Int_t m_maxpart;
00087 
00088 public:
00089   ClassDef(LCDEventShape,0) // Thrust finder base class
00090 };
00091 
00092 #endif
00093 
00094 

Generated on Tue Jul 18 18:33:57 2006 for LCDROOT by  doxygen 1.4.6