• Main Page
  • Related Pages
  • Modules
  • Classes
  • Files
  • File List

phasecorr.h

00001 /***************************************************************************
00002                           phasecorr.h  -  description
00003                              -------------------
00004     begin                : Mon Jan 24 2007
00005     copyright            : (C) 2001 by Thies Jochimsen
00006     email                : jochimse@cns.mpg.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef RECOPHASECORR_H
00019 #define RECOPHASECORR_H
00020 
00021 #include "step.h"
00022 
00023 class RecoPhaseMap : public RecoStep {
00024 
00025  public:
00026 
00027   static void modify(RecoCoord& coord) { // to be used in query()
00028     coord.set_mode(RecoIndex::ignore, line, line3d); // dimensions irrelevant to phase correction
00029     coord.set_mode(RecoIndex::separate, echo);  // override collected mode
00030   }
00031 
00032   static void modify4blackboard(RecoCoord& coord) { // index for blackboard
00033     modify(coord);
00034     coord.set_mode(RecoIndex::separate, epi);  // no longer ignore EPI index
00035     coord.set_mode(RecoIndex::ignore, repetition, dti, line3d, templtype, freq); // re-use phasemap for all repetitions, etc.
00036   }
00037 
00038 
00039  private:
00040   // implementing virtual functions of RecoStep
00041   STD_string label() const {return "phasemap";}
00042   STD_string description() const {return "Calculate and post phasemap for echo-by-echo phase correction";}
00043   bool process(RecoData& rd, RecoController& controller);
00044   RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,echo,readout);}
00045   void modify_coord(RecoCoord& coord) const {}
00046   bool query(RecoQueryContext& context);
00047   RecoStep* allocate() const {return new RecoPhaseMap;}
00048   void init() {}
00049 
00050   bool odd_even_echoes;
00051 };
00052 
00053 
00055 
00056 
00057 class RecoPhaseCorr : public RecoStep {
00058 
00059 
00060   // implementing virtual functions of RecoStep
00061   STD_string label() const {return "phasecorr";}
00062   STD_string description() const {return "Apply echo-by-echo phase correction";}
00063   bool process(RecoData& rd, RecoController& controller);
00064   RecoCoord input_coord() const {return RecoCoord::coord_with_mode(RecoIndex::collected,readout);}
00065   void modify_coord(RecoCoord& coord) const {}
00066   RecoStep* allocate() const {return new RecoPhaseCorr;}
00067   void init() {}
00068 
00069 };
00070 
00071 
00072 
00073 #endif
00074 

Generated on Tue Dec 18 2012 15:11:14 by  doxygen 1.7.1