Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef ThePEG_FixedTargetLuminosity_H
0003 #define ThePEG_FixedTargetLuminosity_H
0004 //
0005 // This is the declaration of the FixedTargetLuminosity class.
0006 //
0007 
0008 #include "LuminosityFunction.h"
0009 
0010 namespace ThePEG {
0011 
0012 /**
0013  * Here is the documentation of the FixedTargetLuminosity class.
0014  *
0015  * @see \ref FixedTargetLuminosityInterfaces "The interfaces"
0016  * defined for FixedTargetLuminosity.
0017  */
0018 class FixedTargetLuminosity: public LuminosityFunction {
0019 
0020 public:
0021 
0022   /** @name Standard constructors and destructors. */
0023   //@{
0024   /**
0025    * The default constructor.
0026    */
0027   FixedTargetLuminosity();
0028 
0029   /**
0030    * The destructor.
0031    */
0032   virtual ~FixedTargetLuminosity();
0033   //@}
0034   
0035   /** @name Virtual functions to be overridden by sub-classes. */
0036   //@{
0037   /**
0038    * Return true if this luminosity function can actually handle a
0039    * given pair of incoming particles.
0040    */
0041   virtual bool canHandle(const cPDPair &) const;
0042 
0043   /**
0044    * Return the maximum possible center of mass energy for an event.
0045    */
0046   virtual Energy maximumCMEnergy() const;
0047 
0048   /**
0049    * Return the rotation needed to transform from the collision cm
0050    * system to the labotatory system. This default version returns the
0051    * unit transformation.
0052    */
0053   virtual LorentzRotation getBoost() const;
0054 
0055   /**
0056    * Return the rapidity of the colliding particles (at the maximum
0057    * energy) in the laboratory system. This default version assumes
0058    * the CM system is the same as the lab system and returns zero.
0059    */
0060   virtual double Y() const;
0061   //@}
0062   
0063 public:
0064 
0065   /** @name Functions used by the persistent I/O system. */
0066   //@{
0067   /**
0068    * Function used to write out object persistently.
0069    * @param os the persistent output stream written to.
0070    */
0071   void persistentOutput(PersistentOStream & os) const;
0072 
0073   /**
0074    * Function used to read in object persistently.
0075    * @param is the persistent input stream read from.
0076    * @param version the version number of the object when written.
0077    */
0078   void persistentInput(PersistentIStream & is, int version);
0079   //@}
0080 
0081   /**
0082    * The standard Init function used to initialize the interfaces.
0083    * Called exactly once for each class by the class description system
0084    * before the main function starts or
0085    * when this class is dynamically loaded.
0086    */
0087   static void Init();
0088 
0089 protected:
0090 
0091   /** @name Clone Methods. */
0092   //@{
0093   /**
0094    * Make a simple clone of this object.
0095    * @return a pointer to the new object.
0096    */
0097   virtual IBPtr clone() const;
0098 
0099   /** Make a clone of this object, possibly modifying the cloned object
0100    * to make it sane.
0101    * @return a pointer to the new object.
0102    */
0103   virtual IBPtr fullclone() const;
0104   //@}
0105 protected:
0106 
0107   /** @name Standard Interfaced functions. */
0108   //@{
0109   /**
0110    * Initialize this object after the setup phase before saving an
0111    * EventGenerator to disk.
0112    * @throws InitException if object could not be initialized properly.
0113    */
0114   virtual void doinit();
0115   //@}
0116   
0117 private:
0118 
0119   /**
0120    * The assignment operator is private and must never be called.
0121    * In fact, it should not even be implemented.
0122    */
0123   FixedTargetLuminosity & operator=(const FixedTargetLuminosity &) = delete;
0124 
0125 private:
0126 
0127   /**
0128    *    The beam particle
0129    */
0130   PDPtr beam_;
0131 
0132   /**
0133    *    The target particle
0134    */
0135   PDPtr target_;
0136 
0137   /**
0138    *  CMS energy
0139    */
0140   Energy ecms_;
0141 
0142   /**
0143    *  Boost
0144    */
0145   double beta_;
0146   
0147   
0148 };
0149 
0150 }
0151 
0152 #endif /* ThePEG_FixedTargetLuminosity_H */