Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:23:58

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LPairAnalysis_H
0003 #define HERWIG_LPairAnalysis_H
0004 //
0005 // This is the declaration of the LPairAnalysis class.
0006 //
0007 
0008 #include "ThePEG/Repository/CurrentGenerator.h"
0009 #include "ThePEG/Handlers/AnalysisHandler.h"
0010 #include "Herwig/Utilities/Histogram.h"
0011 
0012 namespace Herwig {
0013 
0014 using namespace ThePEG;
0015 
0016 /** \ingroup Analysis
0017  * The LPairAnalysis class is designed to analyse lepton pairs.
0018  * Therefore the lepton and antilepton with highest pt are selected from
0019  * the event and some observables are computed and booked into
0020  * histograms.  The analysis is intended to anaylse top pair events
0021  * where both W's are decaying semileptonically.  Therefore, only the
0022  * semileptonic top quark decay channels should be switched on.  If no
0023  * pair of (opposite sign) leptons is found in the final state a warning
0024  * message is printed and nothing is booked.  Output is created as
0025  * topdrawer file
0026  *
0027  * @see \ref LPairAnalysisInterfaces "The interfaces"
0028  * defined for LPairAnalysis.
0029  */
0030 class LPairAnalysis: public AnalysisHandler {
0031 
0032 public:
0033 
0034   /**
0035    * The default constructor.
0036    */
0037   LPairAnalysis();
0038 
0039   /** @name Virtual functions required by the AnalysisHandler class. */
0040   //@{
0041   /**
0042    * Analyze a given Event. Note that a fully generated event
0043    * may be presented several times, if it has been manipulated in
0044    * between. The default version of this function will call transform
0045    * to make a lorentz transformation of the whole event, then extract
0046    * all final state particles and call analyze(tPVector) of this
0047    * analysis object and those of all associated analysis objects. The
0048    * default version will not, however, do anything on events which
0049    * have not been fully generated, or have been manipulated in any
0050    * way.
0051    * @param event pointer to the Event to be analyzed.
0052    * @param ieve the event number.
0053    * @param loop the number of times this event has been presented.
0054    * If negative the event is now fully generated.
0055    * @param state a number different from zero if the event has been
0056    * manipulated in some way since it was last presented.
0057    */
0058   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
0059   //@}
0060 
0061 public:
0062 
0063   /**
0064    * The standard Init function used to initialize the interfaces.
0065    * Called exactly once for each class by the class description system
0066    * before the main function starts or
0067    * when this class is dynamically loaded.
0068    */
0069   static void Init();
0070 
0071 protected:
0072 
0073   /** @name Clone Methods. */
0074   //@{
0075   /**
0076    * Make a simple clone of this object.
0077    * @return a pointer to the new object.
0078    */
0079   virtual IBPtr clone() const {return new_ptr(*this);}
0080 
0081   /** Make a clone of this object, possibly modifying the cloned object
0082    * to make it sane.
0083    * @return a pointer to the new object.
0084    */
0085   virtual IBPtr fullclone() const {return new_ptr(*this);}
0086   //@}
0087 
0088 protected:
0089 
0090   /** @name Standard Interfaced functions. */
0091   //@{
0092   /**
0093    * Finalize this object. Called in the run phase just after a
0094    * run has ended. Used eg. to write out statistics.
0095    */
0096   virtual void dofinish();
0097 
0098 private:
0099 
0100   /**
0101    * The assignment operator is private and must never be called.
0102    * In fact, it should not even be implemented.
0103    */
0104   LPairAnalysis & operator=(const LPairAnalysis &) = delete;
0105 
0106 private:
0107   /**
0108    *   \f$p_T\f$ of the leptons
0109    */
0110   Histogram _ptp;
0111   Histogram _ptm;
0112   Histogram _ptpair;
0113 
0114   /**
0115    *   \f$E_T\f$ of the leptons
0116    */
0117   Histogram _etp;
0118   Histogram _etm;
0119   Histogram _etpair;
0120 
0121   /**
0122    *   Energy of the leptons
0123    */
0124   Histogram _ep;
0125   Histogram _em;
0126   Histogram _epair;
0127 
0128   /**
0129    *  Rapidity of the leptons
0130    */
0131   Histogram _rapp;
0132   Histogram _rapm;
0133   Histogram _rappair;
0134 
0135   /**
0136    *  Azimuth of the leptons
0137    */
0138   Histogram _phip;
0139   Histogram _phim;
0140   Histogram _deltaphi;
0141   
0142   /**
0143    *  Invariant mass of the pair
0144    */
0145   Histogram _mpair;
0146 
0147   /**
0148    *  scalar sums of Et, pt
0149    */
0150   Histogram _etsum;
0151   Histogram _ptsum;
0152 };
0153 
0154 }
0155 
0156 #endif /* HERWIG_LPairAnalysis_H */