ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillMitTree.cc
Revision: 1.9
Committed: Thu Jul 3 07:56:14 2008 UTC (16 years, 10 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.8: +18 -12 lines
Log Message:
Coding Conventions

File Contents

# User Rev Content
1 loizides 1.9 // $Id: FillMitTree.cc,v 1.8 2008/07/02 19:41:02 bendavid Exp $
2 paus 1.1
3 loizides 1.3 #include "MitProd/TreeFiller/interface/FillMitTree.h"
4 paus 1.1 #include "FWCore/MessageLogger/interface/MessageLogger.h"
5     #include "FWCore/ServiceRegistry/interface/Service.h"
6 loizides 1.3 #include "MitProd/TreeService/interface/TreeService.h"
7 loizides 1.6 #include "MitProd/TreeFiller/interface/AssociationMaps.h"
8 loizides 1.3 #include "MitProd/TreeFiller/interface/FillerMetaInfos.h"
9 loizides 1.6 #include "MitProd/TreeFiller/interface/FillerSimParticles.h"
10     #include "MitProd/TreeFiller/interface/FillerTracks.h"
11     #include "MitProd/TreeFiller/interface/FillerGsfTracks.h"
12     #include "MitProd/TreeFiller/interface/FillerMuons.h"
13     #include "MitProd/TreeFiller/interface/FillerElectrons.h"
14 bendavid 1.8 #include "MitProd/TreeFiller/interface/FillerConversionElectrons.h"
15     #include "MitProd/TreeFiller/interface/FillerConversions.h"
16     #include "MitProd/TreeFiller/interface/FillerPhotons.h"
17 loizides 1.5 #include "MitProd/TreeFiller/interface/FillerGenParts.h"
18 paus 1.1
19     using namespace std;
20     using namespace edm;
21     using namespace mithep;
22    
23 loizides 1.9 //--------------------------------------------------------------------------------------------------
24 loizides 1.7 FillMitTree::FillMitTree(const edm::ParameterSet &cfg) :
25     defactive_(cfg.getUntrackedParameter<bool>("defactive",1))
26 paus 1.1 {
27 loizides 1.6 // Constructor.
28    
29 loizides 1.3 if (!configure(cfg)) {
30     throw edm::Exception(edm::errors::Configuration, "FillMitTree::FillMitTree()\n")
31     << "Could not configure fillers." << "\n";
32     }
33 paus 1.1 }
34    
35 loizides 1.9 //--------------------------------------------------------------------------------------------------
36 paus 1.1 FillMitTree::~FillMitTree()
37     {
38 loizides 1.2 // Destructor: nothing to be done here.
39 paus 1.1 }
40    
41 loizides 1.9 //--------------------------------------------------------------------------------------------------
42 loizides 1.3 void FillMitTree::analyze(const edm::Event &event,
43     const edm::EventSetup &setup)
44     {
45     // Access and copy event content.
46    
47     // First step: Loop over the data fillers of the various components
48     for (std::vector<BaseFiller*>::const_iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
49     (*iF)->FillDataBlock(event,setup);
50     }
51    
52     // Second step: Loop over the link resolution of the various components
53     for (std::vector<BaseFiller*>::const_iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
54     (*iF)->ResolveLinks(event,setup);
55     }
56     }
57    
58 loizides 1.9 //--------------------------------------------------------------------------------------------------
59 loizides 1.3 void FillMitTree::beginJob(const edm::EventSetup &event)
60 paus 1.1 {
61 loizides 1.2 // Access the tree and book branches.
62    
63 paus 1.1 Service<TreeService> ts;
64     TreeWriter *tws = ts->get();
65     if (! tws) {
66     throw edm::Exception(edm::errors::Configuration, "FillMitTree::beginJob()\n")
67 loizides 1.2 << "Could not get pointer to tree." << "\n";
68 paus 1.1 return;
69     }
70 loizides 1.6
71 paus 1.1 // Loop over the various components and book the branches
72     for (std::vector<BaseFiller*>::iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
73 loizides 1.4 (*iF)->BookDataBlock(*tws);
74 paus 1.1 }
75     }
76    
77 loizides 1.9 //--------------------------------------------------------------------------------------------------
78 loizides 1.3 bool FillMitTree::configure(const edm::ParameterSet &cfg)
79 paus 1.1 {
80 loizides 1.3 // Configure our fillers.
81    
82     FillerMetaInfos *fillerMetaInfos = new FillerMetaInfos(cfg);
83     if (fillerMetaInfos->Active())
84     fillers_.push_back(fillerMetaInfos);
85     else
86     delete fillerMetaInfos;
87 loizides 1.2
88 loizides 1.7 FillerGenParts *fillerGenParts = new FillerGenParts(cfg,defactive_);
89 loizides 1.5 if (fillerGenParts->Active())
90     fillers_.push_back(fillerGenParts);
91     else
92 loizides 1.6 delete fillerGenParts;
93    
94 loizides 1.7 FillerSimParticles *fillerSimParticles = new FillerSimParticles(cfg,defactive_);
95 loizides 1.6 const SimParticleMap* simParticleMap=0;
96     if (fillerSimParticles->Active()) {
97     fillers_.push_back(fillerSimParticles);
98     simParticleMap = fillerSimParticles->GetSimParticleMap();
99     }
100     else
101     delete fillerSimParticles;
102    
103 loizides 1.9 FillerTracks *fillerGeneralTracks =
104     new FillerTracks(cfg,"GeneralTracks",defactive_,simParticleMap);
105 loizides 1.6 const TrackMap* generalTrackMap=0;
106     if (fillerGeneralTracks->Active()) {
107     fillers_.push_back(fillerGeneralTracks);
108     generalTrackMap = fillerGeneralTracks->GetTrackMap();
109     }
110     else
111     delete fillerGeneralTracks;
112    
113 loizides 1.9 FillerTracks *fillerStandaloneMuonTracks =
114     new FillerTracks(cfg,"StandaloneMuonTracks",defactive_);
115 loizides 1.6 const TrackMap* standaloneMuonTrackMap=0;
116     if (fillerStandaloneMuonTracks->Active()) {
117     fillers_.push_back(fillerStandaloneMuonTracks);
118     standaloneMuonTrackMap = fillerStandaloneMuonTracks->GetTrackMap();
119     }
120     else
121     delete fillerStandaloneMuonTracks;
122    
123     FillerTracks *fillerStandaloneMuonTracksVtx =
124 loizides 1.7 new FillerTracks(cfg,"StandaloneMuonTracksWVtxConstraint",defactive_);
125 loizides 1.6 const TrackMap* standaloneMuonTrackVtxMap=0;
126     if (fillerStandaloneMuonTracksVtx->Active()) {
127     fillers_.push_back(fillerStandaloneMuonTracksVtx);
128     standaloneMuonTrackVtxMap = fillerStandaloneMuonTracksVtx->GetTrackMap();
129     }
130     else
131     delete fillerStandaloneMuonTracksVtx;
132    
133 loizides 1.7 FillerTracks *fillerGlobalMuonTracks = new FillerTracks(cfg,"GlobalMuonTracks",defactive_);
134 loizides 1.6 const TrackMap* globalMuonTrackMap=0;
135     if (fillerGlobalMuonTracks->Active()) {
136     fillers_.push_back(fillerGlobalMuonTracks);
137     globalMuonTrackMap = fillerGlobalMuonTracks->GetTrackMap();
138     }
139     else
140     delete fillerGlobalMuonTracks;
141    
142     FillerTracks *fillerConversionInOutTracks =
143 loizides 1.7 new FillerTracks(cfg,"ConversionInOutTracks",defactive_,simParticleMap);
144 loizides 1.6 const TrackMap* conversionInOutTrackMap=0;
145     const TrackCol* conversionInOutTracks=0;
146     if (fillerConversionInOutTracks->Active()) {
147     fillers_.push_back(fillerConversionInOutTracks);
148     conversionInOutTrackMap = fillerConversionInOutTracks->GetTrackMap();
149     conversionInOutTracks = fillerConversionInOutTracks->GetTrackCol();
150     }
151     else
152     delete fillerConversionInOutTracks;
153    
154     FillerTracks *fillerConversionOutInTracks =
155 loizides 1.7 new FillerTracks(cfg,"ConversionOutInTracks",defactive_,simParticleMap);
156 loizides 1.6 const TrackMap* conversionOutInTrackMap=0;
157     const TrackCol* conversionOutInTracks=0;
158     if (fillerConversionOutInTracks->Active()) {
159     fillers_.push_back(fillerConversionOutInTracks);
160     conversionOutInTrackMap = fillerConversionOutInTracks->GetTrackMap();
161     conversionOutInTracks = fillerConversionOutInTracks->GetTrackCol();
162     }
163     else
164     delete fillerConversionOutInTracks;
165    
166 loizides 1.9 FillerGsfTracks *fillerGsfTracks =
167     new FillerGsfTracks(cfg,"GsfTracks",defactive_,simParticleMap);
168 loizides 1.6 const GsfTrackMap* gsfTrackMap=0;
169     if (fillerGsfTracks->Active()) {
170     fillers_.push_back(fillerGsfTracks);
171     gsfTrackMap = (GsfTrackMap*)fillerGsfTracks->GetTrackMap();
172     }
173     else
174     delete fillerGsfTracks;
175    
176     FillerMuons *fillerMuons =
177 loizides 1.7 new FillerMuons(cfg,defactive_,globalMuonTrackMap,standaloneMuonTrackMap,
178     standaloneMuonTrackVtxMap,generalTrackMap);
179 loizides 1.6 if (fillerMuons->Active())
180     fillers_.push_back(fillerMuons);
181     else
182     delete fillerMuons;
183    
184 loizides 1.9 FillerElectrons *fillerElectrons =
185     new FillerElectrons(cfg,defactive_,gsfTrackMap,generalTrackMap);
186 loizides 1.6 if (fillerElectrons->Active())
187     fillers_.push_back(fillerElectrons);
188     else
189     delete fillerElectrons;
190    
191 loizides 1.9 FillerConversionElectrons *fillerConversionElectrons =
192     new FillerConversionElectrons(cfg, defactive_, conversionInOutTracks, conversionOutInTracks,
193     conversionInOutTrackMap, conversionOutInTrackMap);
194 loizides 1.6 const ConversionElectronMap* convElectronMap=0;
195     if (fillerConversionElectrons->Active()) {
196     fillers_.push_back(fillerConversionElectrons);
197     convElectronMap = fillerConversionElectrons->GetConversionElectronMap();
198     }
199     else
200     delete fillerConversionElectrons;
201    
202 bendavid 1.8 FillerConversions *fillerConversions = new FillerConversions(cfg, defactive_, convElectronMap);
203     const ConversionMap* conversionMap=0;
204     if (fillerConversions->Active()) {
205     fillers_.push_back(fillerConversions);
206     conversionMap = fillerConversions->GetConversionMap();
207     }
208     else
209     delete fillerConversions;
210    
211     FillerPhotons *fillerPhotons = new FillerPhotons(cfg, defactive_, conversionMap);
212 loizides 1.6 if (fillerPhotons->Active())
213     fillers_.push_back(fillerPhotons);
214 bendavid 1.8 else
215 loizides 1.6 delete fillerPhotons;
216 bendavid 1.8
217 loizides 1.5
218 loizides 1.3 return 1;
219 paus 1.1 }
220    
221 loizides 1.9 //--------------------------------------------------------------------------------------------------
222 paus 1.1 void FillMitTree::endJob()
223     {
224 loizides 1.2 // Delete fillers.
225    
226     for (std::vector<BaseFiller*>::iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
227     delete *iF;
228     }
229    
230 paus 1.1 edm::LogInfo("FillMitTree::endJob") << "Ending Job" << endl;
231     }