00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef SimTrigEvent_SimTrigCommand_H
00016 #define SimTrigEvent_SimTrigCommand_H 1
00017
00018
00019 #include "Conventions/Trigger.h"
00020 #include "Conventions/Detectors.h"
00021 #include "GaudiKernel/boost_allocator.h"
00022 #include <ostream>
00023
00024
00025
00026 namespace DayaBay
00027 {
00028
00029
00030
00040 class SimTrigCommand
00041 {
00042 public:
00043
00045 SimTrigCommand(const DayaBay::Detector& in_det,
00046 const DayaBay::Trigger::TriggerType_t& in_type,
00047 unsigned int in_cycle,
00048 int in_nhit=0,
00049 int in_esum=0,
00050 int in_esumComp=0) : m_detector(in_det),
00051 m_type(in_type),
00052 m_clockCycle(in_cycle),
00053 m_nhit(in_nhit),
00054 m_esumAdc(in_esum),
00055 m_esumComp(in_esumComp) {}
00056
00058 SimTrigCommand() : m_detector(),
00059 m_type(),
00060 m_clockCycle(0),
00061 m_nhit(0),
00062 m_esumAdc(0),
00063 m_esumComp(0) {}
00064
00066 virtual ~SimTrigCommand() {}
00067
00069 std::ostream& fillStream(std::ostream& s) const;
00070
00072 static bool LessThan(DayaBay::SimTrigCommand* d1,
00073 DayaBay::SimTrigCommand* d2);
00074
00077 const DayaBay::Detector& detector() const;
00078
00081 void setDetector(const DayaBay::Detector& value);
00082
00085 const DayaBay::Trigger::TriggerType_t& type() const;
00086
00089 void setType(const DayaBay::Trigger::TriggerType_t& value);
00090
00093 unsigned int clockCycle() const;
00094
00097 void setClockCycle(unsigned int value);
00098
00101 int nhit() const;
00102
00105 void setNhit(int value);
00106
00109 int esumAdc() const;
00110
00113 void setEsumAdc(int value);
00114
00117 int esumComp() const;
00118
00121 void setEsumComp(int value);
00122
00123
00124 #ifndef GOD_NOALLOC
00126 static void* operator new ( size_t size )
00127 {
00128 return ( sizeof(SimTrigCommand) == size ?
00129 boost::singleton_pool<SimTrigCommand, sizeof(SimTrigCommand)>::malloc() :
00130 ::operator new(size) );
00131 }
00132
00136 static void* operator new ( size_t size, void* pObj )
00137 {
00138 return ::operator new (size,pObj);
00139 }
00140
00142 static void operator delete ( void* p )
00143 {
00144 boost::singleton_pool<SimTrigCommand, sizeof(SimTrigCommand)>::is_from(p) ?
00145 boost::singleton_pool<SimTrigCommand, sizeof(SimTrigCommand)>::free(p) :
00146 ::operator delete(p);
00147 }
00148
00151 static void operator delete ( void* p, void* pObj )
00152 {
00153 ::operator delete (p, pObj);
00154 }
00155 #endif
00156 protected:
00157
00158 private:
00159
00160 DayaBay::Detector m_detector;
00161 DayaBay::Trigger::TriggerType_t m_type;
00162 unsigned int m_clockCycle;
00163 int m_nhit;
00164 int m_esumAdc;
00165 int m_esumComp;
00166
00167 };
00168
00169 inline std::ostream& operator<< (std::ostream& str, const SimTrigCommand& obj)
00170 {
00171 return obj.fillStream(str);
00172 }
00173
00174 }
00175
00176
00177
00178
00179
00180
00181
00182 inline const DayaBay::Detector& DayaBay::SimTrigCommand::detector() const
00183 {
00184 return m_detector;
00185 }
00186
00187 inline void DayaBay::SimTrigCommand::setDetector(const DayaBay::Detector& value)
00188 {
00189 m_detector = value;
00190 }
00191
00192 inline const DayaBay::Trigger::TriggerType_t& DayaBay::SimTrigCommand::type() const
00193 {
00194 return m_type;
00195 }
00196
00197 inline void DayaBay::SimTrigCommand::setType(const DayaBay::Trigger::TriggerType_t& value)
00198 {
00199 m_type = value;
00200 }
00201
00202 inline unsigned int DayaBay::SimTrigCommand::clockCycle() const
00203 {
00204 return m_clockCycle;
00205 }
00206
00207 inline void DayaBay::SimTrigCommand::setClockCycle(unsigned int value)
00208 {
00209 m_clockCycle = value;
00210 }
00211
00212 inline int DayaBay::SimTrigCommand::nhit() const
00213 {
00214 return m_nhit;
00215 }
00216
00217 inline void DayaBay::SimTrigCommand::setNhit(int value)
00218 {
00219 m_nhit = value;
00220 }
00221
00222 inline int DayaBay::SimTrigCommand::esumAdc() const
00223 {
00224 return m_esumAdc;
00225 }
00226
00227 inline void DayaBay::SimTrigCommand::setEsumAdc(int value)
00228 {
00229 m_esumAdc = value;
00230 }
00231
00232 inline int DayaBay::SimTrigCommand::esumComp() const
00233 {
00234 return m_esumComp;
00235 }
00236
00237 inline void DayaBay::SimTrigCommand::setEsumComp(int value)
00238 {
00239 m_esumComp = value;
00240 }
00241
00242
00243 #endif