Warning, file /include/DDDigi/DigiOutputAction.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef DDDIGI_DIGIOUTPUTACTION_H
0014 #define DDDIGI_DIGIOUTPUTACTION_H
0015
0016
0017 #include <DDDigi/DigiContainerProcessor.h>
0018
0019
0020 namespace dd4hep {
0021
0022
0023 namespace digi {
0024
0025
0026 class DigiOutputAction;
0027
0028
0029
0030
0031
0032
0033
0034
0035 class DigiOutputAction : public DigiContainerSequenceAction {
0036 public:
0037 protected:
0038
0039 std::string m_processor_type { };
0040
0041 std::map<std::string, std::string> m_containers { };
0042
0043 std::string m_output { };
0044
0045 bool m_sequence_streams { true };
0046
0047
0048 long num_events { -1 };
0049
0050 long event_count { 0 };
0051
0052 long fseq_count { 0 };
0053
0054 protected:
0055
0056 DDDIGI_DEFINE_ACTION_CONSTRUCTORS(DigiOutputAction);
0057
0058
0059 virtual ~DigiOutputAction();
0060
0061 public:
0062
0063 DigiOutputAction(const kernel_t& kernel, const std::string& nam);
0064
0065
0066 virtual void initialize() override;
0067
0068
0069 virtual void finalize() override;
0070
0071
0072 virtual bool have_output() const = 0;
0073
0074
0075 virtual void open_output() const = 0;
0076
0077
0078 virtual void close_output() const = 0;
0079
0080
0081 virtual void commit_output() const = 0;
0082
0083
0084 virtual std::string next_stream_name();
0085
0086
0087 virtual void adopt_processor(DigiContainerProcessor* action,
0088 const std::string& container) override;
0089
0090
0091 virtual void adopt_processor(DigiContainerProcessor* action,
0092 const std::vector<std::string>& containers) override;
0093
0094
0095 virtual void execute(context_t& context) const override;
0096 };
0097 }
0098 }
0099 #endif