ODIN
adc.h
1 /***************************************************************************
2  adc.h - description
3  -------------------
4  begin : Mon Jan 22 2007
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 RECOADC_H
19 #define RECOADC_H
20 
21 #include "step.h"
22 
23 
24 class RecoAdcReflect : public RecoStep {
25 
26  // implementing virtual functions of RecoStep
27  STD_string label() const {return "adc_reflect";}
28  STD_string description() const {return "Reflect ADC if recoReflectBit is set";}
29  bool process(RecoData& rd, RecoController& controller);
30  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
31  void modify_coord(RecoCoord& coord) const {}
32  RecoStep* allocate() const {return new RecoAdcReflect;}
33  void init() {}
34 
35 };
36 
37 
39 
40 
41 class RecoAdcGridPrep : public RecoStep {
42 
43  // implementing virtual functions of RecoStep
44  STD_string label() const {return "adc_gridprep";}
45  STD_string description() const {return "Prepare ADC for gridding (ramp sampling)";}
46  bool process(RecoData& rd, RecoController& controller);
47  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
48  void modify_coord(RecoCoord& coord) const {}
49  RecoStep* allocate() const {return new RecoAdcGridPrep;}
50  void init() {}
51 
52  KspaceTraj traj; // caching trajectory
53  Mutex trajmutex;
54 
55 };
56 
58 
59 
60 class RecoAdcWeight : public RecoStep {
61 
62  // implementing virtual functions of RecoStep
63  STD_string label() const {return "adc_weight";}
64  STD_string description() const {return "Weight ADC using weightVec";}
65  bool process(RecoData& rd, RecoController& controller);
66  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
67  void modify_coord(RecoCoord& coord) const {}
68  RecoStep* allocate() const {return new RecoAdcWeight;}
69  void init() {}
70 
71  Mutex weightMutex; // to protect global Blitz array which contains weightVec
72 
73 };
74 
76 
77 
78 class RecoAdcBaseline : public RecoStep {
79 
80  // implementing virtual functions of RecoStep
81  STD_string label() const {return "adc_baseline";}
82  STD_string description() const {return "Baseline correction of ADCs";}
83  bool process(RecoData& rd, RecoController& controller);
84  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
85  void modify_coord(RecoCoord& coord) const {}
86  RecoStep* allocate() const {return new RecoAdcBaseline;}
87  void init() {}
88 
89 };
90 
91 
93 
94 
95 class RecoAdcPad : public RecoStep {
96 
97  // implementing virtual functions of RecoStep
98  STD_string label() const {return "adc_pad";}
99  STD_string description() const {return "Pad missing points by zeroes";}
100  bool process(RecoData& rd, RecoController& controller);
101  RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
102  void modify_coord(RecoCoord& coord) const {}
103  RecoStep* allocate() const {return new RecoAdcPad;}
104  void init() {}
105 
106 };
107 
108 
109 
110 #endif
111 
Definition: tjthread.h:46
adc_baseline: Baseline correction of ADCs
Definition: adc.h:78
adc_gridprep: Prepare ADC for gridding (ramp sampling)
Definition: adc.h:41
adc_pad: Pad missing points by zeroes
Definition: adc.h:95
adc_reflect: Reflect ADC if recoReflectBit is set
Definition: adc.h:24
adc_weight: Weight ADC using weightVec
Definition: adc.h:60
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