List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Private Types | Private Member Functions | Private Attributes
EventGeneratorOG::EventGenerator Class Reference

Set the core position, time and event ID for Monte Carlo events. More...

#include <EventGenerator.h>

Inheritance diagram for EventGeneratorOG::EventGenerator:
Inheritance graph
[legend]

Public Types

enum  ResultFlag { eSuccess, eFailure, eBreakLoop, eContinueLoop }
 Flag returned by module methods to the RunController. More...
 
enum  VersionInfoType {
  eFilename = 1, eRevisionNumber = 2, eDate = 3, eTime = 4,
  eLastEditor = 5
}
 Different types of version info that can be retrieved from GetVersionInfo. More...
 

Public Member Functions

 EventGenerator ()
 
fwk::VModule::ResultFlag Finish ()
 Finish: invoked at end of the run (NOT end of the event) More...
 
utl::StopwatchGetStopwatch ()
 
const utl::StopwatchGetStopwatch () const
 
std::string GetVersionInfo (const VersionInfoType v) const
 Retrieve different sorts of module version info. More...
 
fwk::VModule::ResultFlag Init ()
 Initialize: invoked at beginning of run (NOT beginning of event) More...
 
void InitTiming ()
 
fwk::VModule::ResultFlag Run (evt::Event &event)
 Run: invoked once per event. More...
 
ResultFlag RunWithTiming (evt::Event &event)
 
virtual ~EventGenerator ()
 

Static Public Member Functions

static std::string GetResultFlagByName (const ResultFlag flag)
 

Protected Types

enum  InfoLevel { eInfoNone = 0, eInfoFinal = 1, eInfoIntermediate = 2, eInfoDebug = 3 }
 

Protected Attributes

int fInfoLevel = 0
 

Private Types

typedef std::list
< boost::tuple< double, double,
double, int, char > > 
CoreList
 
enum  EMode {
  eUndefined, eSD, eFD, eHy,
  eMD, eXD, eXH
}
 

Private Member Functions

int FindClosestStationFromPoint (const utl::Point &pt, const rdet::RDetector &rDet, const double maxDistanceFactor)
 
void FlagHoleStations (evt::Event &event) const
 
boost::tuple< double, double,
double > 
GenerateArrayCentricListedCore ()
 
boost::tuple< double, double > GenerateArrayCentricRandomizedCore ()
 
boost::tuple< double, double > GenerateArrayCentricRandomizedCoreAroundRandomStation ()
 
boost::tuple< double, double > GenerateCoreAroundStation ()
 
boost::tuple< double, double > GenerateEyeCentricCore (const double energy)
 
boost::tuple< double, double,
double > 
GenerateSphereCentricCore (evt::ShowerSimData &shower)
 
utl::Vector GetCoreShiftForRadioSimulation (evt::RadioSimulation &radioSim)
 Calculates average offset between the locations of sim. radio pulses and the position of the RDetector stations. More...
 
sdet::Station::StationIdCollection GetInfillCrown (const sdet::Station &centralStation)
 
double MaximumRp (const double lgE)
 
double Rcutoff (const double lgE)
 energy dependent trigger surface More...
 
double RcutoffCherenkovHECO (const double lgE)
 
 REGISTER_MODULE ("EventGeneratorOG", EventGenerator)
 

Private Attributes

double fAltitude = 0
 
char fBand = '\0'
 
CoreList fCorePositions
 
CoreList::iterator fCorePositionsIt
 
double fDeltaEasting = 0
 
double fDeltaNorthing = 0
 
double fDeltaPhi = 0
 
double fEasting = 0
 
utl::TimeStamp fEndDate
 
unsigned int fEventNumber = 0
 
bool fEyeCentric = false
 
int fEyeid = 0
 
std::string fFormat
 
bool fGeometryCheckCherenkovHECO = false
 
bool fInSphere = false
 
bool fInvalidateComponents = false
 
bool fInvalidateData = false
 
std::string fLibraryIdentifier
 
