Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:59

0001 // $Id: $
0002 
0003 /*!
0004  * \file PHGenIntegralv1.h
0005  * \brief 
0006  * \author Jin Huang <jhuang@bnl.gov>
0007  * \version $Revision:   $
0008  * \date $Date: $
0009  */
0010 
0011 #ifndef PHHEPMC_PHGENINTEGRALV1_H
0012 #define PHHEPMC_PHGENINTEGRALV1_H
0013 
0014 #include "PHGenIntegral.h"
0015 
0016 #include <iostream>         // for cout, ostream
0017 #include <string>           // for string
0018 
0019 class PHObject;
0020 
0021 /*!
0022  * \brief PHGenIntegralv1
0023  */
0024 class PHGenIntegralv1 : public PHGenIntegral
0025 {
0026  public:
0027   PHGenIntegralv1();
0028   explicit PHGenIntegralv1(const std::string& description);
0029   ~PHGenIntegralv1() override{}
0030 
0031   PHObject* CloneMe() const override {return new PHGenIntegralv1(*this);}
0032   int isValid() const override { return 1; }
0033   void identify(std::ostream& os = std::cout) const override;
0034   void Reset() override;
0035 
0036   int Integrate() const override { return 1; }
0037   /// For integral objects, e.g. integrated luminosity counter, integrate with another object from another run
0038   int Integrate(PHObject*) override;
0039   void CopyFrom(const PHObject* obj) override;
0040 
0041   //! Integrated luminosity in pb^-1
0042   Double_t get_Integrated_Lumi() const override
0043   {
0044     return m_IntegratedLumi;
0045   }
0046 
0047   //! Integrated luminosity in pb^-1
0048   void set_Integrated_Lumi(Double_t integratedLumi) override
0049   {
0050     m_IntegratedLumi = integratedLumi;
0051   }
0052 
0053   //! Number of accepted events in the event generator. This can be higher than m_NProcessedEvent depending on trigger on the event generator
0054   ULong64_t get_N_Generator_Accepted_Event() const override
0055   {
0056     return m_NGeneratorAcceptedEvent;
0057   }
0058 
0059   //! Number of accepted events in the event generator. This can be higher than m_NProcessedEvent depending on trigger on the event generator
0060   void set_N_Generator_Accepted_Event(ULong64_t nGeneratorAcceptedEvent) override
0061   {
0062     m_NGeneratorAcceptedEvent = nGeneratorAcceptedEvent;
0063   }
0064 
0065   //! Number of processed events in the Fun4All cycles
0066   ULong64_t get_N_Processed_Event() const override
0067   {
0068     return m_NProcessedEvent;
0069   }
0070 
0071   //! Number of processed events in the Fun4All cycles
0072   void set_N_Processed_Event(ULong64_t nProcessedEvent) override
0073   {
0074     m_NProcessedEvent = nProcessedEvent;
0075   }
0076 
0077   //! Sum of weight assigned to the events by the generators.
0078   //! Event weight is normally 1 and thus equal to number of the generated event and is uninteresting.
0079   //! However, there are several cases where one may have nontrivial event weights, e.g. using user hooks in Pythia8 generators to reweight the phase space
0080   Double_t get_Sum_Of_Weight() const override
0081   {
0082     return m_SumOfWeight;
0083   }
0084 
0085   //! Sum of weight assigned to the events by the generators.
0086   //! Event weight is normally 1 and thus equal to number of the generated event and is uninteresting.
0087   //! However, there are several cases where one may have nontrivial event weights, e.g. using user hooks in Pythia8 generators to reweight the phase space
0088   void set_Sum_Of_Weight(Double_t sumOfWeight) override
0089   {
0090     m_SumOfWeight = sumOfWeight;
0091   }
0092 
0093   //! description on the source
0094   const std::string& get_Description() const override
0095   {
0096     return m_Description;
0097   }
0098 
0099   //! description on the source
0100   void set_Description(const std::string& description) override
0101   {
0102     m_Description = description;
0103   }
0104 
0105  private:
0106   //! Number of processed events in the Fun4All cycles
0107   ULong64_t m_NProcessedEvent;
0108 
0109   //! Number of accepted events in the event generator. This can be higher than m_NProcessedEvent depending on trigger on the event generator
0110   ULong64_t m_NGeneratorAcceptedEvent;
0111 
0112   //! Integrated luminosity in pb^-1
0113   Double_t m_IntegratedLumi;
0114 
0115   //! Sum of weight assigned to the events by the generators.
0116   //! Event weight is normally 1 and thus equal to number of the generated event and is uninteresting.
0117   //! However, there are several cases where one may have nontrivial event weights, e.g. using user hooks in Pythia8 generators to reweight the phase space
0118   Double_t m_SumOfWeight;
0119 
0120   //! description on the source
0121   std::string m_Description;
0122 
0123   ClassDefOverride(PHGenIntegralv1, 1)
0124 };
0125 
0126 #endif /* PHHEPMC_PHGENINTEGRALV1_H */