driftcorr.h
1 /***************************************************************************
2  driftcorr.h - description
3  -------------------
4  begin : Thu Mar 1 2012
5  copyright : (C) 2000-2015 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 RECODRIFTCORR_H
19 #define RECODRIFTCORR_H
20 
21 #include "step.h"
22 
23 static const char* posted_repdrift_str="fieldrepdrift";
24 
25 
26 static void modify4repdrift(RecoCoord& coord);
27 
28 
29 class RecoDriftCalc: public RecoStep {
30 
31  // implementing virtual functions of RecoStep
32  STD_string label() const {return "driftcalc";}
33  STD_string description() const {return "Calculate field drift for each repetition";}
34  bool process(RecoData& rd, RecoController& controller);
35  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,cycle,slice,echo,epi,channel,line3d,line,readout);}
36  void modify_coord(RecoCoord& coord) const {/*coord.set_mode(RecoIndex::single, channel,slice,line3d,line,readout);*/}
37  bool query(RecoQueryContext& context);
38  RecoStep* allocate() const {return new RecoDriftCalc;}
39  void init();
40 
41  LDRstring driftcalcFile;
42  LDRfloat driftcalcTE;
43 
44 };
45 
46 
47 
49 
50 
51 class RecoDriftCorr: public RecoStep {
52 
53  // implementing virtual functions of RecoStep
54  STD_string label() const {return "driftcorr";}
55  STD_string description() const {return "Correct for linear field drift over repetitions";}
56  bool process(RecoData& rd, RecoController& controller);
57  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
58  void modify_coord(RecoCoord& coord) const {}
59  RecoStep* allocate() const {return new RecoDriftCorr;}
60  void init() {}
61 
62  Data<float,1> driftcache;
63  Mutex mutex;
64 };
65 
66 
67 #endif
68 
driftcorr: Correct for linear field drift over repetitions
Definition: driftcorr.h:51
Definition: tjthread.h:46
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
driftcalc: Calculate field drift for each repetition
Definition: driftcorr.h:29