UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
psc_accumulator_1st.hpp
1 /* psc_accumulator_1st.hpp */
2 /* $Id$ */
3 #ifndef __psc_accumulator_1st_hpp
4 #define __psc_accumulator_1st_hpp
5 
6 #include <s2proc/psc_accumulator.hpp>
7 
9 namespace psc
10 {
13  class Accumulator1st : public Accumulator
14  {
15  public:
16 
19  Accumulator1st(const dba::Seismic &db, const Parameters &params);
20 
22  virtual ~Accumulator1st();
23 
25  bool operator()(const WaveField &second_order_row,
26  WaveField &accumulated_row) const;
27 
28  protected:
29 
32  {
33  int id1, id2, id3, id4;
34  Trace::TimeT dt;
35  Trace::AmplT w;
36  bool used;
37 
38  static bool id1_comp(const RowsTimeShift &row1, const RowsTimeShift &row2)
39  {return row1.id1 < row2.id1;}
40  };
41 
43  Trace::Header m_def_hdr;
44 
45  bool accumulate(const int stride,
46  std::vector<RowsTimeShift> &rows_time_shifts,
47  WaveField &accumulated_row,
48  bool *all_are_used_flag) const;
49 
50  bool accumulate_row(const int row_id,
51  const unsigned int stride,
52  const Trace::TimeT time_shift,
53  WaveField &accumulated_row) const;
54 
55  size_t get_best_row_id(const std::vector<RowsTimeShift> &rows_time_shifts,
56  bool *all_are_used_flag) const;
57  };
58 }; // namespace psc
59 
60 #endif /* psc_accumulator_1st.hpp */
float AmplT
Definition: trace.hpp:21
Accumulator1st(const dba::Seismic &db, const Parameters &params)
bool operator()(const WaveField &second_order_row, WaveField &accumulated_row) const
float TimeT
Definition: trace.hpp:22
Definition: psc_accumulator_1st.hpp:13
Definition: psc_accumulator_1st.hpp:31
virtual ~Accumulator1st()
Definition: wave_field.hpp:13
Definition: trace.hpp:29
Definition: psc_accumulator.hpp:16
Definition: psc_accumulator.hpp:21
Definition: dba_seismic.hpp:19