1 #ifndef _io_CorsikaShowerFile_h_
2 #define _io_CorsikaShowerFile_h_
4 #include <io/RawCorsikaFile.h>
5 #include <io/CorsikaShowerFileParticleIterator.h>
6 #include <io/CorsikaIOException.h>
7 #include <io/VEventFile.h>
9 #include <utl/CoordinateSystemPtr.h>
10 #include <utl/Branch.h>
21 class GaisserHillas6Parameter;
45 void Close()
override;
71 const bool first,
const bool noException =
false);
void SetHeaderTrailer(evt::Event &event, double &timeShift, evt::GaisserHillas6Parameter &gh, bool &haveGH, double &zenith, const Corsika::EventHeader &header, const Corsika::EventTrailer &trailer)
Status Read(evt::Event &event) override
read current event advance cursor by 1
Status ReadProfile(evt::ShowerSimData &shower, const double zenith)
Status ScanGroundFile(const std::string &name, Corsika::RawFile &raw, PositionVector &posEVTH, PositionVector &posEVTE, const bool first, const bool noException=false)
Collect information about ground file.
double GetDepthVsHeight(const double h) const
Return vertical atmospheric depth as a function of height, according to the parameters stored in the ...
void Write(const evt::Event &event) override
Status ScanSteerFile(const std::string &name)
Mode
Available open modes.
CorsikaShowerFileParticleIterator * fParticleIterator
unsigned int fObservationLevel
std::vector< double > fShowerTheta
virtual ~CorsikaShowerFile()
Status GotoPosition(const unsigned int position) override
goto by position in the file
double fCherenkovBandwidthMin
std::map< unsigned int, unsigned int > IdToPositionMap
Interface class to access Shower Simulated parameters.
Status ScanLongFile(const std::string &name)
Read longitudinal profile.
Class representing a document branch.
Status
Return code for seek operation.
double fCoordinateRotation
void SetRunHeader(const bool first, const Corsika::RunHeader &header)
void SetMagneticFieldDeclination(const double d)
std::string fRefCoordinateSystemName
void UseRealisticMagneticDeclination(const bool v)
std::vector< double > fShowerEnergy
double fMagneticDeclination
std::vector< double > fShowerPhi
CorsikaShowerFileParticleIterator * GetCorsikaShowerFileParticleIterator() const
Get CorsikaShowerFileParticleIterator for testing.
Read data from the output of CORSIKA.
Corsika::AtmosphereParameters fAtmPars
Implementation of the VShowerFileParticleIterator for an Corsika generated shower file...
void SetReadLongFile(const bool f)
PositionVector fPositionOfEventTrailer
void Open(const std::string &fileName, const Mode mode=eRead, utl::Branch *const b=nullptr) override
std::map< utl::AttributeMap, io::Corsika::RawFile > fCherenkovFile
Status ReadSteerFile(evt::Event &event)
Read steering file.
std::map< utl::AttributeMap, CorsikaShowerFileParticleIterator * > fCherenkovIterator
std::map< utl::AttributeMap, PositionVector > fPositionOfCherenkovEventTrailer
PositionVector fPositionToRaw
double fCherenkovBandwidthMax
Read REAS simulation output.
IdToPositionMap fIdToPosition
Read REASH5 simulation output.
bool fUseRealisticMagneticDeclination
Status FindEvent(const unsigned int eventId) override
seek Event id set cursor there
std::vector< int > fMultiCoreSelection
unsigned int fNumberOfEvents
void SetEventHeader(const bool first, const unsigned int eventsSoFar, const Corsika::EventHeader &eh)
int GetNEvents() override
std::vector< Corsika::RawFile::PositionType > PositionVector
double GetDensityVsHeight(const double height) const
Return the air density as a function of height, according to the parameters stored in the file...
io::Corsika::RawFile fRawFile
Gaisser-Hillas with 6 parameters (CORSIKA)
unsigned int fCurrentPosition
std::map< utl::AttributeMap, PositionVector > fPositionToCherenkovRaw
double GetSlantDepthCurved(const double hObs, const double theta, const double h) const
Return slant atmospheric depth as a function of height, according to the parameters stored in the fil...
event trailer struct for Corsika files