bool fLimitRp = false
 
double fMaxDist = 0
 
int fMaximumDistance = 10
 
TH2D * fMaxVA = nullptr
 
double fMinDist = 0
 
EMode fMode = eUndefined
 
int fNEvents = 0
 
double fNorthing = 0
 
utl::RandomEnginefRandomEngine = nullptr
 
bool fRMaxEnergyDependent = false
 
bool fRpTooLarge = false
 
bool fSampleTimes = false
 
std::vector< unsigned int > fSdIdFormat
 
int fSimCoreCount = 0
 
bool fSkipUpgoing = false
 
boost::tuple< double, double,
double, int, char > 
fSphereCenter
 
double fSphereRadius = 0
 
utl::TimeStamp fStartDate
 
int fStationId = 0
 
double fTelid = 0
 
std::list< double > fTimeList
 
bool fTimeOrdered = false
 
bool fTimeRandomized = false
 
bool fUpgoingShower = false
 
bool fUseRadioCorePosition = false
 
bool fUseRadioEventTime = false
 
bool fUseRandomInfillStation = false
 
bool fUseRandomStation = false
 
bool fUseSimCores = false
 
int fZone = -1
 

Detailed Description

Set the core position, time and event ID for Monte Carlo events.

Author
T. Paul
R. Ulrich
M. Unger
I. Maris

This module performs the following functions:

The configuration of this module is specified in an XML file. Here is a description of the various things you can control via the configuration file, some complete examples, and some description of the error messages you may see if you make a mistake in the configuration file.

Controlling the event identifier

The event identifier is a string used to unique label Monte Carlo events. It is composed of 4 parts:

  1. A libraryIdentifier. This can indicate purpose of the run, what computing center was used, or whatever the person in charge of productions feels is relevant. You have to set this to something.
  2. A Run Id, which is read automatically from the shower file.
  3. The Shower Id, which is read automatically from the shower file.
  4. The number of times a given shower has been used by the event generator (in case, for example, one decides to throw the same shower in various positions on the array). This number is generated automatically by this module.

User control over the event identifier is afforded via an <eventIdentifier> element. This element has two sub-elements, the <libraryIdentifier> described above, and a <format> directive. The <format> directive used to determine how the 4 components described above are arranged and decorated to generate the event ID. You can use the usual printf directives in this <format> element. Here is an example:

<eventIdentifier>
  <libraryIdentifier> Test </libraryIdentifier>
  <format> Library_%1%:Run_%2%:Shower_%3%:Use_%4% </format>
</eventIdentifier>

This will generate event identifiers of the form:

Library_Test:Run_9034:Shower_9034:Use_1
Library_Test:Run_9034:Shower_9034:Use_2
Library_Test:Run_9034:Shower_9034:Use_3
etc.

Setting the event time

You attach a time stamp to the event using the <eventTime> element. Here is an example.

<eventTime> 2004-01-01T04:33:12.000005000 </eventTime>

Note that in this example, the <eventTime> element is written in the standard W3C XML date and time <xs:dateTime> format, with year, month, day, the letter T, the hour, minute, and fractional second (a time zone identifier is optional). For more details on this format, click here.

Setting an event time interval

It is also possible to define a time interval from <startTime> to <endTime>. This is useful if you want to do simulations taking into account time dependent details of the detector. To do this just replace the <eventTime> tag by the <timeInterval> section:

<timeInterval>
  <timeOrdered>
    <nEvents> 100 </nEvents>
  </timeOrdered>
  <startTime> 2004-01-01T04:33:12.000001500 </startTime>
  <endTime> 2005-01-01T04:33:12.000001500 </endTime>
<timeInterval>

ATTENTION: If you use <timeInterval> in <timeOrdered> mode, you have to specify how many events the EventGenerator has to produce in total. Make absolutely sure that your ModuleSequence does not limit the number of events below this number, and the input file you use in EventFileReader does contain at least this number of events. Otherwise not the entire specified time period will be spanned by the simulated events! This happens, because the EventGenerator generates the random times in a ascending time-order, in order to prevent unnecessary SQL queries and Detector::Updates for high statistics mass simulations. If you want to use <timeInterval> you have to remove any bounds from your simulation <loop>. The EventGenerator itself will break the loop, when it is finished.

