Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:20

0001 // -*- C++ -*-
0002 //
0003 // JetPairRegion.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 // Copyright (C) 2009-2019 Simon Platzer
0006 //
0007 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
0008 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0009 //
0010 #ifndef ThePEG_JetPairRegion_H
0011 #define ThePEG_JetPairRegion_H
0012 //
0013 // This is the declaration of the JetPairRegion class.
0014 //
0015 
0016 #include "ThePEG/Cuts/JetRegion.h"
0017 
0018 namespace ThePEG {
0019 
0020 /**
0021  * JetPairRegion implements constraints on jets matching two jet regions.
0022  *
0023  * @see JetRegion
0024  * @see JetCuts
0025  *
0026  * @see \ref JetPairRegionInterfaces "The interfaces"
0027  * defined for JetPairRegion.
0028  */
0029 class JetPairRegion: public HandlerBase {
0030 
0031 public:
0032 
0033   /**
0034    * The default constructor.
0035    */
0036   JetPairRegion();
0037 
0038 public:
0039 
0040   /**
0041    * Return the first jet region to act on.
0042    */
0043   Ptr<JetRegion>::tptr firstRegion() const { return theFirstRegion; }
0044 
0045   /**
0046    * Return the second jet region to act on.
0047    */
0048   Ptr<JetRegion>::tptr secondRegion() const { return theSecondRegion; }
0049 
0050   /**
0051    * Return the minimum jet-jet invariant mass.
0052    */
0053   Energy massMin() const { return theMassMin; }
0054 
0055   /**
0056    * Return the maximum jet-jet invariant mass.
0057    */
0058   Energy massMax() const { return theMassMax; }
0059 
0060   /**
0061    * Return the minimum jet-jet lego-plot separation.
0062    */
0063   double deltaRMin() const { return theDeltaRMin; }
0064 
0065   /**
0066    * Return the maximum jet-jet lego-plot separation.
0067    */
0068   double deltaRMax() const { return theDeltaRMax; }
0069 
0070   /**
0071    * Return the minimum jet-jet rapidity separation.
0072    */
0073   double deltaYMin() const { return theDeltaYMin; }
0074 
0075   /**
0076    * Return the maximum jet-jet rapidity separation.
0077    */
0078   double deltaYMax() const { return theDeltaYMax; }
0079 
0080   /**
0081    * Return the cut weight encountered from the last call to matches()
0082    */
0083   double cutWeight() const { return theCutWeight; }
0084 
0085 public:
0086 
0087   /**
0088    * Describe the currently active cuts in the log file.
0089    */
0090   virtual void describe() const;
0091 
0092   /**
0093    * Return true, if the requirements on the jet regions are fullfilled.
0094    */
0095   virtual bool matches(tcCutsPtr parent);
0096 
0097 public:
0098 
0099   /** @name Functions used by the persistent I/O system. */
0100   //@{
0101   /**
0102    * Function used to write out object persistently.
0103    * @param os the persistent output stream written to.
0104    */
0105   void persistentOutput(PersistentOStream & os) const;
0106 
0107   /**
0108    * Function used to read in object persistently.
0109    * @param is the persistent input stream read from.
0110    * @param version the version number of the object when written.
0111    */
0112   void persistentInput(PersistentIStream & is, int version);
0113   //@}
0114 
0115   /**
0116    * The standard Init function used to initialize the interfaces.
0117    * Called exactly once for each class by the class description system
0118    * before the main function starts or
0119    * when this class is dynamically loaded.
0120    */
0121   static void Init();
0122 
0123 protected:
0124 
0125   /** @name Clone Methods. */
0126   //@{
0127   /**
0128    * Make a simple clone of this object.
0129    * @return a pointer to the new object.
0130    */
0131   virtual IBPtr clone() const;
0132 
0133   /** Make a clone of this object, possibly modifying the cloned object
0134    * to make it sane.
0135    * @return a pointer to the new object.
0136    */
0137   virtual IBPtr fullclone() const;
0138   //@}
0139 
0140 
0141 // If needed, insert declarations of virtual function defined in the
0142 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
0143 
0144 
0145 private:
0146 
0147   /**
0148    * The first jet region to act on.
0149    */
0150   Ptr<JetRegion>::ptr theFirstRegion;
0151 
0152   /**
0153    * The second jet region to act on.
0154    */
0155   Ptr<JetRegion>::ptr theSecondRegion;
0156 
0157   /**
0158    * The minimum jet-jet invariant mass.
0159    */
0160   Energy theMassMin;
0161 
0162   /**
0163    * The maximum jet-jet invariant mass.
0164    */
0165   Energy theMassMax;
0166 
0167   /**
0168    * The minimum jet-jet lego-plot separation.
0169    */
0170   double theDeltaRMin;
0171 
0172   /**
0173    * The maximum jet-jet lego-plot separation.
0174    */
0175   double theDeltaRMax;
0176 
0177   /**
0178    * The minimum jet-jet rapidity separation.
0179    */
0180   double theDeltaYMin;
0181 
0182   /**
0183    * The maximum jet-jet rapidity separation.
0184    */
0185   double theDeltaYMax;
0186 
0187   /**
0188    * Should the jets go into opposite detector hemispheres?
0189    */
0190   bool theOppositeHemispheres;
0191 
0192   /**
0193    * The cut weight encountered from the last call to matches()
0194    */
0195   double theCutWeight;
0196 
0197   /**
0198    * The assignment operator is private and must never be called.
0199    * In fact, it should not even be implemented.
0200    */
0201   JetPairRegion & operator=(const JetPairRegion &) = delete;
0202 
0203 };
0204 
0205 }
0206 
0207 #endif /* ThePEG_JetPairRegion_H */