Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DDANAEVIO_factory.h
Go to the documentation of this file.
1 // $Id$
2 
3 // File: DDANAEVIO_factory.h
4 // Created: Mon Mar 15 09:08:37 EDT 2010
5 // Creator: wolin (on Linux stan.jlab.org 2.6.18-164.el5 x86_64)
6 
7 
8 
9 #ifndef _DDANAEVIO_factory_
10 #define _DDANAEVIO_factory_
11 
12 
13 #include <string>
14 #include <map>
15 #include <set>
16 using namespace std;
17 
18 
19 #include <JANA/JFactory.h>
20 using namespace jana;
21 
22 
24 
25 
26 
27 //------------------------------------------------------------------------------------
28 
29 
30 class DDANAEVIO_factory : public JFactory<DDANAEVIODOMTree> {
31 
32  public:
35 
36  static const map< string, pair<uint16_t,uint8_t> > *getTagMapPointer();
37 
38 
39  private:
40  jerror_t evnt(JEventLoop *eventLoop, uint64_t eventnumber);
41  void get_tagNum_dictionary(void);
42  static void startElement(void *userData, const char *xmlname, const char **atts);
43 
44  template<typename T> evioDOMNodeP createLeafNode(string nameId);
45  evioDOMNodeP createContainerNode(string nameId);
46 
47 
48  void addObjIdBank(evioDOMTree &tree);
49 
50  void addDMCTrackHit(JEventLoop *eventLoop, evioDOMTree &tree);
51  void addDBeamPhoton(JEventLoop *eventLoop, evioDOMTree &tree);
52  void addDMCThrown(JEventLoop *eventLoop, evioDOMTree &tree);
53  void addDFCALTruthShower(JEventLoop *eventLoop, evioDOMTree &tree);
54  void addDBCALTruthShower(JEventLoop *eventLoop, evioDOMTree &tree);
55  void addDTOFTruth(JEventLoop *eventLoop, evioDOMTree &tree);
56  void addDSCTruthHit(JEventLoop *eventLoop, evioDOMTree &tree);
57  void addDMCTrajectoryPoint(JEventLoop *eventLoop, evioDOMTree &tree);
58  void addDCDCHit(JEventLoop *eventLoop, evioDOMTree &tree);
59  void addDFDCHit(JEventLoop *eventLoop, evioDOMTree &tree);
60  void addDFCALHit(JEventLoop *eventLoop, evioDOMTree &tree);
61  void addDHDDMBCALHit(JEventLoop *eventLoop, evioDOMTree &tree);
62  void addDHDDMTOFHit(JEventLoop *eventLoop, evioDOMTree &tree);
63  void addDSCHit(JEventLoop *eventLoop, evioDOMTree &tree);
64  void addDCDCTrackHit(JEventLoop *eventLoop, evioDOMTree &tree);
65  void addDFDCPseudo(JEventLoop *eventLoop, evioDOMTree &tree);
66  void addDTrackWireBased(JEventLoop *eventLoop, evioDOMTree &tree);
67  void addDTrackTimeBased(JEventLoop *eventLoop, evioDOMTree &tree);
68  void addDChargedTrack(JEventLoop *eventLoop, evioDOMTree &tree);
69  void addDPhoton(JEventLoop *eventLoop, evioDOMTree &tree);
70  void addDVertex(JEventLoop *eventLoop, evioDOMTree &tree);
71  void addDTrackCandidate(JEventLoop *eventLoop, evioDOMTree &tree);
72  void addDBCALPhoton(JEventLoop *eventLoop, evioDOMTree &tree);
73  void addDFCALPhoton(JEventLoop *eventLoop, evioDOMTree &tree);
74  void addDChargedTruthMatch(JEventLoop *eventLoop, evioDOMTree &tree);
75  void addDTOFRawHitMC(JEventLoop *eventLoop, evioDOMTree &tree);
76  void addDTOFRawHit(JEventLoop *eventLoop, evioDOMTree &tree);
77  void addDTOFHit(JEventLoop *eventLoop, evioDOMTree &tree);
78  void addDTOFPoint(JEventLoop *eventLoop, evioDOMTree &tree);
79  void addDTOFMCResponse(JEventLoop *eventLoop, evioDOMTree &tree);
80  void addDBCALHit(JEventLoop *eventLoop, evioDOMTree &tree);
81  void addDBCALMCResponse(JEventLoop *eventLoop, evioDOMTree &tree);
82  void addDBCALShower(JEventLoop *eventLoop, evioDOMTree &tree);
83  void addDFCALCluster(JEventLoop *eventLoop, evioDOMTree &tree);
84  void addDFDCCathodeCluster(JEventLoop *eventLoop, evioDOMTree &tree);
85  void addDFDCSegment(JEventLoop *eventLoop, evioDOMTree &tree);
86  void addDTwoGammaFit(JEventLoop *eventLoop, evioDOMTree &tree);
87  void addDParticle(JEventLoop *eventLoop, evioDOMTree &tree);
88  void addDTAGMHit(JEventLoop *eventLoop, evioDOMTree &tree);
89  void addDTAGHHit(JEventLoop *eventLoop, evioDOMTree &tree);
90 
91 
92  // map of which factory/tags to convert, can be set on-the-fly via setEVIOMap()
93  map< string, set<string> > evioMap;
94 
95 
96  // event-specific global object id map
97  map<int,string> objIdMap;
98 
99 
100 public:
101  void setEVIOMap(string danaevio);
102 
103 };
104 
105 #endif // _DDANAEVIO_factory_
106 
107 
108 //------------------------------------------------------------------------------------
109 //------------------------------------------------------------------------------------
void startElement(void *data, const char *el, const char **attr)
Definition: hddm2root.cc:221
map< string, set< string > > evioMap
map< int, string > objIdMap