ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Starlight_i Class Reference

#include <Starlight_i.h>

Inheritance diagram for Starlight_i:
Collaboration diagram for Starlight_i:

Public Member Functions

 Starlight_i (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~Starlight_i ()
 
virtual StatusCode genInitialize ()
 For initializing the generator, if required. More...
 
virtual StatusCode callGenerator ()
 For calling the generator on each iteration of the event loop. More...
 
virtual StatusCode genFinalize ()
 For finalising the generator, if required. More...
 
virtual StatusCode fillEvt (HepMC::GenEvent *evt)
 For filling the HepMC event object. More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

bool starlight2lhef ()
 
bool set_user_params ()
 
bool prepare_params_file ()
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

IntegerProperty m_dsid {this, "Dsid", 999999, "Dataset ID number"}
 
StringProperty m_configFileName {this, "ConfigFileName", ""}
 
BooleanProperty m_lheOutput {this, "lheOutput", false}
 
UnsignedIntegerProperty m_maxevents {this, "maxevents", 5500}
 
BooleanProperty m_doTauolappLheFormat {this, "doTauolappLheFormat", false}
 
BooleanProperty m_suppressVMdecay {this, "suppressVMdecay", false}
 
StringArrayProperty m_InitializeVector {this, "Initialize", {} }
 
int m_events {0}
 
starlight * m_starlight {}
 
std::shared_ptr< randomGenerator > m_randomGenerator {}
 
inputParameters m_inputParameters
 
double m_axionMass {1.}
 
upcEvent * m_event {}
 
unsigned int m_beam1Z {0}
 
unsigned int m_beam1A {0}
 
unsigned int m_beam2Z {0}
 
unsigned int m_beam2A {0}
 
double m_beam1Gamma {0.}
 
double m_beam2Gamma {0.}
 
double m_maxW {0.}
 
double m_minW {0.}
 
unsigned int m_nmbWBins {0}
 
double m_maxRapidity {0.}
 
unsigned int m_nmbRapidityBins {0}
 
bool m_accCutPt {false}
 
double m_minPt {0.}
 
double m_maxPt {0.}
 
bool m_accCutEta {false}
 
double m_minEta {0.}
 
double m_maxEta {0.}
 
int m_productionMode {0}
 
unsigned int m_nmbEventsTot {0}
 
int m_prodParticleId {0}
 
int m_randomSeed {0}
 
int m_outputFormat
 
int m_beamBreakupMode {0}
 
bool m_interferenceEnabled {false}
 
double m_interferenceStrength {0.}
 
bool m_coherentProduction {false}
 
double m_incoherentFactor {0.}
 
double m_bford
 
double m_maxPtInterference {0.}
 
int m_nmbPtBinsInterference {0}
 
double m_ptBinWidthInterference {0.}
 
bool m_xsecMethod {false}
 
int m_nThreads {1}
 
bool m_pythFullRec {false}
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Utility event-mangling functions

Todo:
Replace with HepMC units when available
void GeVToMeV (HepMC::GenEvent *evt)
 Scale event energies/momenta by x 1000. More...
 
void MeVToGeV (HepMC::GenEvent *evt)
 Scale event energies/momenta by x 1/1000. More...
 
void cmTomm (HepMC::GenEvent *evt)
 Scale event lengths by x 10. More...
 
void mmTocm (HepMC::GenEvent *evt)
 Scale event lengths by x 1/10. More...
 
ServiceHandle< IPartPropSvc > m_ppSvc {this, "PartPropSvc", "PartPropSvc"}
 Handle on the particle property service. More...
 
SG::ReadHandleKey< McEventCollectionm_mcevents_const { this, "McEventKey", "GEN_EVENT", "StoreGate key of the MC event collection" }
 Const handle to the MC event collection. More...
 

Features for derived classes to use internally

BooleanProperty m_isAfterburner {this, "IsAfterburner", false, "Set true if generator modifies existing events rather than creating new ones"}
 Flag for normal vs. afterburner generators. More...
 
CLHEP::HepRandomEngine * getRandomEngine (const std::string &streamName, const EventContext &ctx) const
 
CLHEP::HepRandomEngine * getRandomEngine (const std::string &streamName, unsigned long int randomSeedOffset, const EventContext &ctx) const
 
CLHEP::HepRandomEngine * getRandomEngineDuringInitialize (const std::string &streamName, unsigned long int randomSeedOffset, unsigned int conditionsRun=1, unsigned int lbn=1) const
 
ServiceHandle< IAthRNGSvcm_rndmSvc {this, "RndmSvc", "AthRNGSvc"}
 Data members. More...
 
ServiceHandle< IIncidentSvc > m_incidentSvc {this, "IncidentSvc", "IncidentSvc"}
 Handle on the incident service. More...
 

Detailed Description

Definition at line 30 of file Starlight_i.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ Starlight_i()

Starlight_i::Starlight_i ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 42 of file Starlight_i.cxx.

42  :
43  GenModule(name,pSvcLocator)
44 {
45 }

◆ ~Starlight_i()

Starlight_i::~Starlight_i ( )
virtual

Definition at line 47 of file Starlight_i.cxx.

47  {
48  if (m_starlight) delete m_starlight;
49  if (m_event) delete m_event;
50 }

Member Function Documentation

◆ ATLAS_NOT_CONST_THREAD_SAFE() [1/2]

HepMC::GenEvent* event GenBase::ATLAS_NOT_CONST_THREAD_SAFE ( )
inlineinherited

Access the current signal event (first in the McEventCollection)

Note
This function will make a new McEventCollection if there is not already a valid one and MakeMcEvent=True.

Definition at line 76 of file GenBase.h.

76  {
77  if (events()->empty())
78  ATH_MSG_ERROR("McEventCollection is empty during first event access");
79  return *(events()->begin());
80  }

◆ ATLAS_NOT_CONST_THREAD_SAFE() [2/2]

McEventCollection* events GenBase::ATLAS_NOT_CONST_THREAD_SAFE ( )
inherited

Access the current event's McEventCollection.

Note
This function will make a new McEventCollection if there is not already a valid one and MakeMcEvent=True.

◆ callGenerator()

StatusCode Starlight_i::callGenerator ( )
virtual

For calling the generator on each iteration of the event loop.

Reimplemented from GenModule.

Definition at line 90 of file Starlight_i.cxx.

91 {
92  if(m_lheOutput) return StatusCode::SUCCESS;
93  ATH_MSG_DEBUG( " STARLIGHT generating. \n" );
94 
95  //Re-seed the random number stream
96  long seeds[7];
97  const EventContext& ctx = Gaudi::Hive::currentContext();
98  ATHRNG::calculateSeedsMC21(seeds, starlight_stream, ctx.eventID().event_number(),
100  m_randomGenerator->SetSeed(seeds[0]);
101 
102  // Generate event
103  m_event = new upcEvent;
104  (*m_event) = m_starlight->produceEvent();
105 
106  // update event counter
107  ++m_events;
108 
109  int numberofTracks = m_event->getParticles()->size();
110  int numberOfVertices = 1; //m_event->getVertices()->size();
111 
112  ATH_MSG_DEBUG( "EVENT: " << m_events << " "
113  << " with " << numberOfVertices << " vertices "
114  << " and " << numberofTracks << " tracks" );
115  ATH_MSG_DEBUG( "VERTEX: "<< 0. << " " << 0. << " " << 0.
116  << " with " << numberofTracks << " tracks" );
117 
118  int ipart = 0;
119  std::vector<starlightParticle>::const_iterator part =
120  (m_event->getParticles())->begin();
121  for (part = m_event->getParticles()->begin();
122  part != m_event->getParticles()->end(); ++part, ++ipart) {
123  ATH_MSG_DEBUG( "TRACK: " << " "
124  << starlightParticleCodes::jetsetToGeant((*part).getCharge() * (*part).getPdgCode()) << " "
125  << (*part).GetPx() << " " << (*part).GetPy() << " "<< (*part).GetPz()
126  << " " << m_events << " " << ipart << " " << 0 << " "
127  << (*part).getCharge() * (*part).getPdgCode() );
128  }
129 
130  ATH_MSG_DEBUG( " Starlight generating done. \n" );
131 
132  return StatusCode::SUCCESS;
133 }

◆ cmTomm()

void GenBase::cmTomm ( HepMC::GenEvent *  evt)
protectedinherited

Scale event lengths by x 10.

Definition at line 81 of file GenBase.cxx.

81  {
82  for (HepMC::GenEvent::vertex_iterator vtx = evt->vertices_begin(); vtx != evt->vertices_end(); ++vtx) {
83  const HepMC::FourVector fv((*vtx)->position().x() * 10,
84  (*vtx)->position().y() * 10,
85  (*vtx)->position().z() * 10,
86  (*vtx)->position().t() * 10);
87  (*vtx)->set_position(fv);
88  }
89 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ event_const()

const HepMC::GenEvent* GenBase::event_const ( ) const
inlineinherited

Access the current signal event (const)

Definition at line 83 of file GenBase.h.

83  {
84  if (events_const()->empty())
85  ATH_MSG_ERROR("Const McEventCollection is empty during first event access");
86  return *(events_const()->begin());
87  }

◆ events_const() [1/2]

const McEventCollection* GenBase::events_const ( ) const
inlineinherited

Access the current event's McEventCollection (const)

Definition at line 96 of file GenBase.h.

96  {
97  return events_const( getContext() );
98  }

◆ events_const() [2/2]

const McEventCollection* GenBase::events_const ( const EventContext &  ctx) const
inlineinherited

Definition at line 99 of file GenBase.h.

99  {
101  if (!ret.isValid())
102  ATH_MSG_ERROR("No McEventCollection found in StoreGate with key " << m_mcevents_const.key());
103  return ret.cptr();
104  }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode GenModule::execute ( )
virtualinherited
Todo:
Remove hard-coded alg name checking (already incomplete)

Reimplemented from GenBase.

Definition at line 70 of file GenModule.cxx.

70  {
71  // Examples of how to retrieve the random number engine for a given
72  // stream.
73  // NB getRandomEngine should only be called once per event for a
74  // given stream, as it causes the stream to be re-seeded each time
75  // it is called.
76 
77  // Example 1 - seeded based on the current event number (+ slot, run, streamName)
78  //const EventContext& ctx = Gaudi::Hive::currentContext();
79  //CLHEP::HepRandomEngine* rndmEngine = this->getRandomEngine("MyStream", ctx);
80 
81  // Example 2 - seeded based on the m_randomSeed property (+ slot, run, streamName)
82  //const EventContext& ctx = Gaudi::Hive::currentContext();
83  //CLHEP::HepRandomEngine* rndmEngine = this->getRandomEngine("MyStream", m_randomSeed.value(), ctx);
84 
85  // Call the code that generates an event
86  CHECK(this->callGenerator());
87 
88  // Create the MC event and send the GeneratorEvent stored in it to fillEvt
89  HepMC::GenEvent* evt = HepMC::newGenEvent(1,1);
90  CHECK(this->fillEvt(evt));
92 
93  // Add the event to the MC event collection
94  if (events()) {
95  // If this is an "afterburner" generator, replace the last event rather than add a new one
97  if (m_isAfterburner.value() || name() == "Tauola" || name() == "Photos") {
98  events()->pop_back();
99  }
100  // Add the event to the end of the collection
101  events()->push_back(evt);
102  ATH_MSG_DEBUG("MC event added to McEventCollection");
103 
104  // remove the empty event in case of ParticleDecayer
105  if (name() == "ParticleDecayer") {
106  events()->pop_back();
107  }
108  }
109 
110  // Call the incident service to notify that an event has been made
111  m_incidentSvc->fireIncident( Incident(name(), "McEventGenerated") );
112  return StatusCode::SUCCESS;
113 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ fillEvt()

StatusCode Starlight_i::fillEvt ( HepMC::GenEvent *  evt)
virtual

For filling the HepMC event object.

Implements GenModule.

Definition at line 144 of file Starlight_i.cxx.

145 {
146  if(m_lheOutput) return StatusCode::SUCCESS;
147  ATH_MSG_DEBUG( " STARLIGHT Filing. \n" );
148 
149  // Set the event number
150  evt->set_event_number( m_events );
151 
152  // Create the event vertex
154  evt->add_vertex( v1 );
155 
156  // Loop on all final particles and
157  // put them all as outgoing from the event vertex
158  int ipart = 0;
159  std::vector<starlightParticle>::const_iterator part =
160  (m_event->getParticles())->begin();
161  double px_tot=0;
162  double py_tot=0;
163  double pz_tot=0;
164  for (part = m_event->getParticles()->begin();
165  part != m_event->getParticles()->end(); ++part, ++ipart)
166  {
167  int pid = (*part).getPdgCode();
168  int charge = (*part).getCharge();
169  //AO special for pid sign stored in charge
170  int pidsign = pid/std::abs(pid);
171  int chsign = 0;
172  if (charge !=0) chsign = charge/std::abs(charge);
173  if( chsign != pidsign && chsign != 0) pid = -pid;
174 
175  double px = (*part).GetPx();
176  double py = (*part).GetPy();
177  double pz = (*part).GetPz();
178  double e = (*part).GetE();
179  // mass fix implemented only for muons
180  if(std::abs(pid)==13) {
181  float mass = m_inputParameters.muonMass();//0.1056583715;// starlightConstants::muonMass;
182  e = std::sqrt(px*px + py*py + pz*pz + mass*mass);
183  }
184  // mass fix for photons (ALPs)
185  if(std::abs(pid)==22) {
186  e = std::sqrt(px*px + py*py + pz*pz);
187  }
188 
189  ATH_MSG_DEBUG( "saving particle " << ipart );
190  px_tot+=px;
191  py_tot+=py;
192  pz_tot+=pz;
193 
194  if(!m_suppressVMdecay) v1->add_particle_out(
195  HepMC::newGenParticlePtr(HepMC::FourVector(px, py, pz, e), pid, 1) );
196  }
197  if(m_suppressVMdecay) {
198  int pid = 113;
199  double mass = 0.770;
200  if(m_prodParticleId == 443011 || m_prodParticleId == 443013){
201  pid = 443;
202  mass = 3.0969;
203  }
204  if(m_prodParticleId == 444011 || m_prodParticleId == 444013){
205  pid = 100443;
206  mass = 3.6861;
207  }
208  if(m_prodParticleId == 553011 || m_prodParticleId == 553013){
209  pid = 553;
210  mass = 9.4604;
211  }
212  if(m_prodParticleId == 554011 || m_prodParticleId == 554013){
213  pid = 100553;
214  mass = 10.023;
215  }
216  if(m_prodParticleId == 555011 || m_prodParticleId == 555013){
217  pid = 200553;
218  mass = 10.355;
219  }
220  double e = sqrt(px_tot*px_tot + py_tot*py_tot + pz_tot*pz_tot + mass*mass);
221  v1->add_particle_out(
222  HepMC::newGenParticlePtr(HepMC::FourVector(px_tot, py_tot, pz_tot, e), pid, 1) );
223  }
224  ATH_MSG_DEBUG( "Saved " << ipart << " tracks " );
225 
226  // Convert cm->mm and GeV->MeV
227  //
228  GeVToMeV(evt);
229 
230  return StatusCode::SUCCESS;
231 }

◆ finalize()

StatusCode GenModule::finalize ( )
inlineinherited

Definition at line 55 of file GenModule.h.

55 { return genFinalize(); }

◆ genFinalize()

StatusCode Starlight_i::genFinalize ( )
virtual

For finalising the generator, if required.

Reimplemented from GenModule.

Definition at line 136 of file Starlight_i.cxx.

137 {
138  ATH_MSG_DEBUG( " STARLIGHT Ending. \n" );
139 
140  return StatusCode::SUCCESS;
141 }

◆ genInitialize()

StatusCode Starlight_i::genInitialize ( )
virtual

For initializing the generator, if required.

Reimplemented from GenModule.

Definition at line 52 of file Starlight_i.cxx.

53 {
54  // Initialisation of input parameters
55  //
56  ATH_MSG_INFO( "===> January 20 2011 STARLIGHT INTERFACE VERSION. \n" );
57  ATH_MSG_INFO( "===> STARLIGHT INITIALISING. \n" );
58 
59  //Re-seed the random number stream
60  long seeds[7];
61  ATHRNG::calculateSeedsMC21(seeds, starlight_stream, 0, m_dsid, m_randomSeed);
62 
63  // Create inputParameters and
64  // set the users' initialisation parameters choices
65  bool res = set_user_params();
66  if( !res ) {
67  return StatusCode::FAILURE;
68  }
69 
70  // create the starlight object
71  m_starlight = new starlight();
72  // Set random generator to prevent crash in tests.
73  m_randomGenerator = std::make_shared<randomGenerator>();
74  m_randomGenerator->SetSeed(seeds[0]);
75  m_starlight->setRandomGenerator(m_randomGenerator.get());
76  // set input parameters
77  m_starlight->setInputParameters(&m_inputParameters);
78  // and initialize
79  m_starlight->init();
80 
81  // dump events to lhef (needed for QED showering with Pythia8
82  if(m_lheOutput){
83  ATH_MSG_INFO("===> dumping starlight events to lhef format. \n" );
84  if(!starlight2lhef()) return StatusCode::FAILURE;
85  }
86 
87  return StatusCode::SUCCESS;
88 }

◆ genuserInitialize()

virtual StatusCode GenModule::genuserInitialize ( )
inlinevirtualinherited

For initialization of user code, if required. Called after genInitialize.

Reimplemented in Pythia8B_i.

Definition at line 64 of file GenModule.h.

64 { return StatusCode::SUCCESS; }

◆ getRandomEngine() [1/2]

CLHEP::HepRandomEngine * GenModule::getRandomEngine ( const std::string &  streamName,
const EventContext &  ctx 
) const
protectedinherited

Definition at line 34 of file GenModule.cxx.

36 {
37  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, streamName);
38  std::string rngName = name()+streamName;
39  rngWrapper->setSeed( rngName, ctx );
40  return rngWrapper->getEngine(ctx);
41 }

◆ getRandomEngine() [2/2]

CLHEP::HepRandomEngine * GenModule::getRandomEngine ( const std::string &  streamName,
unsigned long int  randomSeedOffset,
const EventContext &  ctx 
) const
protectedinherited

Definition at line 44 of file GenModule.cxx.

46 {
47  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, streamName);
48  rngWrapper->setSeed( streamName, ctx.slot(), randomSeedOffset, ctx.eventID().run_number() );
49  return rngWrapper->getEngine(ctx);
50 }

◆ getRandomEngineDuringInitialize()

CLHEP::HepRandomEngine * GenModule::getRandomEngineDuringInitialize ( const std::string &  streamName,
unsigned long int  randomSeedOffset,
unsigned int  conditionsRun = 1,
unsigned int  lbn = 1 
) const
protectedinherited

Definition at line 53 of file GenModule.cxx.

54 {
55  const size_t slot=0;
56  EventContext ctx;
57  ctx.setSlot( slot );
58  ctx.setEventID (EventIDBase (conditionsRun,
59  EventIDBase::UNDEFEVT, // event
60  EventIDBase::UNDEFNUM, // timestamp
61  EventIDBase::UNDEFNUM, // timestamp ns
62  lbn));
64  Atlas::ExtendedEventContext( evtStore()->hiveProxyDict(),
65  conditionsRun) );
66  return getRandomEngine(streamName, randomSeedOffset, ctx);
67 }

◆ GeVToMeV()

void GenBase::GeVToMeV ( HepMC::GenEvent *  evt)
protectedinherited

Scale event energies/momenta by x 1000.

Todo:
Add HepMC units awareness and do it differently when HepMC provides this functionality directly (and reference-based FourVector accessors)

Definition at line 61 of file GenBase.cxx.

61  {
62  for (HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p) {
63  const HepMC::FourVector fv((*p)->momentum().px() * 1000,
64  (*p)->momentum().py() * 1000,
65  (*p)->momentum().pz() * 1000,
66  (*p)->momentum().e() * 1000);
67  (*p)->set_momentum(fv);
68  (*p)->set_generated_mass(1000 * (*p)->generated_mass());
69  }
70 }

◆ initialize()

StatusCode GenModule::initialize ( )
virtualinherited

Reimplemented from GenBase.

Definition at line 21 of file GenModule.cxx.

21  {
22  // Base class initializations
24  // Get the random number service
25  CHECK(m_rndmSvc.retrieve());
26  // Get the incident service
27  CHECK(m_incidentSvc.retrieve());
30  return StatusCode::SUCCESS;
31 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ MeVToGeV()

void GenBase::MeVToGeV ( HepMC::GenEvent *  evt)
protectedinherited

Scale event energies/momenta by x 1/1000.

Definition at line 71 of file GenBase.cxx.

71  {
72  for (HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p) {
73  const HepMC::FourVector fv((*p)->momentum().px() / 1000,
74  (*p)->momentum().py() / 1000,
75  (*p)->momentum().pz() / 1000,
76  (*p)->momentum().e() / 1000);
77  (*p)->set_momentum(fv);
78  (*p)->set_generated_mass((*p)->generated_mass() / 1000);
79  }
80 }

◆ mmTocm()

void GenBase::mmTocm ( HepMC::GenEvent *  evt)
protectedinherited

Scale event lengths by x 1/10.

Definition at line 90 of file GenBase.cxx.

90  {
91  for (HepMC::GenEvent::vertex_iterator vtx = evt->vertices_begin(); vtx != evt->vertices_end(); ++vtx) {
92  const HepMC::FourVector fv((*vtx)->position().x() / 10,
93  (*vtx)->position().y() / 10,
94  (*vtx)->position().z() / 10,
95  (*vtx)->position().t() / 10);
96  (*vtx)->set_position(fv);
97  }
98 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ particleData()

const HepPDT::ParticleData* GenBase::particleData ( int  pid) const
inlineinherited

Access an element in the particle data table.

Definition at line 126 of file GenBase.h.

126  {
127  return pdt().particle(HepPDT::ParticleID(std::abs(pid)));
128  }

◆ particleTable()

const HepPDT::ParticleDataTable& GenBase::particleTable ( ) const
inlineinherited

Get a particle data table.

Definition at line 118 of file GenBase.h.

118  {
119  return *(m_ppSvc->PDT());
120  }

◆ partPropSvc()

const ServiceHandle<IPartPropSvc> GenBase::partPropSvc ( ) const
inlineinherited

Access the particle property service.

Definition at line 113 of file GenBase.h.

113  {
114  return m_ppSvc;
115  }

◆ pdt()

const HepPDT::ParticleDataTable& GenBase::pdt ( ) const
inlineinherited

Shorter alias to get a particle data table.

Definition at line 123 of file GenBase.h.

123 { return particleTable(); }

◆ prepare_params_file()

bool Starlight_i::prepare_params_file ( )
protected

Definition at line 359 of file Starlight_i.cxx.

360 {
361  // Write initialization parameters to tmp file
362 
364  {
365  ATH_MSG_INFO( " Command is: " << *i );
366 
367  StringParse mystring(*i);
368  std::string myparam = mystring.piece<std::string>(1);
369  if (myparam == "beam1Z")
370  {
371  m_beam1Z = mystring.piece<double>(2);
372  }
373  else if (myparam == "beam1A")
374  {
375  m_beam1A = mystring.piece<double>(2);
376  }
377  else if (myparam == "beam2Z")
378  {
379  m_beam2Z = mystring.piece<double>(2);
380  }
381  else if (myparam == "beam2A")
382  {
383  m_beam2A = mystring.piece<double>(2);
384  }
385  else if (myparam == "beam1Gamma")
386  {
387  m_beam1Gamma = mystring.piece<double>(2);
388  }
389  else if (myparam == "beam2Gamma")
390  {
391  m_beam2Gamma = mystring.piece<double>(2);
392  }
393  else if (myparam == "maxW")
394  {
395  m_maxW = mystring.piece<double>(2);
396  }
397  else if (myparam == "minW")
398  {
399  m_minW = mystring.piece<double>(2);
400  }
401  else if (myparam == "nmbWBins")
402  {
403  m_nmbWBins = mystring.piece<double>(2);
404  }
405  else if (myparam == "maxRapidity")
406  {
407  m_maxRapidity = mystring.piece<double>(2);
408  }
409  else if (myparam == "nmbRapidityBins")
410  {
411  m_nmbRapidityBins = mystring.piece<double>(2);
412  }
413  else if (myparam == "accCutPt")
414  {
415  m_accCutPt = mystring.piece<double>(2);
416  }
417  else if (myparam == "minPt")
418  {
419  m_minPt = mystring.piece<double>(2);
420  }
421  else if (myparam == "maxPt")
422  {
423  m_maxPt = mystring.piece<double>(2);
424  }
425  else if (myparam == "accCutEta")
426  {
427  m_accCutEta = mystring.piece<double>(2);
428  }
429  else if (myparam == "minEta")
430  {
431  m_minEta = mystring.piece<double>(2);
432  }
433  else if (myparam == "maxEta")
434  {
435  m_maxEta = mystring.piece<double>(2);
436  }
437  else if (myparam == "productionMode")
438  {
439  m_productionMode = mystring.piece<double>(2);
440  }
441  else if (myparam == "axionMass")
442  {
443  m_axionMass = mystring.piece<double>(2);
444  }
445  else if (myparam == "nmbEventsTot")
446  {
447  m_nmbEventsTot = mystring.piece<double>(2);
448  }
449  else if (myparam == "prodParticleId")
450  {
451  m_prodParticleId = mystring.piece<double>(2);
452  }
453  else if (myparam == "randomSeed")
454  {
455  m_randomSeed = mystring.piece<double>(2);
456  }
457  else if (myparam == "outputFormat")
458  {
459  m_outputFormat = mystring.piece<double>(2);
460  }
461  else if (myparam == "beamBreakupMode")
462  {
463  m_beamBreakupMode = mystring.piece<double>(2);
464  }
465  else if (myparam == "interferenceEnabled")
466  {
467  m_interferenceEnabled = mystring.piece<double>(2);
468  }
469  else if (myparam == "interferenceStrength")
470  {
471  m_interferenceStrength = mystring.piece<double>(2);
472  }
473  else if (myparam == "coherentProduction")
474  {
475  m_coherentProduction = mystring.piece<double>(2);
476  }
477  else if (myparam == "incoherentFactor")
478  {
479  m_incoherentFactor = mystring.piece<double>(2);
480  }
481  else if (myparam == "maxPtInterference")
482  {
483  m_maxPtInterference = mystring.piece<double>(2);
484  }
485  else if (myparam == "nmbPtBinsInterference")
486  {
487  m_nmbPtBinsInterference = mystring.piece<double>(2);
488  }
489  else if (myparam == "xsecMethod")
490  {
491  m_xsecMethod = mystring.piece<double>(2);
492  }
493  else if (myparam == "nThreads")
494  {
495  m_nThreads = mystring.piece<double>(2);
496  }
497  else if (myparam == "pythFullRec")
498  {
499  m_pythFullRec = mystring.piece<double>(2);
500  }
501  else
502  {
503  ATH_MSG_ERROR( " ERROR in STARLIGHT INITIALIZATION PARAMETERS "
504  << myparam << " is an invalid parameter !" );
505  return false;
506  }
507  }
508 
509  std::ofstream configFile;
510  configFile.open(m_configFileName.value().c_str());
511 
512  configFile << "BEAM_1_Z = " << m_beam1Z << std::endl;
513  configFile << "BEAM_1_A = " << m_beam1A << std::endl;
514  configFile << "BEAM_2_Z = " << m_beam2Z << std::endl;
515  configFile << "BEAM_2_A = " << m_beam2A << std::endl;
516  configFile << "BEAM_1_GAMMA = " << m_beam1Gamma << std::endl;
517  configFile << "BEAM_2_GAMMA = " << m_beam2Gamma << std::endl;
518  configFile << "W_MAX = " << m_maxW << std::endl;
519  configFile << "W_MIN = " << m_minW << std::endl;
520  configFile << "W_N_BINS = " << m_nmbWBins << std::endl;
521  configFile << "RAP_MAX = " << m_maxRapidity << std::endl;
522  configFile << "RAP_N_BINS = " << m_nmbRapidityBins << std::endl;
523  configFile << "CUT_PT = " << m_accCutPt << std::endl;
524  configFile << "PT_MIN = " << m_minPt << std::endl;
525  configFile << "PT_MAX = " << m_maxPt << std::endl;
526  configFile << "CUT_ETA = " << m_accCutEta << std::endl;
527  configFile << "ETA_MIN = " << m_minEta << std::endl;
528  configFile << "ETA_MAX = " << m_maxEta << std::endl;
529  configFile << "PROD_MODE = " << m_productionMode << std::endl;
530  configFile << "AXION_MASS = " << m_axionMass << std::endl;
531  configFile << "N_EVENTS = " << m_nmbEventsTot << std::endl;
532  configFile << "PROD_PID = " << m_prodParticleId << std::endl;
533  configFile << "RND_SEED = " << m_randomSeed << std::endl;
534  configFile << "BREAKUP_MODE = " << m_beamBreakupMode << std::endl;
535  configFile << "INTERFERENCE = " << m_interferenceEnabled << std::endl;
536  configFile << "IF_STRENGTH = " << m_interferenceStrength << std::endl;
537  configFile << "INT_PT_MAX = " << m_maxPtInterference << std::endl;
538  configFile << "INT_PT_N_BINS = " << m_nmbPtBinsInterference << std::endl;
539  configFile << "COHERENT = " << m_coherentProduction << std::endl;
540  configFile << "INCO_FACTOR = " << m_incoherentFactor << std::endl;
541  configFile << "XSEC_METHOD = " << m_xsecMethod << std::endl;
542  configFile << "N_THREADS = " << m_nThreads << std::endl;
543  configFile << "PYTHIA_FULL_EVENTRECORD = " << m_pythFullRec << std::endl;
544 
545  configFile.close();
546  return true;
547 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ set_user_params()

bool Starlight_i::set_user_params ( )
protected

Definition at line 335 of file Starlight_i.cxx.

336 {
337  // Set starlight user initialization parameters
338 
339  // write python starlight config parameters to tmp file
340  // if external config file not specified
341  if (m_configFileName.empty()) {
342  m_configFileName = "tmp.slight.in";
343  if (!prepare_params_file()) {
344  printWarn <<
345  "problems initializing input parameters. cannot initialize starlight.";
346  return false;
347  }
348  }
349 
350  m_inputParameters.configureFromFile(m_configFileName);
351  if (!m_inputParameters.init()) {
352  ATH_MSG_WARNING( "problems initializing input parameters. cannot initialize starlight. " );
353  return false;
354  }
355 
356  return true;
357 }

◆ starlight2lhef()

bool Starlight_i::starlight2lhef ( )
protected

Definition at line 234 of file Starlight_i.cxx.

235 {
236 
237  std::string lheFilename = "events.lhe";
238  std::ofstream lheStream;
239  lheStream.open(lheFilename.c_str(), std::ofstream::trunc);
240  if(!lheStream) {
241  ATH_MSG_ERROR("error: Failed to open file "+lheFilename);
242  return false;
243  }
244 
245  lheStream << "<LesHouchesEvents version=\"1.0\">\n";
246  lheStream << "<!--\n";
247  lheStream << "File generated using Starlight \n";
248  lheStream << "-->\n";
249 
250  float beam_energy=0.;
251  // run-3 beam energy (allowing approximate value of 2877 for gamma of the beams)
252  if(m_beam1Gamma>2870 && m_beam1Gamma<2880) beam_energy = 2.68e+03;
253  // run-2 beam energy
254  else beam_energy = 2.51e+03;
255 
256  lheStream << "<init>\n";
257  lheStream << " 13 -13 "<<beam_energy<<" "<<beam_energy<<" 0 0 0 0 3 1\n";
258  lheStream << " 1.000000e+00 0.000000e+00 1.000000e+00 9999\n";
259  lheStream << "</init>\n";
260 
261 
262  std::unique_ptr<upcEvent> uevent(new upcEvent);
263 
264  for(unsigned int i=0; i<m_maxevents; i++) {
265  lheStream << "<event>\n";
266  (*uevent) = m_starlight->produceEvent();
267  int ipart = 0;
268  CLHEP::HepLorentzVector photon_system(0);
269  double ptscale =0;
270  std::vector<starlightParticle>::const_iterator part = (uevent->getParticles())->begin();
271  for (part = uevent->getParticles()->begin(); part != uevent->getParticles()->end(); ++part, ++ipart)
272  {
273  CLHEP::HepLorentzVector particle_sl((*part).GetPx(), (*part).GetPy(), (*part).GetPz(), (*part).GetE());
274  photon_system += particle_sl;
275  ptscale += std::sqrt((*part).GetPx()*(*part).GetPx() + (*part).GetPy()*(*part).GetPy());
276  }
277 
278  // avg pt is the correct scale here
279  ptscale /= static_cast<float> (ipart);
280  lheStream << " 4 9999 1.000000e+00 "<<ptscale<<" 7.297e-03 2.569093e-01\n";
281 
283  lheStream << " -11 -1 0 0 0 0 0.0000000000e+00 0.0000000000e+00 "
284  << photon_system.m()/2.*std::exp(photon_system.rapidity())<<" "
285  <<photon_system.m()/2.*std::exp(photon_system.rapidity())
286  << " 0.0000000000e+00 0. 9.\n";
287  lheStream << " 11 -1 0 0 0 0 0.0000000000e+00 0.0000000000e+00 "
288  << -photon_system.m()/2.*std::exp(-photon_system.rapidity())<<" "
289  <<photon_system.m()/2.*std::exp(-photon_system.rapidity())
290  << " 0.0000000000e+00 0. 9.\n";
291  }
292 
293  else{
294  lheStream << " 22 -1 0 0 0 0 0.0000000000e+00 0.0000000000e+00 "
295  << photon_system.m()/2.*std::exp(photon_system.rapidity())<<" "
296  <<photon_system.m()/2.*std::exp(photon_system.rapidity())
297  <<" 0.0000000000e+00 0. 9.\n";
298  lheStream << " 22 -1 0 0 0 0 0.0000000000e+00 0.0000000000e+00 "
299  << -photon_system.m()/2.*std::exp(-photon_system.rapidity())<<" "
300  <<photon_system.m()/2.*std::exp(-photon_system.rapidity())
301  <<" 0.0000000000e+00 0. 9.\n";
302  }
303 
304  for (part = uevent->getParticles()->begin(); part != uevent->getParticles()->end(); ++part, ++ipart)
305  {
306  int pid = (*part).getPdgCode();
307  int charge = (*part).getCharge();
308  //AO special for pid sign stored in charge
309  int pidsign = pid/std::abs(pid);
310  int chsign = charge/std::abs(charge);
311  if( chsign != pidsign ) pid = -pid;
312 
313  double px = (*part).GetPx();
314  double py = (*part).GetPy();
315  double pz = (*part).GetPz();
316  double e = (*part).GetE();
317  double mass = (*part).getMass();
318  if(std::abs(pid)==11) mass = m_inputParameters.mel();
319  else if(std::abs(pid)==13) mass = m_inputParameters.muonMass();
320  else if(std::abs(pid)==15) mass = m_inputParameters.tauMass();
321 
322  lheStream << pid<<" 1 1 2 0 0 "<<px<<" "<<py<<" "<<pz<<" "<<e<<" "<<mass<<" 0. 9.\n";
323 
324  }
325  lheStream << "</event>\n";
326  }
327 
328 
329  lheStream << "</LesHouchesEvents>";
330  lheStream.close();
331 
332  return true;
333 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_accCutEta

bool Starlight_i::m_accCutEta {false}
protected

Definition at line 71 of file Starlight_i.h.

◆ m_accCutPt

bool Starlight_i::m_accCutPt {false}
protected

Definition at line 68 of file Starlight_i.h.

◆ m_axionMass

double Starlight_i::m_axionMass {1.}
protected

Definition at line 54 of file Starlight_i.h.

◆ m_beam1A

unsigned int Starlight_i::m_beam1A {0}
protected

Definition at line 58 of file Starlight_i.h.

◆ m_beam1Gamma

double Starlight_i::m_beam1Gamma {0.}
protected

Definition at line 61 of file Starlight_i.h.

◆ m_beam1Z

unsigned int Starlight_i::m_beam1Z {0}
protected

Definition at line 57 of file Starlight_i.h.

◆ m_beam2A

unsigned int Starlight_i::m_beam2A {0}
protected

Definition at line 60 of file Starlight_i.h.

◆ m_beam2Gamma

double Starlight_i::m_beam2Gamma {0.}
protected

Definition at line 62 of file Starlight_i.h.

◆ m_beam2Z

unsigned int Starlight_i::m_beam2Z {0}
protected

Definition at line 59 of file Starlight_i.h.

◆ m_beamBreakupMode

int Starlight_i::m_beamBreakupMode {0}
protected

Definition at line 79 of file Starlight_i.h.

◆ m_bford

double Starlight_i::m_bford
protected

Definition at line 84 of file Starlight_i.h.

◆ m_coherentProduction

bool Starlight_i::m_coherentProduction {false}
protected

Definition at line 82 of file Starlight_i.h.

◆ m_configFileName

StringProperty Starlight_i::m_configFileName {this, "ConfigFileName", ""}
protected

Definition at line 42 of file Starlight_i.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doTauolappLheFormat

BooleanProperty Starlight_i::m_doTauolappLheFormat {this, "doTauolappLheFormat", false}
protected

Definition at line 45 of file Starlight_i.h.

◆ m_dsid

IntegerProperty Starlight_i::m_dsid {this, "Dsid", 999999, "Dataset ID number"}
protected

Definition at line 41 of file Starlight_i.h.

◆ m_event

upcEvent* Starlight_i::m_event {}
protected

Definition at line 55 of file Starlight_i.h.

◆ m_events

int Starlight_i::m_events {0}
protected

Definition at line 50 of file Starlight_i.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_incidentSvc

ServiceHandle<IIncidentSvc> GenModule::m_incidentSvc {this, "IncidentSvc", "IncidentSvc"}
privateinherited

Handle on the incident service.

Definition at line 101 of file GenModule.h.

◆ m_incoherentFactor

double Starlight_i::m_incoherentFactor {0.}
protected

Definition at line 83 of file Starlight_i.h.

◆ m_InitializeVector

StringArrayProperty Starlight_i::m_InitializeVector {this, "Initialize", {} }
protected

Definition at line 48 of file Starlight_i.h.

◆ m_inputParameters

inputParameters Starlight_i::m_inputParameters
protected

Definition at line 53 of file Starlight_i.h.

◆ m_interferenceEnabled

bool Starlight_i::m_interferenceEnabled {false}
protected

Definition at line 80 of file Starlight_i.h.

◆ m_interferenceStrength

double Starlight_i::m_interferenceStrength {0.}
protected

Definition at line 81 of file Starlight_i.h.

◆ m_isAfterburner

BooleanProperty GenModule::m_isAfterburner {this, "IsAfterburner", false, "Set true if generator modifies existing events rather than creating new ones"}
protectedinherited

Flag for normal vs. afterburner generators.

Definition at line 87 of file GenModule.h.

◆ m_lheOutput

BooleanProperty Starlight_i::m_lheOutput {this, "lheOutput", false}
protected

Definition at line 43 of file Starlight_i.h.

◆ m_maxEta

double Starlight_i::m_maxEta {0.}
protected

Definition at line 73 of file Starlight_i.h.

◆ m_maxevents

UnsignedIntegerProperty Starlight_i::m_maxevents {this, "maxevents", 5500}
protected

Definition at line 44 of file Starlight_i.h.

◆ m_maxPt

double Starlight_i::m_maxPt {0.}
protected

Definition at line 70 of file Starlight_i.h.

◆ m_maxPtInterference

double Starlight_i::m_maxPtInterference {0.}
protected

Definition at line 85 of file Starlight_i.h.

◆ m_maxRapidity

double Starlight_i::m_maxRapidity {0.}
protected

Definition at line 66 of file Starlight_i.h.

◆ m_maxW

double Starlight_i::m_maxW {0.}
protected

Definition at line 63 of file Starlight_i.h.

◆ m_mcEventKey

std::string GenBase::m_mcEventKey {}
protectedinherited

StoreGate key for the MC event collection (defaults to GEN_EVENT)

Definition at line 137 of file GenBase.h.

◆ m_mcevents_const

SG::ReadHandleKey<McEventCollection> GenBase::m_mcevents_const { this, "McEventKey", "GEN_EVENT", "StoreGate key of the MC event collection" }
privateinherited

Const handle to the MC event collection.

Definition at line 163 of file GenBase.h.

◆ m_minEta

double Starlight_i::m_minEta {0.}
protected

Definition at line 72 of file Starlight_i.h.

◆ m_minPt

double Starlight_i::m_minPt {0.}
protected

Definition at line 69 of file Starlight_i.h.

◆ m_minW

double Starlight_i::m_minW {0.}
protected

Definition at line 64 of file Starlight_i.h.

◆ m_mkMcEvent

BooleanProperty GenBase::m_mkMcEvent {this, "MakeMcEvent", false, "Create a new MC event collection if it doesn't exist"}
protectedinherited

Flag to determine if a new MC event collection should be made if it doesn't exist.

Definition at line 139 of file GenBase.h.

◆ m_nmbEventsTot

unsigned int Starlight_i::m_nmbEventsTot {0}
protected

Definition at line 75 of file Starlight_i.h.

◆ m_nmbPtBinsInterference

int Starlight_i::m_nmbPtBinsInterference {0}
protected

Definition at line 86 of file Starlight_i.h.

◆ m_nmbRapidityBins

unsigned int Starlight_i::m_nmbRapidityBins {0}
protected

Definition at line 67 of file Starlight_i.h.

◆ m_nmbWBins

unsigned int Starlight_i::m_nmbWBins {0}
protected

Definition at line 65 of file Starlight_i.h.

◆ m_nThreads

int Starlight_i::m_nThreads {1}
protected

Definition at line 89 of file Starlight_i.h.

◆ m_outputFormat

int Starlight_i::m_outputFormat
protected

Definition at line 78 of file Starlight_i.h.

◆ m_ppSvc

ServiceHandle<IPartPropSvc> GenBase::m_ppSvc {this, "PartPropSvc", "PartPropSvc"}
privateinherited

Handle on the particle property service.

Definition at line 160 of file GenBase.h.

◆ m_prodParticleId

int Starlight_i::m_prodParticleId {0}
protected

Definition at line 76 of file Starlight_i.h.

◆ m_productionMode

int Starlight_i::m_productionMode {0}
protected

Definition at line 74 of file Starlight_i.h.

◆ m_ptBinWidthInterference

double Starlight_i::m_ptBinWidthInterference {0.}
protected

Definition at line 87 of file Starlight_i.h.

◆ m_pythFullRec

bool Starlight_i::m_pythFullRec {false}
protected

Definition at line 90 of file Starlight_i.h.

◆ m_randomGenerator

std::shared_ptr<randomGenerator> Starlight_i::m_randomGenerator {}
protected

Definition at line 52 of file Starlight_i.h.

◆ m_randomSeed

int Starlight_i::m_randomSeed {0}
protected

Definition at line 77 of file Starlight_i.h.

◆ m_rndmSvc

ServiceHandle<IAthRNGSvc> GenModule::m_rndmSvc {this, "RndmSvc", "AthRNGSvc"}
privateinherited

Data members.

Definition at line 99 of file GenModule.h.

◆ m_starlight

starlight* Starlight_i::m_starlight {}
protected

Definition at line 51 of file Starlight_i.h.

◆ m_suppressVMdecay

BooleanProperty Starlight_i::m_suppressVMdecay {this, "suppressVMdecay", false}
protected

Definition at line 46 of file Starlight_i.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xsecMethod

bool Starlight_i::m_xsecMethod {false}
protected

Definition at line 88 of file Starlight_i.h.


The documentation for this class was generated from the following files:
HepMC::GenVertexPtr
HepMC::GenVertex * GenVertexPtr
Definition: GenVertex.h:59
Starlight_i::m_event
upcEvent * m_event
Definition: Starlight_i.h:55
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
Starlight_i::m_doTauolappLheFormat
BooleanProperty m_doTauolappLheFormat
Definition: Starlight_i.h:45
StringParse
Utility object for parsing a string into tokens and returning them as a variety of types.
Definition: StringParse.h:33
taskman.configFile
configFile
Definition: taskman.py:311
test_pyathena.px
px
Definition: test_pyathena.py:18
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Starlight_i::m_starlight
starlight * m_starlight
Definition: Starlight_i.h:51
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Starlight_i::m_accCutEta
bool m_accCutEta
Definition: Starlight_i.h:71
Starlight_i::m_maxEta
double m_maxEta
Definition: Starlight_i.h:73
Starlight_i::m_beam2A
unsigned int m_beam2A
Definition: Starlight_i.h:60
GenModule::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt)=0
For filling the HepMC event object.
GenModule::callGenerator
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
Definition: GenModule.h:66
GenBase::GeVToMeV
void GeVToMeV(HepMC::GenEvent *evt)
Scale event energies/momenta by x 1000.
Definition: GenBase.cxx:61
GenBase::events_const
const McEventCollection * events_const() const
Access the current event's McEventCollection (const)
Definition: GenBase.h:96
SG::ReadHandle< McEventCollection >
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Starlight_i::m_inputParameters
inputParameters m_inputParameters
Definition: Starlight_i.h:53
Starlight_i::m_productionMode
int m_productionMode
Definition: Starlight_i.h:74
Starlight_i::m_suppressVMdecay
BooleanProperty m_suppressVMdecay
Definition: Starlight_i.h:46
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
GenModule::m_incidentSvc
ServiceHandle< IIncidentSvc > m_incidentSvc
Handle on the incident service.
Definition: GenModule.h:101
Starlight_i::m_beam1A
unsigned int m_beam1A
Definition: Starlight_i.h:58
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
HepMC::newGenEvent
GenEvent * newGenEvent(const int a, const int b)
Definition: GenEvent.h:502
Starlight_i::m_axionMass
double m_axionMass
Definition: Starlight_i.h:54
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Starlight_i::m_nThreads
int m_nThreads
Definition: Starlight_i.h:89
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Starlight_i::m_maxPt
double m_maxPt
Definition: Starlight_i.h:70
HepMC::fillBarcodesAttribute
void fillBarcodesAttribute(GenEvent *)
Definition: GenEvent.h:504
empty
bool empty(TH1 *h)
Definition: computils.cxx:294
python.DataFormatRates.events
events
Definition: DataFormatRates.py:105
Starlight_i::m_beam1Gamma
double m_beam1Gamma
Definition: Starlight_i.h:61
Starlight_i::m_lheOutput
BooleanProperty m_lheOutput
Definition: Starlight_i.h:43
GenModule::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, const EventContext &ctx) const
Definition: GenModule.cxx:34
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
Starlight_i::m_configFileName
StringProperty m_configFileName
Definition: Starlight_i.h:42
Starlight_i::m_minPt
double m_minPt
Definition: Starlight_i.h:69
Starlight_i::m_beam2Gamma
double m_beam2Gamma
Definition: Starlight_i.h:62
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Starlight_i::m_interferenceStrength
double m_interferenceStrength
Definition: Starlight_i.h:81
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Starlight_i::m_xsecMethod
bool m_xsecMethod
Definition: Starlight_i.h:88
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:269
Starlight_i::starlight2lhef
bool starlight2lhef()
Definition: Starlight_i.cxx:234
GenModule::genuserInitialize
virtual StatusCode genuserInitialize()
For initialization of user code, if required. Called after genInitialize.
Definition: GenModule.h:64
Starlight_i::m_pythFullRec
bool m_pythFullRec
Definition: Starlight_i.h:90
GenModule::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Data members.
Definition: GenModule.h:99
GenBase::m_ppSvc
ServiceHandle< IPartPropSvc > m_ppSvc
Handle on the particle property service.
Definition: GenBase.h:160
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
Starlight_i::m_randomGenerator
std::shared_ptr< randomGenerator > m_randomGenerator
Definition: Starlight_i.h:52
GenModule::genInitialize
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition: GenModule.h:62
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Starlight_i::m_InitializeVector
StringArrayProperty m_InitializeVector
Definition: Starlight_i.h:48
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
HepMC::newGenVertexPtr
GenVertexPtr newGenVertexPtr(const HepMC::FourVector &pos=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), const int i=0)
Definition: GenVertex.h:64
lumiFormat.i
int i
Definition: lumiFormat.py:92
trigbs_createHLTBSTestFile.beam_energy
beam_energy
Definition: trigbs_createHLTBSTestFile.py:124
Starlight_i::m_outputFormat
int m_outputFormat
Definition: Starlight_i.h:78
ret
T ret(T t)
Definition: rootspy.cxx:260
Atlas::ExtendedEventContext
Definition: ExtendedEventContext.h:23
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
GenBase::m_mcevents_const
SG::ReadHandleKey< McEventCollection > m_mcevents_const
Const handle to the MC event collection.
Definition: GenBase.h:163
GenModule::m_isAfterburner
BooleanProperty m_isAfterburner
Flag for normal vs. afterburner generators.
Definition: GenModule.h:87
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
Starlight_i::set_user_params
bool set_user_params()
Definition: Starlight_i.cxx:335
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
jobOptions.ParticleID
ParticleID
Definition: jobOptions.decayer.py:85
Starlight_i::m_prodParticleId
int m_prodParticleId
Definition: Starlight_i.h:76
GenModule::genFinalize
virtual StatusCode genFinalize()
For finalising the generator, if required.
Definition: GenModule.h:70
Starlight_i::m_maxPtInterference
double m_maxPtInterference
Definition: Starlight_i.h:85
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
Starlight_i::m_accCutPt
bool m_accCutPt
Definition: Starlight_i.h:68
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Starlight_i::m_nmbWBins
unsigned int m_nmbWBins
Definition: Starlight_i.h:65
Starlight_i::m_nmbPtBinsInterference
int m_nmbPtBinsInterference
Definition: Starlight_i.h:86
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
GenBase::particleTable
const HepPDT::ParticleDataTable & particleTable() const
Get a particle data table.
Definition: GenBase.h:118
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Starlight_i::m_nmbEventsTot
unsigned int m_nmbEventsTot
Definition: Starlight_i.h:75
starlight
Definition: starlight.example.joboption.py:1
GenModule::GenModule
GenModule(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: GenModule.cxx:14
Amg::py
@ py
Definition: GeoPrimitives.h:39
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
Starlight_i::m_minW
double m_minW
Definition: Starlight_i.h:64
charge
double charge(const T &p)
Definition: AtlasPID.h:494
Starlight_i::m_interferenceEnabled
bool m_interferenceEnabled
Definition: Starlight_i.h:80
Starlight_i::m_nmbRapidityBins
unsigned int m_nmbRapidityBins
Definition: Starlight_i.h:67
Starlight_i::m_incoherentFactor
double m_incoherentFactor
Definition: Starlight_i.h:83
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
HepMC::newGenParticlePtr
GenParticlePtr newGenParticlePtr(const HepMC::FourVector &mom=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), int pid=0, int status=0)
Definition: GenParticle.h:39
h
Starlight_i::m_coherentProduction
bool m_coherentProduction
Definition: Starlight_i.h:82
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Starlight_i::m_dsid
IntegerProperty m_dsid
Definition: Starlight_i.h:41
Starlight_i::m_beamBreakupMode
int m_beamBreakupMode
Definition: Starlight_i.h:79
GenBase::pdt
const HepPDT::ParticleDataTable & pdt() const
Shorter alias to get a particle data table.
Definition: GenBase.h:123
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
ATHRNG::calculateSeedsMC21
void calculateSeedsMC21(long *seeds, const std::string &algName, uint64_t ev, uint64_t run, uint64_t offset=0)
Set the random seed using a string (e.g.
Definition: RNGWrapper.cxx:37
Starlight_i::m_events
int m_events
Definition: Starlight_i.h:50
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Starlight_i::m_minEta
double m_minEta
Definition: Starlight_i.h:72
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
Starlight_i::m_beam1Z
unsigned int m_beam1Z
Definition: Starlight_i.h:57
Starlight_i::m_beam2Z
unsigned int m_beam2Z
Definition: Starlight_i.h:59
Starlight_i::prepare_params_file
bool prepare_params_file()
Definition: Starlight_i.cxx:359
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Atlas::setExtendedEventContext
void setExtendedEventContext(EventContext &ctx, ExtendedEventContext &&ectx)
Move an extended context into a context object.
Definition: ExtendedEventContext.cxx:50
GenBase::initialize
virtual StatusCode initialize() override
Definition: GenBase.cxx:17
Starlight_i::m_maxevents
UnsignedIntegerProperty m_maxevents
Definition: Starlight_i.h:44
Starlight_i::m_maxRapidity
double m_maxRapidity
Definition: Starlight_i.h:66
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
Starlight_i::m_maxW
double m_maxW
Definition: Starlight_i.h:63
Starlight_i::m_randomSeed
int m_randomSeed
Definition: Starlight_i.h:77
LB_AnalMapSplitter.lbn
lbn
Definition: LB_AnalMapSplitter.py:28
ServiceHandle< ICondSvc >