ATLAS Offline Software
Photospp_i.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GENERATOR_PHOTOSPP_H
6 #define GENERATOR_PHOTOSPP_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 
12 #include "CLHEP/Random/RandomEngine.h"
13 
14 extern "C" double phoranc_(int *idum);
15 
16 class Photospp_i : public AthAlgorithm{
17 
18 public:
19 
21  Photospp_i(const std::string &name, ISvcLocator *pSvcLocator);
22 
25 
29 
33  void setupPhotos();
34 
37  friend double ::phoranc_(int *idum);
38 
39  static CLHEP::HepRandomEngine* p_rndmEngine;
40 
41 private:
42 
44 
45  void reseedRandomEngine(const std::string& streamName, const EventContext& ctx);
46  CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName, unsigned long int randomSeedOffset, const EventContext& ctx) const;
47  CLHEP::HepRandomEngine* getRandomEngineDuringInitialize(const std::string& streamName, unsigned long int randomSeedOffset, unsigned int conditionsRun=1, unsigned int lbn=1) const;
49 
50  // Random number service
51  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};
52 
53  //Gen_tf run args.
54  IntegerProperty m_dsid{this, "Dsid", 999999};
55 
57  IntegerProperty m_randomSeed{this, "RandomSeed", 1234567, "Random seed for the built-in random engine"}; // FIXME make this into an unsigned long int?
58 
60  StringProperty m_genEventKey{this, "MCEventKey", "GEN_EVENT"};
61 
63  BooleanProperty m_exponentiation{this, "ExponentiationMode", true};
64 
66  BooleanProperty m_createHistory{this, "CreateHistory", false};
67 
69  BooleanProperty m_stopCritical{this, "StopCriticalErrors", false};
70 
72  BooleanProperty m_delayInitialisation{this, "DelayInitialisation", false};
73 
75  BooleanProperty m_ZMECorrection{this, "ZMECorrection", false};
76 
78  BooleanProperty m_WMECorrection{this, "WMECorrection", false};
79 
81  BooleanProperty m_photonSplitting{this, "PhotonSplitting", false};
82 
84  DoubleProperty m_infraRedCutOff{this, "InfraRedCutOff", -1./*, 1.e-07, 0.01/91.187*/};
86  DoubleProperty m_maxWtInterference{this, "WtInterference", 3.};
87 
89  DoubleProperty m_alphaQED{this, "AlphaQED", 0.00729735039};
90 
91 };
92 #endif
Photospp_i::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, unsigned long int randomSeedOffset, const EventContext &ctx) const
Definition: Photospp_i.cxx:104
Photospp_i::m_photonSplitting
BooleanProperty m_photonSplitting
Whether to include photon splitting.
Definition: Photospp_i.h:81
Photospp_i::getRandomEngineDuringInitialize
CLHEP::HepRandomEngine * getRandomEngineDuringInitialize(const std::string &streamName, unsigned long int randomSeedOffset, unsigned int conditionsRun=1, unsigned int lbn=1) const
Definition: Photospp_i.cxx:113
Photospp_i::m_exponentiation
BooleanProperty m_exponentiation
Whether to use exponentiation mode (default = yes)
Definition: Photospp_i.h:63
Photospp_i
Definition: Photospp_i.h:16
Photospp_i::m_WMECorrection
BooleanProperty m_WMECorrection
Whether to apply ME correction to W decays (default = no, until validated)
Definition: Photospp_i.h:78
Photospp_i::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: Photospp_i.h:51
phoranc_
double phoranc_(int *idum)
Definition: Photospp_i.cxx:33
Photospp_i::m_infraRedCutOff
DoubleProperty m_infraRedCutOff
Definition: Photospp_i.h:84
Photospp_i::m_createHistory
BooleanProperty m_createHistory
Whether to create history entries (default = yes)
Definition: Photospp_i.h:66
AthAlgorithm.h
Photospp_i::Photospp_i
Photospp_i(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena algorithm constructor.
Definition: Photospp_i.cxx:39
Photospp_i::m_dsid
IntegerProperty m_dsid
Definition: Photospp_i.h:54
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgorithm
Definition: AthAlgorithm.h:47
Photospp_i::initialize
StatusCode initialize()
Initialise the Photospp_i algorithm and required services.
Definition: Photospp_i.cxx:44
Photospp_i::reseedRandomEngine
void reseedRandomEngine(const std::string &streamName, const EventContext &ctx)
Definition: Photospp_i.cxx:96
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Photospp_i::setupPhotos
void setupPhotos()
Set up the Photos class This may be called in the initialize method or directly before the generation...
Definition: Photospp_i.cxx:55
Photospp_i::m_randomSeed
IntegerProperty m_randomSeed
Seed for random number engine.
Definition: Photospp_i.h:57
Photospp_i::m_ZMECorrection
BooleanProperty m_ZMECorrection
Whether to apply ME correction to Z decays (default = no, until validated)
Definition: Photospp_i.h:75
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
Photospp_i::p_rndmEngine
static CLHEP::HepRandomEngine * p_rndmEngine
Definition: Photospp_i.h:39
Photospp_i::m_genEventKey
StringProperty m_genEventKey
The GenEvent StoreGate key - FIXME should be using Read/WriteHandles here.
Definition: Photospp_i.h:60
Photospp_i::m_alphaQED
DoubleProperty m_alphaQED
Value of alpha_QED.
Definition: Photospp_i.h:89
Photospp_i::execute
StatusCode execute()
Run Photos on one event Will require a pre-existing HepMC event in Storegate.
Definition: Photospp_i.cxx:130
Photospp_i::m_delayInitialisation
BooleanProperty m_delayInitialisation
Delay initialisation until just before first event execution (default = no)
Definition: Photospp_i.h:72
Photospp_i::m_stopCritical
BooleanProperty m_stopCritical
Whether to stop on critical error (default = no)
Definition: Photospp_i.h:69
Photospp_i::m_maxWtInterference
DoubleProperty m_maxWtInterference
Definition: Photospp_i.h:86
LB_AnalMapSplitter.lbn
lbn
Definition: LB_AnalMapSplitter.py:28
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >