/usr/include/odinseq/seqacqspiral.h is in libodin-dev 1.8.4-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /***************************************************************************
seqacqspiral.h - description
-------------------
begin : Tue Nov 11 2003
copyright : (C) 2001 by Thies H. Jochimsen
email : jochimse@cns.mpg.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef SEQACQSPIRAL_H
#define SEQACQSPIRAL_H
#include <odinseq/seqlist.h>
#include <odinseq/seqparallel.h>
#include <odinseq/seqacq.h>
#include <odinseq/seqdelay.h>
#include <odinseq/seqgradspiral.h>
#include <odinseq/seqrotmatrixvector.h>
#include <odinseq/seqgradtrapez.h>
/**
* @addtogroup odinseq
* @{
*/
/**
* \brief Acquisition + spiral gradient
*
* This class contains a gradient with a spiral k-space trajectory together with an acquisition window
*/
class SeqAcqSpiral : public virtual SeqAcqInterface, public SeqObjList {
// virtual functions of SeqFreqChanInterface are marhshalled to acq
public:
/**
* Constructs an acquisition window with a simultaneous spiral gradient labeled 'object_label' and the
* following properties:
* - sweepwidth: The sampling frequency
* - fov: The Field of View in radial direction
* - sizeRadial: The number of image points in radial direction
* - numofSegments : The number of spiral interleaves
* - traj: The spiral trajectory (will be modified, if neccessary)
* - inout: Spiral-in spiral-out trajectory
* - optimize: Optimize trajectory for minimum readout length if trajectory has a free tunable parameter
* - nucleus: See class 'SeqAcq' for explanation
* - phaselist: See class 'SeqAcq' for explanation
*/
SeqAcqSpiral(const STD_string& object_label,double sweepwidth, float fov,
unsigned int sizeRadial, unsigned int numofSegments, JDXtrajectory& traj,
bool inout=false, bool optimize=false, const STD_string& nucleus="",const dvector& phaselist=0);
/**
* Constructs an acquisition window with spiral gradient which is a copy of 'sas'
*/
SeqAcqSpiral(const SeqAcqSpiral& sas);
/**
* Constructs an empty acquisition window with spiral gradient with the given label.
*/
SeqAcqSpiral(const STD_string& object_label="unnamedSeqAcqSpiral");
/**
* This assignment operator will make this object become an exact copy of 'sar'.
*/
SeqAcqSpiral& operator = (const SeqAcqSpiral& sas);
/**
* Returns the vector of the spiral interleaves (for loop insertion)
*/
const SeqVector& get_segment_vector() const {return rotvec;}
/**
* Returns the k-space trajectory for the interleave 'iseg'
*/
fvector get_ktraj(unsigned int iseg, direction channel) const;
/**
* Returns the Jacobian determinante, i.e. the correction function
* for non-uniform weighting of k-space
*/
fvector get_denscomp() const;
// marshalling virtual functions of SeqAcqInterface to acq, except:
double get_acquisition_center() const {return preacq.get_duration()+acq.get_acquisition_center();}
double get_acquisition_start() const {return preacq.get_duration()+acq.get_acquisition_start();}
SeqAcqInterface& set_sweepwidth(double sw, float os_factor); // produce warning
private:
// overwriting virtual functions from SeqClass
bool prep();
void common_init();
void build_seq();
SeqParallel par;
SeqGradSpiral spirgrad_in;
SeqGradSpiral spirgrad_out;
SeqDelay preacq;
SeqAcq acq;
SeqGradTrapezParallel gbalance;
SeqRotMatrixVector rotvec;
bool inout_traj;
};
/** @}
*/
#endif
|