00001
00002
00004
00005 #ifndef McVertexCnv_H
00006 #define McVertexCnv_H 1
00007
00008
00009
00010 #include "src/EventSelector/BaseCnv.h"
00011
00012 #include "GlastEvent/TopLevel/MCEvent.h"
00013
00014 #include "instrument/FluxGenerator.h"
00015
00016
00017 #include "GlastEvent/MonteCarlo/McParticle.h"
00018 #include "GlastEvent/MonteCarlo/McVertex.h"
00019
00020
00021
00022 extern const CLID& CLID_McVertexCnv;
00023
00024
00025 template <class TYPE> class CnvFactory;
00026
00027
00028
00029
00030
00035 class McVertexCnv : public BaseCnv {
00036 friend class CnvFactory<BaseCnv>;
00037
00038 public:
00040 McVertexCnv( ISvcLocator* svc );
00042 virtual ~McVertexCnv();
00044 static const CLID& classID();
00046 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* pObject);
00048 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject);
00049
00050 private:
00051
00052 void addParticle(McVertex* mother, FluxGenerator::ParticleData* p);
00053
00054 McVertex* m_root;
00055
00056 McVertexCol* m_vlist;
00057 McParticleCol* m_plist;
00058
00059
00060 };
00061 #endif // McVertex_H