Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hddm_shlib.cc
Go to the documentation of this file.
1 // $id
2 //
3 // hddm_shlib.cc
4 //
5 /// This file provides is used to generated a shared library
6 /// that can handle a specific version of HDDM. It can be dynamically
7 /// loaded by an an existing executable using the --so= or
8 /// --sodir= command line switches.
9 ///
10 /// THIS CAN BE DANGEROUS!!! The routines here assume a certain format
11 /// for the C++ classes which may not be consistent with the
12 /// format compiled into the executable. This is intended as a quick
13 /// solution to the problem of reading in older simulation files
14 /// with newer executables where changes to HDDM were made in between.
15 /// It can only be expected to work if the executable is looking
16 /// at a portion of the data where the C++ class definitions didn't
17 /// change.
18 ///
19 /// This has not been thoroughly tested so your mileage may vary.
20 ///
21 
22 
23 #include <iostream>
24 using namespace std;
25 
26 #include <JANA/JApplication.h>
27 #include <JANA/JEventLoop.h>
28 
29 #include "HDDM/JEventSource_HDDM.h"
30 #include "BCAL/JFactory_DBCALHit.h"
31 #include "CDC/JFactory_DCDCHit.h"
32 #include "CHERENKOV/JFactory_DCHERENKOVHit.h"
33 #include "FCAL/JFactory_DFCALHit.h"
34 #include "FDC/JFactory_DFDCHit.h"
35 #include "TRACKING/JFactory_DMCTrackHit.h"
36 #include "TRACKING/JFactory_DMCThrown.h"
37 #include "TOF/JFactory_DTOFHit.h"
38 #include "UPV/JFactory_DUPVHit.h"
39 
40 extern "C" {
41 extern InitPlugin_t InitPlugin;
42 }
43 
44 void InitPlugin(JApplication *app)
45 {
46  cout<<"Adding factories from shared object ..."<<endl;
47  eventLoop->AddFactory(new JFactory_DBCALHit());
48  eventLoop->AddFactory(new JFactory_DCDCHit());
49  eventLoop->AddFactory(new JFactory_DCHERENKOVHit());
50  eventLoop->AddFactory(new JFactory_DFCALHit());
51  eventLoop->AddFactory(new JFactory_DFDCHit());
52  eventLoop->AddFactory(new JFactory_DMCTrackHit());
53  eventLoop->AddFactory(new JFactory_DMCThrown());
54  eventLoop->AddFactory(new JFactory_DTOFHit());
55  eventLoop->AddFactory(new JFactory_DUPVHit());
56 }
InitPlugin_t InitPlugin