Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-07-01 07:05:42

0001 /**
0002  \file
0003  Declaration of class erhic::EventPepsi.
0004  
0005  \author    Thomas Burton
0006  \date      2011-07-07
0007  \copyright 2011 Brookhaven National Lab
0008  */
0009 
0010 #ifndef INCLUDE_EICSMEAR_ERHIC_EVENTPEPSI_H_
0011 #define INCLUDE_EICSMEAR_ERHIC_EVENTPEPSI_H_
0012 
0013 #include <string>
0014 
0015 #include <Rtypes.h>
0016 
0017 #include "eicsmear/erhic/EventMC.h"
0018 
0019 namespace erhic {
0020 
0021 /**
0022  Describes an event from the generator PEPSI.
0023 
0024  \todo Add accessor and setter methods
0025  */
0026 class EventPepsi : public EventMC {
0027  public:
0028   /**
0029    Parses the event information from a text string with the following format
0030    (no newlines):
0031    \verbatime
0032    "I ievent genevent process subprocess nucleon struckparton,
0033    partontrck trueY trueQ2 trueX trueW2 trueNu FixedWeight,
0034    weight dxsec Extraweight dilut F1 F2 A1 A2 R Depol d,
0035    eta eps chi gendilut genF1 genF2 genA1 genA2 genR genDepol,
0036    gend geneta geneps genchi Sigcor radgamEnucl nrTracks"
0037    \endverbatim
0038    Returns true in the event of a successful read operation,
0039    false in case of an error.
0040    */
0041   virtual bool Parse(const std::string&);
0042 
0043   /**
0044    Returns a pointer to the exchange boson, or NULL if it cannot be found.
0045    */
0046   virtual const ParticleMC* ExchangeBoson() const;
0047 
0048   /**
0049    Returns a pointer to the scattered lepton, or NULL if it cannot be found.
0050    */
0051   virtual const ParticleMC* ScatteredLepton() const;
0052 
0053   Int_t nucleon;  ///< PDG code of the hadron beam
0054   Int_t struckparton;  ///< Parton hit in the target LST(25)
0055   Int_t partontrck;  ///< Number of parton track LST(26)
0056   Int_t genevent;  ///< Trials required for this event
0057   Int_t subprocess;  ///< PEPSI subprocess LST(23)
0058   Double32_t trueY;  ///< Generated y of the event
0059   Double32_t trueQ2;  ///< Generated Q<sup>2</sup> of the event
0060   Double32_t trueX;  ///< Generated x of the event
0061   Double32_t trueW2;  ///< Generated W<sup>2</sup> of the event
0062   Double32_t trueNu;  ///< Generated nu of the event
0063   Double32_t FixedWeight;  ///< Weight calculated from generation limits
0064   Double32_t Weight;  ///< Total weight including everything
0065   Double32_t dxsec;  ///< Cross section included in the weight
0066   Double32_t ExtraWeight;  ///< PEPSI total cross section in pb from
0067                            ///< numerical integration PARL(23)
0068   Double32_t Dilute;  ///< True variables needed to calculate g<sub>1</sub>
0069   Double32_t F1;  ///< True variables needed to calculate g<sub>1</sub>
0070   Double32_t F2;  ///< True variables needed to calculate g<sub>1</sub>
0071   Double32_t A1;  ///< True variables needed to calculate g<sub>1</sub>
0072   Double32_t A2;  ///< True variables needed to calculate g<sub>1</sub>
0073   Double32_t R;  ///< True variables needed to calculate g<sub>1</sub>
0074   Double32_t DePol;  ///< True variables needed to calculate g<sub>1</sub>
0075   Double32_t D;  ///< True variables needed to calculate g<sub>1</sub>
0076   Double32_t Eta;  ///< True variables needed to calculate g<sub>1</sub>
0077   Double32_t Eps;  ///< True variables needed to calculate g<sub>1</sub>
0078   Double32_t Chi;  ///< True variables needed to calculate g<sub>1</sub>
0079   Double32_t gendilut;  ///< Needed to calculate g1
0080   Double32_t genF1;  ///< Needed to calculate g1
0081   Double32_t genF2;  ///< Needed to calculate g1
0082   Double32_t genA1;  ///< Needed to calculate g1
0083   Double32_t genA2;  ///< Needed to calculate g1
0084   Double32_t genR;  ///< Needed to calculate g1
0085   Double32_t genDepol;  ///< Needed to calculate g1
0086   Double32_t gend;  ///< Needed to calculate g1
0087   Double32_t geneta;  ///< Needed to calculate g1
0088   Double32_t geneps;  ///< Needed to calculate g1
0089   Double32_t genchi;  ///< Needed to calculate g1
0090   Double32_t SigCorr;  ///< Needed in the radiative correction code
0091   Double32_t radgamEnucl;
0092 
0093   ClassDef(erhic::EventPepsi, 1)
0094 };
0095 
0096 // DJANGOH gives particle output according to the LEPTO convention, whereby
0097 // the exchange boson comes before the scattered lepton. This is different
0098 // to the PYTHIA convention (lepton then boson), which is the default from
0099 // EventMC.
0100 inline const ParticleMC* EventPepsi::ExchangeBoson() const {
0101   return GetTrack(2);
0102 }
0103 
0104 inline const ParticleMC* EventPepsi::ScatteredLepton() const {
0105   return GetTrack(3);
0106 }
0107 
0108 }  // namespace erhic
0109 
0110 #endif  // INCLUDE_EICSMEAR_ERHIC_EVENTPEPSI_H_