CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
vEvent.cc
Go to the documentation of this file.
1 /*
2 This file is part of CASToR.
3 
4  CASToR is free software: you can redistribute it and/or modify it under the
5  terms of the GNU General Public License as published by the Free Software
6  Foundation, either version 3 of the License, or (at your option) any later
7  version.
8 
9  CASToR is distributed in the hope that it will be useful, but WITHOUT ANY
10  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12  details.
13 
14  You should have received a copy of the GNU General Public License along with
15  CASToR (in file GNU_GPL.TXT). If not, see <http://www.gnu.org/licenses/>.
16 
17 Copyright 2017-2019 all CASToR contributors listed below:
18 
19  --> Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Thibaut MERLIN, Mael MILLARDET, Simon STUTE, Valentin VIELZEUF
20 
21 This is CASToR version 3.0.
22 */
23 
31 #include "vEvent.hh"
32 #include "vDataFile.hh"
33 #include "sOutputManager.hh"
34 
35 // =====================================================================
36 // ---------------------------------------------------------------------
37 // ---------------------------------------------------------------------
38 // =====================================================================
39 
41 {
42  m_timeInMs = 0;
43  m_nbLines = 0;
44  mp_ID1 = NULL;
45  mp_ID2 = NULL;
48  m_verbose = -1;
49  m_eventValue = 0.;
50 }
51 
52 // =====================================================================
53 // ---------------------------------------------------------------------
54 // ---------------------------------------------------------------------
55 // =====================================================================
56 
58 {
59  if (mp_ID1 != NULL) free(mp_ID1);
60  if (mp_ID1 != NULL) free(mp_ID2);
61 }
62 
63 // =====================================================================
64 // ---------------------------------------------------------------------
65 // ---------------------------------------------------------------------
66 // =====================================================================
67 
69 {
70  // Verbose
72  if (m_verbose>=VERBOSE_DETAIL) Cout("vEvent::AllocateID() -> Allocate buffers for indices" << endl);
73  // Check number of lines
74  if (m_nbLines<1)
75  {
76  Cerr("***** vEvent::AllocateID() -> Error, number of lines has not been initialized (<1) !" << endl);
77  return 1;
78  }
79  else
80  {
81  // Allocate buffer indices
82  mp_ID1 = (uint32_t*)malloc(m_nbLines*sizeof(uint32_t));
83  mp_ID2 = (uint32_t*)malloc(m_nbLines*sizeof(uint32_t));
84  }
85  // Call the pure virtual function implemented in child classes for the allocation of data specific to child classes
87  {
88  Cerr("***** vEvent::AllocateID() -> Error when trying to allocated specific data for the Event !" << endl);
89  return 1;
90  }
91  // End
92  return 0;
93 }
94 
95 // =====================================================================
96 // ---------------------------------------------------------------------
97 // ---------------------------------------------------------------------
98 // =====================================================================
#define TYPE_UNKNOWN
Definition: vDataFile.hh:71
int m_verbose
Definition: vEvent.hh:232
uint32_t * mp_ID2
Definition: vEvent.hh:227
#define VERBOSE_DETAIL
int m_dataType
Definition: vEvent.hh:229
#define Cerr(MESSAGE)
#define VERBOSE_DEBUG_LIGHT
uint32_t * mp_ID1
Definition: vEvent.hh:226
Declaration of class vDataFile.
FLTNB m_eventValue
Definition: vEvent.hh:228
Declaration of class vEvent.
vEvent()
vEvent constructor. Initialize the member variables to their default values.
Definition: vEvent.cc:40
int AllocateID()
Instantiate the mp_ID1 and mp_ID2 indices arrays.
Definition: vEvent.cc:68
int m_dataMode
Definition: vEvent.hh:230
virtual int AllocateSpecificData()=0
Pure virtual function implemented in the child classes, dedicated to the allocation of specific data ...
Declaration of class sOutputManager.
#define MODE_UNKNOWN
Definition: vDataFile.hh:54
#define DEBUG_VERBOSE(IGNORED1, IGNORED2)
#define Cout(MESSAGE)
uint16_t m_nbLines
Definition: vEvent.hh:225
uint32_t m_timeInMs
Definition: vEvent.hh:224
virtual ~vEvent()
vEvent destructor
Definition: vEvent.cc:57