It is possible to switch off the randomization of the event times. The time interval is divided by the number of events and this difference is added to the previous event time. The following example can be used to simulate CLF laser shots. It generates 200 events, one every 2 seconds, 250 ms after the full second:

<timeInterval>
  <timeOrdered>
    <nEvents> 200 </nEvents>
    <timeRandomized> 0 </timeRandomized>
  </timeOrdered>
  <startTime> 2008-06-07T03:00:00.250000000 </startTime>
  <endTime> 2008-06-07T03:06:40.250000000 </endTime>
<timeInterval>

Specifying the event type

Use the <mode> element to indicate whether you are simulating SD, FD or Hybrid events. For example:

<mode> Hy </mode> <!-- we are simulating hybrids -->

This element is used to set up the appropriate event data structures.

Setting the core position

The <coreRandomization> element specifies the spot or region to place the shower core. There are two distinct ways to specify where the shower core is placed, one array centric, which tends to be better suited to SD simulations, and one eye centric, which is better suited to FD simulations.

Setting an array centric core position

In this case the <coreRandomization> element contains sub-elements specifying the either a region from which to extract a random core position, or alternatively a list of specific core positions.

Choosing cores randomly around a specified point

Random core positions can be drawn from a region which you specify by defining the center and size of a "tile" in which the shower core should be placed. The shower core position is then drawn from a uniform random distribution inside the tile.

You can specify the center of the tile by either giving the UTM coordinates, like this:

<coreRandomization>
  <centerOfTile>
    <northing unit="meter"> 6081531 </northing>
    <easting unit="meter"> 461796 </easting>
    <altitude unit="m"> 1416 </altitude>
    <zone> 19  </zone>
    <band> H </band>
  </centerOfTile>

  <!-- size of tile specified here -->
</coreRandomization>

or by giving a station id, like this:

<coreRandomization>
  <centerOfTile>
    <stationAtCenter> 624 </stationAtCenter>
  </centerOfTile>

  <!-- size of tile specified here -->
</coreRandomization>

Currently tiles are rectangles, with the dimensions specified by northing and easting:

<coreRandomization>

  <!-- center of tile specified here -->

  <sizeOfTile>
    <deltaNorthing unit="meter"> 5000. </deltaNorthing>
    <deltaEasting unit="meter"> 5000. </deltaEasting>
  </sizeOfTile>
</coreRandomization>
Choosing cores centered at randomly chosen stations

You can instruct the EventGenerator to generate core positions randomly inside hexagons which are centered at stations chosen randomly from the list of stations commissioned at the current detector time. To do this, you just put the <useRandomStation> switch inside the <coreRandomization> element:

  <coreRandomization>
    <useRandomStation> 1 </useRandomStation>
  </coreRandomization>
Using a pre-defined list of core positions

Rather than having the EventGenerator choose core positions by throwing random numbers, you can specify a list of core positions you would like to use. This is done by placing a <listOfCorePositions> element within the <coreRandomization> element, and defining core positions therein:

  <coreRandomization>
    <listOfCorePositions>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479810  </easting>
       <altitude unit="m">   1400    </altitude>
       <zone> 19 </zone>
       <band> H </band>
      </core>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479820  </easting>
       <altitude unit="m">   1400    </altitude>
       <zone> 19 </zone>
       <band> H </band>
      </core>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479830  </easting>
       <altitude unit="m">   1400    </altitude>
       <zone> 19 </zone>
       <band> H </band>
      </core>

    </listOfCorePositions>
  </coreRandomization>

On each pass through the EventGenerator, the next core position from the list is chosen. When the list is exhausted, the EventGenerator sends the fwk::VModule::eBreakLoop condition to the RunController, thereby terminating the run. This means that if you want all core positions in the list to be used, then whatever loop contains your EventGenerator must specify a number greater than or equal to the number of cores in the list. One can also simply set <loop numTimes="unbounded">.

Note that rather than re-typing the <zone> and <band> elements, you can define an entity reference (or alias), as follows:

<!DOCTYPE EventGenerator [
<!ENTITY UTMData "<zone> 19 </zone>
                  <band> H </band>">
]>

and then replace each instance of

  <zone> 19 </zone>
  <band> H </band>

with &UTMData;. See the full example for more details.

Setting an eye centric core position

To specify the core position in the eye centric manner, the <coreRandomization> element must contain subelements indicating the eye and telescope of interest, the maximum distance a shower can land from the telescope , a switch indicating whether this distance should be energy dependent, and the azimuthal width of the region in which the shower may be thrown. For example:

<coreRandomization>
  <eye> 1 </eye>
  <telescope> 4 </telescope>  <!-- This also supports 'fractions' of telescopes  -->
  <maxdist unit ="meter"> 7500.0 </maxdist>
  <rMaxEnergyDependent> no </rMaxEnergyDependent>
  <deltaphi unit="deg"> 5 </deltaphi>
  <altitude unit="meter"> 1419 </altitude>
</coreRandomization>

Setting UTM cores from air shower MC prgram

In CORSIKA there are options to sample pre-defined lists of core positions for individual showers. This is used, e.g. to save only the (tiny) fraction of ground particles and Cherenkov photons actually in the vicinity of Auger detectors. The amount of storage space saved in this approach can be tremendous, corresponding to the fill factors of about 4e-6.

In CORSIKA you may use the COREPOS or AUGERHIT options to predefine a set of core positions. Use core positions in UTM format, thus northing, easting and an observation altitude corresponding to the Auger site. In CORSIKA you should also rotate the particle output from the default CORSIKA definition into the one used by Auger using the ARRANG -92.08 option.

The EventGenerator will then issue all the cores saved in an input data file until all core positions have been used. In the end a eBreakLoop is issued. In order to work best in this mode, use an unbounded outer loop that contains the EventGenerator.

In order to configure EventGenerator for this mode use:

<coreRandomization>
 <useUTMCoresFromAirShowerMC/>
</coreRandomization>

Full example configuration, array centric with randomized core position

<EventGenerator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation='/some_path/EventGenerator.xsd'>

<eventIdentifier>
  <libraryIdentifier> Test </libraryIdentifier>
  <format> Library_%1%:Run_%2%:Shower_%3%:Use_%4% </format>
</eventIdentifier>

<eventTime> 2004-01-01T04:33:12.000001500 </eventTime>

<mode> SD </mode>

<coreRandomization>

  <centerOfTile>
    <stationAtCenter> 624 </stationAtCenter>
  </centerOfTile>

  <sizeOfTile>
    <deltaNorthing unit="meter"> 5000. </deltaNorthing>
    <deltaEasting unit="meter"> 5000. </deltaEasting>
  </sizeOfTile>

</coreRandomization>

</EventGenerator>

Full example configuration, with pre-defined core positions taken from a list

<!DOCTYPE EventGenerator [
<!ENTITY UTMData "<zone> 19 </zone>
                  <band> H </band>">
]>

<EventGenerator>

  <!-- Specify what you are planning to simulate: SD, FD, Hy -->
  <mode> SD </mode>

  <!-- set the event identifier -->
  <eventIdentifier>
    <libraryIdentifier> Test </libraryIdentifier>
    <format> Library_%1%:Run_%2%:Shower_%3%:Use_%4% </format>
  </eventIdentifier>

  <!-- Specify a list of core positions -->
  <coreRandomization>

    <listOfCorePositions>

      <!-- UTMData is an entity ref, defined at top of the file -->
      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479810  </easting>
       <altitude unit="m">   1400    </altitude>
       &UTMData;
      </core>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479820  </easting>
       <altitude unit="m">   1400    </altitude>
       &UTMData;
      </core>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479830  </easting>
       &UTMData;
      </core>

      <core>
       <northing unit="m"> 6080154 </northing>
       <easting unit="m">  479840  </easting>
       &UTMData;
      </core>

    </listOfCorePositions>

  </coreRandomization>

  <!-- Time stamp of the core impact on ground -->
  <eventTime> 2004-01-01T04:33:12.5 </eventTime>

</EventGenerator>

Full example, eye centric

<EventGenerator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation='/some_path/EventGenerator.xsd'>

<eventIdentifier>
  <libraryIdentifier> Test </libraryIdentifier>
  <format> Library_%1%:Run_%2%:Shower_%3%:Use_%4% </format>
</eventIdentifier>

<eventTime> 2004-01-01T04:33:12.000001500 </eventTime>

<mode> FD </mode>

<coreRandomization>
  <eye> 1 </eye>
  <telescope> 4 </telescope>
  <maxdist unit ="meter"> 7500.0 </maxdist>
  <rMaxEnergyDependent> no </rMaxEnergyDependent>
  <deltaphi unit="deg"> 5 </deltaphi>
  <altitude unit="meter"> 1419 </altitude>
</coreRandomization>

</EventGenerator>

Common error messages

The EventGenerator configuration file is policed by an XML Schema file, which will generate an error message and throw an exception if you make a mistake. Some people find these errors a bit cryptic, so below are some example error messages together with the offending configuration data.

This configuration fragment:

  <centerOfTile>
    <northing unit="meter"> 6081531 </northing>
    <easting unit="meter"> 461796 </easting>
    <altitude unit="meter"> 1416 </altitude>
    <zone> 19 </zone>
    <band> H </band>

    <stationAtCenter> 624 </stationAtCenter>
  </centerOfTile>

will generate an error like this:

Reader/ReaderErrorReporter.cc:95: error: Error at file "/home/tpaul/offlineApps/testEventGen/sd/EventGenerator.xml", line 79, column 18
   Message: Element 'stationAtCenter' is not valid for content model: '(((northing,easting,altitude,zone),band)|stationAtCenter)'

This is because you have to specify the tile center by UTM or by station id, not both.

This configuration fragment:

<coreRandomization>

  <centerOfTile>
    <stationAtCenter> 624 </stationAtCenter>
  </centerOfTile>

  <sizeOfTile>
    <deltaNorthing unit="meter"> 5000. </deltaNorthing>
    <deltaEasting unit="meter"> 5000. </deltaEasting>
  </sizeOfTile>

  <eye> 1 </eye>
  <telescope> 4 </telescope>
  <maxdist unit ="meter"> 7500.0 </maxdist>
  <rMaxEnergyDependent> no </rMaxEnergyDependent>
  <deltaphi unit="deg"> 5 </deltaphi>
  <altitude unit="meter"> 1419 </altitude>

</coreRandomization>

will generate an error like:

Reader/ReaderErrorReporter.cc:95: error: Error at file "/home/tpaul/offlineApps/testEventGen/sd/EventGenerator.xml", line 93, column 21
   Message: Element 'eye' is not valid for content model: '((centerOfTile,sizeOfTile)|((eye,telescope,maxdist,rMaxEnergyDependent),deltaphi))'

You cannot specify core position in both eye-centric and array-centric form. Pick one.

Definition at line 28 of file EventGenerator.h.

Member Typedef Documentation

typedef std::list<boost::tuple<double, double, double, int, char> > EventGeneratorOG::EventGenerator::CoreList
private

Definition at line 82 of file EventGenerator.h.

Member Enumeration Documentation

Enumerator
eUndefined 
eSD 
eFD 
eHy 
eMD 
eXD 
eXH 

Definition at line 30 of file EventGenerator.h.

enum fwk::VModule::InfoLevel
protectedinherited
Enumerator
eInfoNone 
eInfoFinal 
eInfoIntermediate 
eInfoDebug 

Definition at line 125 of file VModule.h.

enum fwk::VModule::ResultFlag
inherited

Flag returned by module methods to the RunController.

Enumerator
eSuccess 

Report success to RunController.

eFailure 

Report failure to RunController, causing RunController to terminate execution.

eBreakLoop 

Break current loop. It works for nested loops too!

eContinueLoop 

Skip remaining modules in the current loop and continue with next iteration of the loop.

Definition at line 60 of file VModule.h.

Different types of version info that can be retrieved from GetVersionInfo.

Enumerator
eFilename 
eRevisionNumber 
eDate 
eTime 
eLastEditor 

Definition at line 110 of file VModule.h.

Constructor & Destructor Documentation

EventGeneratorOG::EventGenerator::EventGenerator ( )
inline

Definition at line 41 of file EventGenerator.h.

virtual EventGeneratorOG::EventGenerator::~EventGenerator ( )
inlinevirtual

Definition at line 42 of file EventGenerator.h.

Member Function Documentation

int EventGeneratorOG::EventGenerator::FindClosestStationFromPoint ( const utl::Point pt,
const rdet::RDetector rDet,
const double  maxDistanceFactor 
)
private
VModule::ResultFlag EventGeneratorOG::EventGenerator::Finish ( )
virtual

Finish: invoked at end of the run (NOT end of the event)

This method is for things that should be done at the end of the run (for example, closing files or writing out histograms) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 760 of file EventGenerator.cc.

References ERROR, io::eSuccess, and utl::String::Plural().

void EventGeneratorOG::EventGenerator::FlagHoleStations ( evt::Event event) const
private
boost::tuple< double, double, double > EventGeneratorOG::EventGenerator::GenerateArrayCentricListedCore ( )
private

Definition at line 989 of file EventGenerator.cc.

boost::tuple< double, double > EventGeneratorOG::EventGenerator::GenerateArrayCentricRandomizedCore ( )
private

Definition at line 803 of file EventGenerator.cc.

boost::tuple< double, double > EventGeneratorOG::EventGenerator::GenerateArrayCentricRandomizedCoreAroundRandomStation ( )
private
boost::tuple< double, double > EventGeneratorOG::EventGenerator::GenerateCoreAroundStation ( )
private
boost::tuple< double, double > EventGeneratorOG::EventGenerator::GenerateEyeCentricCore ( const double  energy)
private
boost::tuple< double, double, double > EventGeneratorOG::EventGenerator::GenerateSphereCentricCore ( evt::ShowerSimData shower)
private
utl::Vector EventGeneratorOG::EventGenerator::GetCoreShiftForRadioSimulation ( evt::RadioSimulation radioSim)
private
sdet::Station::StationIdCollection EventGeneratorOG::EventGenerator::GetInfillCrown ( const sdet::Station centralStation)
private
std::string fwk::VModule::GetResultFlagByName ( const ResultFlag  flag)
staticinherited
utl::Stopwatch& fwk::VModule::GetStopwatch ( )
inlineinherited

Definition at line 106 of file VModule.h.

References fwk::VModule::fStopwatch.

const utl::Stopwatch& fwk::VModule::GetStopwatch ( ) const
inlineinherited

Definition at line 107 of file VModule.h.

References fwk::VModule::fStopwatch.

std::string fwk::VModule::GetVersionInfo ( const VersionInfoType  v) const
inherited
VModule::ResultFlag EventGeneratorOG::EventGenerator::Init ( )
virtual

Initialize: invoked at beginning of run (NOT beginning of event)

This method is for things that should be done once at the beginning of a run (for example, booking histograms, performing calculations that need to be done only once, initializing parameters) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 106 of file EventGenerator.cc.

