#ifndef _AERAevent_h_ #define _AERAevent_h_ #include "Station.h" /** \class AERAevent \brief The AERAevent class stores all relevant event information and a vector of aerarootio::station instances. \author S. Mathys, University of Wuppertal */ class AERAevent : public TObject { public: /** Standard constructor */ AERAevent(); /** Standard deconstructor */ ~AERAevent(); /** Standard copy constructor, necessary for CDAS */ AERAevent(const AERAevent &); /** Get the run id stored in the event header */ Int_t getAeraEventRunId(); /** Get the file id stored in the binary file name ending, stored in the library in addition to the header in every event header */ Int_t getAeraEventFileId(); /** Get the event id stored in the event header */ Int_t getAeraEventEventId(); /** Get the running event number as created by t3_maker */ Int_t getAeraEventRunningEventId(); /** Get the id of the local station with the earliest time */ Int_t getAeraEventFirstLsId(); /** Get the time in seconds (GPS based) of the local station with the earliest time stored in the event header */ UInt_t getAeraEventSeconds(); /** Get the time in nanoseconds of the local station with the earliest time stored in the event header */ Int_t getAeraEventNanoSeconds(); /** Get the event type stored in the event header. Value is taken to distinguish between the different trigger flags on event level */ Int_t getAeraEventEventType(); /** Get the event version of the DAQ AeraEvent stored in the event header */ Int_t getAeraEventEventVersion(); /** Check if the the event trigger flag is set to Aevb */ UInt_t getAeraEventTriggerIsAevb(); /** Check if the the event trigger flag is set to self */ UInt_t getAeraEventTriggerIsSelf(); /** Check if the the event trigger flag is set to calibration */ UInt_t getAeraEventTriggerIsCalibration(); /** Check if the the event trigger flag is set to triggered by local station electronics, e.g. scintillator */ UInt_t getAeraEventTriggerIsScintillator(); /** Check if the the event trigger flag is set to externally triggered by SD */ UInt_t getAeraEventTriggerIsSD(); /** Check if the the event trigger flag is set to triggered by GUI */ UInt_t getAeraEventTriggerIsGUI(); /** Check if the the event trigger flag is set to externally triggered by FD */ UInt_t getAeraEventTriggerIsFD(); /** Check if the the event trigger flag is set to externally triggered by HEAT */ UInt_t getAeraEventTriggerIsHEAT(); /** Check if the the event trigger flag is set to externally triggered by AERAlet */ UInt_t getAeraEventTriggerIsAERAlet(); /** Check if the the event trigger flag is set to triggered by Airplane */ UInt_t getAeraEventTriggerIsAirplane(); /** Check if the the event trigger flag is set to triggered periodically, the regular 10s or 100s trigger */ /** Convention in the DAQ: T3MinBias */ UInt_t getAeraEventTriggerIsPeriodic(); /** Check if the the event trigger flag is set to triggered by PassThrough. The event is passed without filters, e.g. cone algorithm */ /** For the Dutch data, every 40000th event is passed, for the German data randomly 1 out of 1000. */ /** Convention in the DAQ: T3Random */ UInt_t getAeraEventTriggerIsPassThrough(); /** Get the number of local stations which participated in the event. This is equal to the number of stations written into the binary file. */ Int_t getAeraEventLsCount(); /** Get the additional header information stored in the binary event header at a certain position in the vEVadd_info vector */ Int_t getAeraEventAddInfo(Int_t add_info); /** Get the event status. 0: event is corrupt, 2: no active station with data is inside the event, 0x10: event is radio radio merged in CDAS */ Short_t getAeraEventStatus(); /** Get the pointer to a station inside the vector vStations */ aerarootiostation::Station* getAeraEventStation(Int_t Station); /** Get the size of the vStations vector */ int getAeraEventStationsize(); /** Set the run id stored in the event header */ void setAeraEventRunId(Int_t set_EVrun_id); /** Set the file id stored in the binary file name ending, stored in the library in addition to the header in every event header */ void setAeraEventFileId(Int_t set_EVfile_id); /** Set the event id stored in the event header */ void setAeraEventEventId(Int_t set_EVevent_id); /** Set the running event number as created by t3_maker */ void setAeraEventRunningEventId(Int_t set_EVt3_event_id); /** Set the id of the local station with the earliest time */ void setAeraEventFirstLsId(Int_t set_EVfirst_ls_id); /** Set the time in seconds (GPS based) of the local station with the earliest time stored in the event header */ void setAeraEventSeconds(UInt_t set_EVseconds); /** Set the time in nanoseconds of the local station with the earliest time stored in the event header */ void setAeraEventNanoSeconds(Int_t set_EVnanoseconds); /** Set the event type stored in the event header. Value is taken to distinguish between the different trigger flags on event level */ void setAeraEventEventType(Int_t set_EVevent_type); /** Set the event version of the DAQ AeraEvent stored in the event header */ void setAeraEventEventVersion(Int_t set_EVevent_version); /** Set the event trigger flag to Aevb */ void setAeraEventTriggerIsAevb(UInt_t set_EVtriggersource_Aevb); /** Set the event trigger flag to self */ void setAeraEventTriggerIsSelf(UInt_t set_EVtriggersource_Self); /** Set the event trigger flag to calibration */ void setAeraEventTriggerIsCalibration(UInt_t set_EVtriggersource_Calibration); /** Set the event trigger flag to triggered by local station electronics, e.g. scintillator */ void setAeraEventTriggerIsScintillator(UInt_t set_EVtriggersource_Scintillator); /** Set the event trigger flag to externally triggered by SD */ void setAeraEventTriggerIsSD(UInt_t set_EVtriggersource_SD); /** Set the event trigger flag to triggered by GUI */ void setAeraEventTriggerIsGUI(UInt_t set_EVtriggersource_GUI); /** Set the event trigger flag to externally triggered by FD */ void setAeraEventTriggerIsFD(UInt_t set_EVtriggersource_FD); /** Set the event trigger flag to externally triggered by HEAT */ void setAeraEventTriggerIsHEAT(UInt_t set_EVtriggersource_HEAT); /** Set the event trigger flag to externally triggered by AERAlet */ void setAeraEventTriggerIsAERAlet(UInt_t set_EVtriggersource_AERAlet); /** Set the event trigger flag to triggered by Airplane */ void setAeraEventTriggerIsAirplane(UInt_t set_EVtriggersource_Airplane); /** Set the event trigger flag to triggered periodically, the regular 10s or 100s trigger */ /** Convention in the DAQ: T3MinBias */ void setAeraEventTriggerIsPeriodic(UInt_t set_EVtriggersource_Periodic); /** Set the event trigger flag to triggered by PassThrough. The event is passed without filters, e.g. cone algorithm */ /** For the Dutch data, every 40000th event is passed, for the German data randomly 1 out of 1000. */ /** Convention in the DAQ: T3Random */ void setAeraEventTriggerIsPassThrough(UInt_t set_EVtriggersource_PassThrough); /** Set the number of local stations which participated in the event. This is equal to the number of stations written into the binary file. */ void setAeraEventLsCount(Int_t set_EVls_count); /** Push a new value of the additional header information stored in the event header into the vEVadd_info vector */ void setAeraEventAddInfo(Int_t set_EVadd_info); /** Set the event status. 0: event is corrupt, 2: no active station with data is inside the event, 0x10: event is radio radio merged in CDAS */ void setAeraEventStatus(Short_t set_EVstatus); /** This function stores a new instance of a station into the vStations vector by a push_back */ void setAeraEventStation(); /** This function stores an already existing instance of a station into the vStations vector by a push_back. Necessary for the CDAS radio radio merging. */ void setAeraEventStationRadioMerging(aerarootiostation::Station StationRadioMerging); /** Clear the vStations vector */ void clearAeraEventStation(); private: Int_t EVrun_id; Int_t EVfile_id; Int_t EVevent_id; Int_t EVt3_event_id; Int_t EVfirst_ls_id; UInt_t EVseconds; Int_t EVnanoseconds; Int_t EVevent_type; Int_t EVevent_version; UInt_t EVtriggersource_Aevb; UInt_t EVtriggersource_Self; UInt_t EVtriggersource_Calibration; UInt_t EVtriggersource_Scintillator; UInt_t EVtriggersource_SD; UInt_t EVtriggersource_GUI; UInt_t EVtriggersource_FD; UInt_t EVtriggersource_HEAT; UInt_t EVtriggersource_AERAlet; UInt_t EVtriggersource_Airplane; UInt_t EVtriggersource_Periodic; UInt_t EVtriggersource_PassThrough; Int_t EVls_count; Short_t EVstatus; /** Store the additional header information */ std::vector vEVadd_info; /** Store the aerarootiostation::Station objects */ std::vector vStations; ClassDef( AERAevent,4 ) }; #endif // _AERAevent_h_