ODIN
epinavcorr.h
1 /***************************************************************************
2  epinavcorr.h - description
3  -------------------
4  begin : Fr Sep 19 2008
5  copyright : (C) 2000-2021 by Thies Jochimsen
6  email : thies@jochimsen.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef RECOEPINAVCORR_H
19 #define RECOEPINAVCORR_H
20 
21 #include "step.h"
22 
23 class RecoEpiNavScan : public RecoStep {
24 
25  public:
26 
27  static void modify4blackboard(RecoCoord& coord) { // index for blackboard
28 // coord.set_uniform_mode(RecoIndex::ignore);
29 // coord.set_mode(RecoIndex::separate, echo, channel, epi); // the three coordinates relevant to navigators, 'epi' will be used for the echo-train index
30 
31  coord.set_mode(RecoIndex::ignore, line, freq); // irrelevant to EPI navigator correction
32  coord.set_mode(RecoIndex::separate, echo); // override collected mode
33  }
34 
35 
36 
37  private:
38  // implementing virtual functions of RecoStep
39  STD_string label() const {return "epinavscan";}
40  STD_string description() const {return "Calculate and post data for Siemens EPI phase correction";}
41  bool process(RecoData& rd, RecoController& controller);
42  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,echo,readout);}
43  void modify_coord(RecoCoord& coord) const {}
44  bool query(RecoQueryContext& context);
45  RecoStep* allocate() const {return new RecoEpiNavScan;}
46  void init() {}
47 
48 };
49 
50 
52 
53 
54 class RecoEpiNavCorr : public RecoStep {
55 
56  // implementing virtual functions of RecoStep
57  STD_string label() const {return "epinavcorr";}
58  STD_string description() const {return "Apply Siemens EPI phase correction";}
59  bool process(RecoData& rd, RecoController& controller);
60  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
61  void modify_coord(RecoCoord& coord) const {}
62  RecoStep* allocate() const {return new RecoEpiNavCorr;}
63  void init() {}
64 
65 };
66 
67 
68 
69 #endif
70 
epinavcorr: Apply Siemens EPI phase correction
Definition: epinavcorr.h:54
epinavscan: Calculate and post data for Siemens EPI phase correction
Definition: epinavcorr.h:23
static RecoCoord coord_with_mode(RecoIndex::indexMode m, recoDim d1=n_recoDims, recoDim d2=n_recoDims, recoDim d3=n_recoDims, recoDim d4=n_recoDims, recoDim d5=n_recoDims, recoDim d6=n_recoDims, recoDim d7=n_recoDims, recoDim d8=n_recoDims)
Definition: index.h:254
RecoCoord & set_mode(RecoIndex::indexMode m, recoDim d1=n_recoDims, recoDim d2=n_recoDims, recoDim d3=n_recoDims, recoDim d4=n_recoDims, recoDim d5=n_recoDims, recoDim d6=n_recoDims, recoDim d7=n_recoDims, recoDim d8=n_recoDims)
Definition: index.h:238