A.I.M.S algorithms


perfProcCenter.h
Go to the documentation of this file.
1 /* This software and supporting documentation are distributed by
2  * Institut Federatif de Recherche 49
3  * CEA/NeuroSpin, Batiment 145,
4  * 91191 Gif-sur-Yvette cedex
5  * France
6  *
7  * This software is governed by the CeCILL-B license under
8  * French law and abiding by the rules of distribution of free software.
9  * You can use, modify and/or redistribute the software under the
10  * terms of the CeCILL-B license as circulated by CEA, CNRS
11  * and INRIA at the following URL "http://www.cecill.info".
12  *
13  * As a counterpart to the access to the source code and rights to copy,
14  * modify and redistribute granted by the license, users are provided only
15  * with a limited warranty and the software's author, the holder of the
16  * economic rights, and the successive licensors have only limited
17  * liability.
18  *
19  * In this respect, the user's attention is drawn to the risks associated
20  * with loading, using, modifying and/or developing or reproducing the
21  * software by the user in light of its specific status of free software,
22  * that may mean that it is complicated to manipulate, and that also
23  * therefore means that it is reserved for developers and experienced
24  * professionals having in-depth computer knowledge. Users are therefore
25  * encouraged to load and test the software's suitability as regards their
26  * requirements in conditions enabling the security of their systems and/or
27  * data to be ensured and, more generally, to use and operate it in the
28  * same conditions as regards security.
29  *
30  * The fact that you are presently reading this means that you have had
31  * knowledge of the CeCILL-B license and that you accept its terms.
32  */
33 
34 
35 
36 #ifndef AIMS_PERFUSION_PERFPROCCENTER_H
37 #define AIMS_PERFUSION_PERFPROCCENTER_H
38 
43 
44 #include <aims/data/data.h>
45 #include <aims/bucket/bucket.h>
46 #include <aims/vector/vector.h>
48 
49 #include <list>
50 #include <map>
51 #include <string>
52 
53 namespace aims
54 {
55 
57  {
58  public:
59 
62 
63  virtual std::map< int, PerfusionProcessing * >& processings()
64  { return mProc; }
65  virtual PerfusionParameters& parameters() { return _params; }
66 
67  PerfusionMaps *perfMaps() { return pmap; }
68 
69  void initialize();
70 
72 
73  void doMask( int );
74  void doSkip( int );
75  void doAifPoints( int );
76  void doInjection( int );
77  void doQuantification( int );
78  void doAif( int );
79  void doFit( int );
80  void doDeconvolution( int );
81  bool doMaps( int );
82 
83  void saveMaps( const std::string& );
84 
85  void setSelection( std::list< Point4dl >& sel ) { aifSelected = sel; }
86 
87  aims::BucketMap< Void >& bucketMask() { return maskBck; }
88  std::list< Point4dl >& aifPointList() { return aifPoints; }
89  AimsData< float >& quantifiedData() { return dataQuantif; }
90  AimsData< float >& aif() { return aifCurve; }
91  AimsData< float >& fittedAif() { return aifFit; }
92  AimsData< float >& fittedData() { return dataFit; }
93  AimsData< float >& deconvolvedData() { return dataDeconv; }
94  AimsData< float >& CBF() { return pmap->mapCBF(); }
95  AimsData< float >& CBV() { return pmap->mapCBV(); }
96  AimsData< float >& MTT() { return pmap->mapMTT(); }
97  AimsData< float >& TTP() { return pmap->mapTTP(); }
98  AimsData< float >& delay() { return pmap->mapDelay(); }
99  AimsData< float >& heterogeneity() { return pmap->maph(); }
100  AimsData< float >& BBB() { return pmap->mapBBB(); }
101 
102  private:
103 
104  PerfusionParameters _params;
105  PerfusionMaps *pmap;
106 
107  std::map< int, PerfusionProcessing * > mProc;
108  std::map< Point3d, LMGamma< float >, bestPoint3d > mFit;
109 
111  std::list< Point4dl > aifSelected;
112  LMGamma< float > aifParam;
113 
114  aims::BucketMap< Void > maskBck;
115  std::list< Point4dl > aifPoints;
116  AimsData< float > dataQuantif;
117  AimsData< float > aifCurve;
118  AimsData< float > aifFit;
119  AimsData< float > dataFit;
120  AimsData< float > dataDeconv;
121  };
122 
123 }
124 
125 #endif
virtual PerfusionParameters & parameters()
virtual std::map< int, PerfusionProcessing * > & processings()
AimsData< float > & fittedData()
AimsData< float > & mapCBV()
aims::BucketMap< Void > & bucketMask()
AimsData< float > & CBV()
AimsData< float > & MTT()
void registerData(carto::rc_ptr< carto::Volume< short > >)
AimsData< float > & quantifiedData()
AimsData< float > & mapBBB()
Class PerfusionMaps.
Definition: perfMaps.h:52
AimsData< float > & fittedAif()
AimsData< float > & deconvolvedData()
AimsData< float > & CBF()
AimsData< float > & mapTTP()
AimsData< float > & delay()
std::list< Point4dl > & aifPointList()
AimsData< float > & mapDelay()
AimsData< float > & aif()
AimsData< float > & mapCBF()
AimsData< float > & mapMTT()
AimsData< float > & heterogeneity()
AimsData< float > & maph()
AimsData< float > & TTP()
void setSelection(std::list< Point4dl > &sel)
void saveMaps(const std::string &)