References utl::deg, UnivFitterKG::eFD, UnivFitterKG::eSD, io::eSuccess, file, utl::Branch::Get(), utl::UTMPoint::GetBand(), utl::Branch::GetChild(), utl::Branch::GetData(), utl::UTMPoint::GetEasting(), utl::Branch::GetFirstChild(), utl::UTMPoint::GetHeight(), utl::Branch::GetNextSibling(), utl::UTMPoint::GetNorthing(), sdet::Station::GetPosition(), utl::Branch::GetTopBranch(), utl::UTMPoint::GetZone(), INFO, km, utl::m, and WARNING.

void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().

double EventGeneratorOG::EventGenerator::MaximumRp ( const double  lgE)
private

Definition at line 1202 of file EventGenerator.cc.

References utl::kilometer, max, and G4StationSimulatorOG::p.

double EventGeneratorOG::EventGenerator::Rcutoff ( const double  lgE)
private

energy dependent trigger surface

returns radius Rcut in meters above which the fraction of triggered events amounts to less than 1% of the total number, i.e.

\[ \frac{\int_{R_{\rm cut}(E)}^\infty\varepsilon(R,\,E)R^2{\rm d}R} {\int_0^\infty\varepsilon(R,\,E)R^2{\rm d}R} < 0.01 \]

trigger efficiency $\varepsilon(R,\,E)$ is taken from GAP-2004-015.

Date
Jun 3 2004
Author
Michael Unger
Parameters
lgElog_10(E/eV)

Definition at line 1160 of file EventGenerator.cc.

References max, and galactic::meter.

double EventGeneratorOG::EventGenerator::RcutoffCherenkovHECO ( const double  lgE)
private

Definition at line 1173 of file EventGenerator.cc.

References INFO, and galactic::meter.

EventGeneratorOG::EventGenerator::REGISTER_MODULE ( "EventGeneratorOG"  ,
EventGenerator   
)
private
VModule::ResultFlag EventGeneratorOG::EventGenerator::Run ( evt::Event event)
virtual

Run: invoked once per event.

This method is for things that should be done once per event {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 428 of file EventGenerator.cc.

References RdGeoCeLDFFitter::c, UnivFitterKG::eFD, sdet::SDetectorConstants::eInfill750, ERROR, UnivFitterKG::eSD, io::eSuccess, utl::UTMPoint::GetEasting(), utl::ReferenceEllipsoid::GetECEF(), evt::ShowerSimData::GetEnergy(), evt::RadioSimulation::GetEventTime(), RdREASSimPreparatorNG::GetInfillCrown(), evt::RadioSimulation::GetLocalCoordinateSystem(), utl::UTMPoint::GetNorthing(), evt::ShowerSimData::GetNSimCores(), utl::UTMPoint::GetPoint(), evt::ShowerSimData::GetPosition(), sdet::Station::GetPosition(), evt::ShowerSimData::GetRadioSimulation(), evt::ShowerSimData::GetShowerNumber(), evt::ShowerSimData::GetShowerRunId(), evt::ShowerSimData::GetSimCore(), sdet::SDetector::GetStation(), utl::BasicVector< HepVector >::GetX(), evt::Event::HasFEvent(), evt::Event::HasMEvent(), evt::ShowerSimData::HasRadioSimulation(), evt::Event::HasSEvent(), evt::Event::HasSimShower(), evt::ShowerSimData::HasTimeStamp(), INFO, utl::m, evt::ShowerSimData::MakeGeometry(), evt::Event::MakeSimShower(), evt::ShowerSimData::MakeTimeStamp(), EventGeneratorOG::MyPow10(), utl::s, evt::RadioSimulation::SetCorePosition(), sevt::Header::SetId(), fevt::Header::SetId(), mevt::Header::SetId(), evt::Header::SetId(), sevt::Header::SetTime(), mevt::Header::SetTime(), fevt::Header::SetTime(), and evt::Header::SetTime().

ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited

Member Data Documentation

double EventGeneratorOG::EventGenerator::fAltitude = 0
private

Definition at line 78 of file EventGenerator.h.

char EventGeneratorOG::EventGenerator::fBand = '\0'
private

Definition at line 80 of file EventGenerator.h.

CoreList EventGeneratorOG::EventGenerator::fCorePositions
private

Definition at line 83 of file EventGenerator.h.

CoreList::iterator EventGeneratorOG::EventGenerator::fCorePositionsIt
private

Definition at line 84 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fDeltaEasting = 0
private

Definition at line 75 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fDeltaNorthing = 0
private

Definition at line 74 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fDeltaPhi = 0
private

Definition at line 116 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fEasting = 0
private

Definition at line 77 of file EventGenerator.h.

utl::TimeStamp EventGeneratorOG::EventGenerator::fEndDate
private

Definition at line 91 of file EventGenerator.h.

unsigned int EventGeneratorOG::EventGenerator::fEventNumber = 0
private

Definition at line 98 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fEyeCentric = false
private

Definition at line 103 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fEyeid = 0
private

Definition at line 111 of file EventGenerator.h.

std::string EventGeneratorOG::EventGenerator::fFormat
private

Definition at line 96 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fGeometryCheckCherenkovHECO = false
private

Definition at line 117 of file EventGenerator.h.

int fwk::VModule::fInfoLevel = 0
protectedinherited
bool EventGeneratorOG::EventGenerator::fInSphere = false
private

Definition at line 104 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fInvalidateComponents = false
private

Definition at line 122 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fInvalidateData = false
private

Definition at line 121 of file EventGenerator.h.

std::string EventGeneratorOG::EventGenerator::fLibraryIdentifier
private

Definition at line 95 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fLimitRp = false
private

Definition at line 107 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fMaxDist = 0
private

Definition at line 114 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fMaximumDistance = 10
private

Definition at line 126 of file EventGenerator.h.

TH2D* EventGeneratorOG::EventGenerator::fMaxVA = nullptr
private

Definition at line 118 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fMinDist = 0
private

Definition at line 113 of file EventGenerator.h.

EMode EventGeneratorOG::EventGenerator::fMode = eUndefined
private

Definition at line 69 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fNEvents = 0
private

Definition at line 87 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fNorthing = 0
private

Definition at line 76 of file EventGenerator.h.

utl::RandomEngine* EventGeneratorOG::EventGenerator::fRandomEngine = nullptr
private

Definition at line 128 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fRMaxEnergyDependent = false
private

Definition at line 115 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fRpTooLarge = false
private

Definition at line 109 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fSampleTimes = false
private

Definition at line 92 of file EventGenerator.h.

std::vector<unsigned int> EventGeneratorOG::EventGenerator::fSdIdFormat
private

Definition at line 97 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fSimCoreCount = 0
private

Definition at line 102 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fSkipUpgoing = false
private

Definition at line 106 of file EventGenerator.h.

boost::tuple<double, double, double, int, char> EventGeneratorOG::EventGenerator::fSphereCenter
private

Definition at line 110 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fSphereRadius = 0
private

Definition at line 105 of file EventGenerator.h.

utl::TimeStamp EventGeneratorOG::EventGenerator::fStartDate
private

Definition at line 90 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fStationId = 0
private

Definition at line 73 of file EventGenerator.h.

double EventGeneratorOG::EventGenerator::fTelid = 0
private

Definition at line 112 of file EventGenerator.h.

std::list<double> EventGeneratorOG::EventGenerator::fTimeList
private

Definition at line 93 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fTimeOrdered = false
private

Definition at line 88 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fTimeRandomized = false
private

Definition at line 89 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUpgoingShower = false
private

Definition at line 108 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUseRadioCorePosition = false
private

Definition at line 124 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUseRadioEventTime = false
private

Definition at line 125 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUseRandomInfillStation = false
private

Definition at line 72 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUseRandomStation = false
private

Definition at line 71 of file EventGenerator.h.

bool EventGeneratorOG::EventGenerator::fUseSimCores = false
private

Definition at line 101 of file EventGenerator.h.

int EventGeneratorOG::EventGenerator::fZone = -1
private

Definition at line 79 of file EventGenerator.h.


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.