ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillMitTree.cc
(Generate patch)

Comparing UserCode/MitProd/TreeFiller/src/FillMitTree.cc (file contents):
Revision 1.4 by loizides, Fri Jun 20 17:52:57 2008 UTC vs.
Revision 1.14 by bendavid, Tue Jul 29 22:54:37 2008 UTC

# Line 4 | Line 4
4   #include "FWCore/MessageLogger/interface/MessageLogger.h"
5   #include "FWCore/ServiceRegistry/interface/Service.h"
6   #include "MitProd/TreeService/interface/TreeService.h"
7 + #include "MitProd/TreeFiller/interface/AssociationMaps.h"
8   #include "MitProd/TreeFiller/interface/FillerMetaInfos.h"
9 < #include "MitProd/TreeFiller/interface/FillerGlobalMuons.h"
9 > #include "MitProd/TreeFiller/interface/FillerTracks.h"
10 > #include "MitProd/TreeFiller/interface/FillerGsfTracks.h"
11 > #include "MitProd/TreeFiller/interface/FillerMuons.h"
12 > #include "MitProd/TreeFiller/interface/FillerElectrons.h"
13 > #include "MitProd/TreeFiller/interface/FillerElectrons.h"
14 > #include "MitProd/TreeFiller/interface/FillerCaloJets.h"
15 > #include "MitProd/TreeFiller/interface/FillerCaloMet.h"
16 > #include "MitProd/TreeFiller/interface/FillerConversions.h"
17 > #include "MitProd/TreeFiller/interface/FillerConversionElectrons.h"
18 > #include "MitProd/TreeFiller/interface/FillerPhotons.h"
19 > #include "MitProd/TreeFiller/interface/FillerMCParticles.h"
20 > #include "MitProd/TreeFiller/interface/FillerDecayParts.h"
21 > #include "MitProd/TreeFiller/interface/FillerStableParts.h"
22  
23   using namespace std;
24   using namespace edm;
25   using namespace mithep;
26  
27 < //-------------------------------------------------------------------------------------------------
28 < FillMitTree::FillMitTree(const edm::ParameterSet &cfg)
27 > //--------------------------------------------------------------------------------------------------
28 > FillMitTree::FillMitTree(const edm::ParameterSet &cfg) :
29 >  defactive_(cfg.getUntrackedParameter<bool>("defactive",1))
30   {
31 <  // Constructor: initialize fillers
32 <
31 >  // Constructor.
32 >    
33    if (!configure(cfg)) {
34      throw edm::Exception(edm::errors::Configuration, "FillMitTree::FillMitTree()\n")
35        << "Could not configure fillers." << "\n";
36    }
37   }
38  
39 < //-------------------------------------------------------------------------------------------------
39 > //--------------------------------------------------------------------------------------------------
40   FillMitTree::~FillMitTree()
41   {
42    // Destructor: nothing to be done here.
43   }
44  
45 < //-------------------------------------------------------------------------------------------------
45 > //--------------------------------------------------------------------------------------------------
46   void FillMitTree::analyze(const edm::Event      &event,
47                            const edm::EventSetup &setup)
48   {
# Line 45 | Line 59 | void FillMitTree::analyze(const edm::Eve
59    }
60   }
61  
62 < //-------------------------------------------------------------------------------------------------
62 > //--------------------------------------------------------------------------------------------------
63   void FillMitTree::beginJob(const edm::EventSetup &event)
64   {
65    // Access the tree and book branches.
# Line 57 | Line 71 | void FillMitTree::beginJob(const edm::Ev
71        << "Could not get pointer to tree." << "\n";
72      return;
73    }
74 <
74 >  
75    // Loop over the various components and book the branches
76    for (std::vector<BaseFiller*>::iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
77      (*iF)->BookDataBlock(*tws);
78    }
79   }
80  
81 < //-------------------------------------------------------------------------------------------------
81 > //--------------------------------------------------------------------------------------------------
82   bool FillMitTree::configure(const edm::ParameterSet &cfg)
83   {
84    // Configure our fillers.
85  
72
86    FillerMetaInfos *fillerMetaInfos = new FillerMetaInfos(cfg);
87    if (fillerMetaInfos->Active())
88      fillers_.push_back(fillerMetaInfos);
89 <  else
89 >  else {
90      delete fillerMetaInfos;
91 +    fillerMetaInfos = 0;
92 +  }
93 +
94 +  FillerMCParticles *fillerMCParticles = new FillerMCParticles(cfg,"MCParticles",defactive_);
95 +  const GenParticleMap* genParticleMap = 0;
96 +  const SimParticleMap *simParticleMap = 0;
97 +  if (fillerMCParticles->Active()) {
98 +    fillers_.push_back(fillerMCParticles);
99 +    genParticleMap = fillerMCParticles->GetGenParticleMap();
100 +    simParticleMap = fillerMCParticles->GetSimParticleMap();
101 +  }
102 +  else {
103 +    delete fillerMCParticles;  
104 +    fillerMCParticles = 0;
105 +  }
106 +
107 +  FillerCaloJets *fillerCaloJets = new FillerCaloJets(cfg,"CaloJets",defactive_);
108 +  if (fillerCaloJets->Active()) {
109 +    fillers_.push_back(fillerCaloJets);
110 +  }
111 +  else {
112 +    delete fillerCaloJets;
113 +    fillerCaloJets = 0;
114 +  }
115 +
116 +  FillerCaloMet *fillerCaloMet = new FillerCaloMet(cfg,"CaloMet",defactive_);
117 +  if (fillerCaloMet->Active()) {
118 +    fillers_.push_back(fillerCaloMet);
119 +  }
120 +  else {
121 +    delete fillerCaloMet;
122 +    fillerCaloMet = 0;
123 +  }
124  
125 <  FillerGlobalMuons *fillerGlobalMuons = new FillerGlobalMuons(cfg);
126 <  if (fillerGlobalMuons->Active())
127 <    fillers_.push_back(fillerGlobalMuons);
128 <  else
129 <    delete fillerGlobalMuons;
125 >  FillerTracks *fillerGeneralTracks =
126 >    new FillerTracks(cfg,"GeneralTracks",defactive_,simParticleMap);
127 >  const TrackMap *generalTrackMap=0;
128 >  if (fillerGeneralTracks->Active()) {
129 >    fillers_.push_back(fillerGeneralTracks);
130 >    generalTrackMap = fillerGeneralTracks->GetTrackMap();
131 >  }
132 >  else {
133 >    delete fillerGeneralTracks;
134 >    fillerGeneralTracks = 0;
135 >  }
136 >
137 >  FillerTracks *fillerStandaloneMuonTracks =
138 >    new FillerTracks(cfg,"StandaloneMuonTracks",defactive_);
139 >  const TrackMap *standaloneMuonTrackMap=0;
140 >  if (fillerStandaloneMuonTracks->Active()) {
141 >    fillers_.push_back(fillerStandaloneMuonTracks);
142 >    standaloneMuonTrackMap = fillerStandaloneMuonTracks->GetTrackMap();
143 >  }
144 >  else {
145 >    delete fillerStandaloneMuonTracks;
146 >    fillerStandaloneMuonTracks = 0;
147 >  }
148 >
149 >  FillerTracks *fillerStandaloneMuonTracksVtx =
150 >    new FillerTracks(cfg,"StandaloneMuonTracksWVtxConstraint",defactive_);
151 >  const TrackMap *standaloneMuonTrackVtxMap=0;
152 >  if (fillerStandaloneMuonTracksVtx->Active()) {
153 >    fillers_.push_back(fillerStandaloneMuonTracksVtx);
154 >    standaloneMuonTrackVtxMap = fillerStandaloneMuonTracksVtx->GetTrackMap();
155 >  }
156 >  else {
157 >    delete fillerStandaloneMuonTracksVtx;
158 >    fillerStandaloneMuonTracksVtx = 0;
159 >  }
160 >
161 >  FillerTracks *fillerGlobalMuonTracks = new FillerTracks(cfg,"GlobalMuonTracks",defactive_);
162 >  const TrackMap *globalMuonTrackMap=0;
163 >  if (fillerGlobalMuonTracks->Active()) {
164 >    fillers_.push_back(fillerGlobalMuonTracks);
165 >    globalMuonTrackMap = fillerGlobalMuonTracks->GetTrackMap();
166 >  }
167 >  else {
168 >    delete fillerGlobalMuonTracks;  
169 >    fillerGlobalMuonTracks = 0;
170 >  }
171 >    
172 >  FillerTracks *fillerConversionInOutTracks =
173 >    new FillerTracks(cfg,"ConversionInOutTracks",defactive_,simParticleMap);
174 >  const TrackMap *conversionInOutTrackMap=0;
175 >  const TrackCol *conversionInOutTracks=0;
176 >  if (fillerConversionInOutTracks->Active()) {
177 >    fillers_.push_back(fillerConversionInOutTracks);
178 >    conversionInOutTrackMap = fillerConversionInOutTracks->GetTrackMap();
179 >    conversionInOutTracks = fillerConversionInOutTracks->GetTrackCol();
180 >  }
181 >  else {
182 >    delete fillerConversionInOutTracks;
183 >    fillerConversionInOutTracks = 0;
184 >  }
185 >
186 >  FillerTracks *fillerConversionOutInTracks =
187 >    new FillerTracks(cfg,"ConversionOutInTracks",defactive_,simParticleMap);
188 >  const TrackMap *conversionOutInTrackMap=0;
189 >  const TrackCol *conversionOutInTracks=0;
190 >  if (fillerConversionOutInTracks->Active()) {
191 >    fillers_.push_back(fillerConversionOutInTracks);
192 >    conversionOutInTrackMap = fillerConversionOutInTracks->GetTrackMap();
193 >    conversionOutInTracks = fillerConversionOutInTracks->GetTrackCol();
194 >  }
195 >  else {
196 >    delete fillerConversionOutInTracks;
197 >    fillerConversionOutInTracks = 0;
198 >  }
199 >
200 >  FillerGsfTracks *fillerGsfTracks =
201 >    new FillerGsfTracks(cfg,"GsfTracks",defactive_,simParticleMap);
202 >  const GsfTrackMap *gsfTrackMap=0;
203 >  if (fillerGsfTracks->Active()) {
204 >    fillers_.push_back(fillerGsfTracks);
205 >    gsfTrackMap = (GsfTrackMap*)fillerGsfTracks->GetTrackMap();
206 >  }
207 >  else {
208 >    delete fillerGsfTracks;
209 >    fillerGsfTracks = 0;
210 >  }
211 >
212 >  FillerMuons *fillerMuons =
213 >    new FillerMuons(cfg,defactive_,globalMuonTrackMap,standaloneMuonTrackMap,
214 >                    standaloneMuonTrackVtxMap,generalTrackMap);
215 >  if (fillerMuons->Active())
216 >    fillers_.push_back(fillerMuons);
217 >  else {
218 >    delete fillerMuons;
219 >    fillerMuons = 0;
220 >  }
221 >
222 >  FillerElectrons *fillerElectrons =
223 >    new FillerElectrons(cfg,defactive_,gsfTrackMap,generalTrackMap);
224 >  if (fillerElectrons->Active())
225 >    fillers_.push_back(fillerElectrons);
226 >  else {
227 >    delete fillerElectrons;
228 >      fillerElectrons = 0;
229 >  }
230 >
231 >  FillerConversionElectrons *fillerConversionElectrons =
232 >    new FillerConversionElectrons(cfg, defactive_, conversionInOutTracks, conversionOutInTracks,
233 >                                  conversionInOutTrackMap, conversionOutInTrackMap);
234 >  const ConversionElectronMap *convElectronMap=0;
235 >  if (fillerConversionElectrons->Active()) {
236 >    fillers_.push_back(fillerConversionElectrons);
237 >    convElectronMap = fillerConversionElectrons->GetConversionElectronMap();
238 >  }
239 >  else {
240 >    delete fillerConversionElectrons;
241 >    fillerConversionElectrons = 0;
242 >  }
243 >
244 >  FillerConversions *fillerConversions = new FillerConversions(cfg, defactive_, convElectronMap);
245 >  const ConversionMap *conversionMap=0;
246 >  if (fillerConversions->Active()) {
247 >    fillers_.push_back(fillerConversions);
248 >    conversionMap = fillerConversions->GetConversionMap();
249 >  }
250 >  else {
251 >    delete fillerConversions;
252 >    fillerConversions = 0;
253 >  }
254 >
255 >  FillerPhotons *fillerPhotons = new FillerPhotons(cfg, defactive_, conversionMap);
256 >  if (fillerPhotons->Active())
257 >    fillers_.push_back(fillerPhotons);
258 >  else {
259 >    delete fillerPhotons;
260 >    fillerPhotons = 0;
261 >  }
262 >
263 >  FillerStableParts *fillerStableParts = new FillerStableParts(cfg,"StableParts",defactive_, generalTrackMap);
264 >  const BasePartMap *particleMap=0;
265 >  if (fillerStableParts->Active()) {
266 >    fillers_.push_back(fillerStableParts);
267 >    particleMap = fillerStableParts->GetParticleMap();
268 >  }
269 >  else {
270 >    delete fillerStableParts;
271 >    fillerStableParts = 0;
272 >  }
273 >  
274 >  FillerDecayParts *fillerDecayParts = new FillerDecayParts(cfg,"DecayParts",defactive_,particleMap);
275 >  if (fillerDecayParts->Active()) {
276 >    fillers_.push_back(fillerDecayParts);
277 >  }
278 >  else {
279 >    delete fillerDecayParts;
280 >    fillerDecayParts = 0;
281 >  }
282  
283    return 1;
284   }
285  
286 < //-------------------------------------------------------------------------------------------------
286 > //--------------------------------------------------------------------------------------------------
287   void FillMitTree::endJob()
288   {
289    // Delete fillers.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines