Go to the documentation of this file.00001 #ifndef FORIA_D3PDCONVERTER_HH
00002 #define FORIA_D3PDCONVERTER_HH
00003
00004 #include "ForIA/Event.hh"
00005 #include "ForIA/Track.hh"
00006 #include "ForIA/DataConverter.hh"
00007 #include "ForIA/Cluster.hh"
00008 #include "ForIA/EtMiss.hh"
00009 #include "ForIA/Jet.hh"
00010 #include "ForIA/TruthJet.hh"
00011 #include "ForIA/DetectorErrors.hh"
00012
00013 #include "ForIA/D3PD/GoodRunsListsWrapper.hh"
00014
00015 #include "ForIA/D3PDTree/ClusterTree.hh"
00016 #include "ForIA/D3PDTree/DBKeysTree.hh"
00017 #include "ForIA/D3PDTree/DetectorErrorsTree.hh"
00018 #include "ForIA/D3PDTree/EventTree.hh"
00019 #include "ForIA/D3PDTree/JetTree.hh"
00020 #include "ForIA/D3PDTree/L1TriggerTree.hh"
00021 #include "ForIA/D3PDTree/L2SpacePointsTree.hh"
00022 #include "ForIA/D3PDTree/TrackTree.hh"
00023 #include "ForIA/D3PDTree/TrackVertexAssociationTree.hh"
00024 #include "ForIA/D3PDTree/TrigConfTree.hh"
00025 #include "ForIA/D3PDTree/TrigDecisionTree.hh"
00026 #include "ForIA/D3PDTree/TruthTree.hh"
00027 #include "ForIA/D3PDTree/TruthEnergyTree.hh"
00028 #include "ForIA/D3PDTree/TruthMassTree.hh"
00029 #include "ForIA/D3PDTree/TruthJetTree.hh"
00030 #include "ForIA/D3PDTree/TruthVertexTree.hh"
00031 #include "ForIA/D3PDTree/VertexTree.hh"
00032
00033 #include "ForIA/D3PDTree/MetTree.hh"
00034
00035 #include <string>
00036 #include <vector>
00037
00038 namespace D3PDTree{
00039 class TreeFactory;
00040 }
00041
00042 namespace ForIA{
00043
00044 using std::string;
00045 using std::string;
00046
00047 class JetKey;
00048
00049 class D3PDConverter : public DataConverter{
00050
00051 public:
00052
00053 D3PDConverter(const string &txtFile);
00054
00055 D3PDConverter(const string &txtFile, const string &goodRunList);
00056
00057 ~D3PDConverter();
00058
00059 void initialise();
00060 bool nextEvent();
00061 void storeEvent();
00062
00063 const Event &loadEvent();
00064 const TrackVector &loadTracks(const Event *evt);
00065 const ClusterVector &loadClusters();
00066 const JetVector &loadJets(const JetKey &jetKey, const Event *evt);
00067 const TruthJetVector &loadTruthJets();
00068 const TriggerConfiguration &loadTriggerConfiguration();
00069 TriggerDecisionPtr loadTriggerDecision();
00070 const TruthParticleVector &loadTruthParticles();
00071 const VertexVector &loadTruthVertices();
00072 const VertexVector &loadVertices(const Event *evt=0);
00073 L1TriggerBitPtr loadL1Trigger();
00074 L2SpacePointsConstPtr loadL2SpacePoints();
00075
00076 DetectorErrorsConstPtr loadDetectorErrors();
00077
00078 EtMissPtr loadEtMiss();
00079
00080 private:
00081
00082 D3PDTree::TreeFactory *m_treeFactory;
00083
00084 D3PDTree::ClusterTreePtr m_clusterTree;
00085 D3PDTree::DBKeysTreePtr m_dbKeysTree;
00086 D3PDTree::DetectorErrorsTreePtr m_detectorErrorsTree;
00087 D3PDTree::EventTreePtr m_eventTree;
00088 D3PDTree::L1TriggerTreePtr m_l1TriggerTree;
00089 D3PDTree::L2SpacePointsTreePtr m_l2SpacePointsTree;
00090 D3PDTree::TrackTreePtr m_trackTree;
00091 D3PDTree::TrackVertexAssociationTreePtr m_trackVtxTree;
00092 D3PDTree::TrigConfTreePtr m_trigConfTree;
00093 D3PDTree::TrigDecisionTreePtr m_trigDecisionTree;
00094 D3PDTree::TruthTreePtr m_truthTree;
00095 D3PDTree::TruthEnergyTreePtr m_truthEnergyTree;
00096 D3PDTree::TruthMassTreePtr m_truthMassTree;
00097 D3PDTree::TruthJetTreePtr m_truthJetTree;
00098 D3PDTree::TruthVertexTreePtr m_truthVertexTree;
00099 D3PDTree::VertexTreePtr m_vertexTree;
00100
00101 D3PDTree::MetTreePtr m_etmissTree;
00102
00103 vector<D3PDTree::JetTreePtr> m_jetTrees;
00104
00105 boost::unordered_map<JetKey, D3PDTree::JetTreePtr> m_usedJetTrees;
00106
00107 string m_txtFile;
00108
00109 vector<string> m_rootFiles;
00110
00111 long m_currentEntries;
00112 long m_currentEntry;
00113
00114 Event m_event;
00115 TrackVector m_tracks;
00116 ClusterVector m_clusters;
00117 TruthJetVector m_truthJets;
00118 TriggerConfiguration m_trigConfiguration;
00119 TruthParticleVector m_truthParticles;
00120 VertexVector m_truthVertices;
00121 VertexVector m_vertices;
00122
00123 boost::unordered_map<JetKey, JetVector> m_jets;
00124
00125 GoodRunsListsWrapper m_goodRunsList;
00126
00127
00128
00129 };
00130 }
00131 #endif