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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines