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.5 by loizides, Tue Jun 24 14:25:46 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"
10 < #include "MitProd/TreeFiller/interface/FillerGlobalMuons.h"
11 < #include "MitProd/TreeFiller/interface/FillerGenParts.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/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 < //-------------------------------------------------------------------------------------------------
29 < FillMitTree::FillMitTree(const edm::ParameterSet &cfg)
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: initialize fillers
34 >  // Constructor.
35  
36    if (!configure(cfg)) {
37      throw edm::Exception(edm::errors::Configuration, "FillMitTree::FillMitTree()\n")
# Line 23 | Line 39 | FillMitTree::FillMitTree(const edm::Para
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 46 | 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 59 | Line 75 | void FillMitTree::beginJob(const edm::Ev
75      return;
76    }
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.
99  
73
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 +  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 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 {
147 +    delete fillerGeneralTracks;
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 {
159 +    delete fillerStandaloneMuonTracks;
160 +    fillerStandaloneMuonTracks = 0;
161 +  }
162 +
163 +  FillerTracks *fillerStandaloneMuonTracksVtx =
164 +    new FillerTracks(cfg,"StandaloneMuonTracksWVtxConstraint",defactive_);
165 +  const TrackMap *standaloneMuonTrackVtxMap=0;
166 +  if (fillerStandaloneMuonTracksVtx->Active()) {
167 +    fillers_.push_back(fillerStandaloneMuonTracksVtx);
168 +    standaloneMuonTrackVtxMap = fillerStandaloneMuonTracksVtx->GetTrackMap();
169 +  }
170 +  else {
171 +    delete fillerStandaloneMuonTracksVtx;
172 +    fillerStandaloneMuonTracksVtx = 0;
173 +  }
174 +
175 +  FillerTracks *fillerGlobalMuonTracks = new FillerTracks(cfg,"GlobalMuonTracks",defactive_);
176 +  const TrackMap *globalMuonTrackMap=0;
177 +  if (fillerGlobalMuonTracks->Active()) {
178 +    fillers_.push_back(fillerGlobalMuonTracks);
179 +    globalMuonTrackMap = fillerGlobalMuonTracks->GetTrackMap();
180 +  }
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;
190 +  if (fillerConversionInOutTracks->Active()) {
191 +    fillers_.push_back(fillerConversionInOutTracks);
192 +    conversionInOutTrackMap = fillerConversionInOutTracks->GetTrackMap();
193 +    conversionInOutTracks = fillerConversionInOutTracks->GetTrackCol();
194 +  }
195 +  else {
196 +    delete fillerConversionInOutTracks;
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;
204 +  if (fillerConversionOutInTracks->Active()) {
205 +    fillers_.push_back(fillerConversionOutInTracks);
206 +    conversionOutInTrackMap = fillerConversionOutInTracks->GetTrackMap();
207 +    conversionOutInTracks = fillerConversionOutInTracks->GetTrackCol();
208 +  }
209 +  else {
210 +    delete fillerConversionOutInTracks;
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 {
222 +    delete fillerGsfTracks;
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 {
232 +    delete fillerMuons;
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 {
241 +    delete fillerElectrons;
242 +      fillerElectrons = 0;
243 +  }
244  
245 <  FillerGlobalMuons *fillerGlobalMuons = new FillerGlobalMuons(cfg);
246 <  if (fillerGlobalMuons->Active())
247 <    fillers_.push_back(fillerGlobalMuons);
248 <  else
249 <    delete fillerGlobalMuons;
250 <
251 <  FillerGenParts *fillerGenParts = new FillerGenParts(cfg);
252 <  if (fillerGenParts->Active())
253 <    fillers_.push_back(fillerGenParts);
254 <  else
255 <    delete fillerGenParts;
245 >  FillerConversionElectrons *fillerConversionElectrons =
246 >    new FillerConversionElectrons(cfg,defactive_,conversionInOutTracks,conversionOutInTracks,
247 >                                  conversionInOutTrackMap,conversionOutInTrackMap);
248 >  const ConversionElectronMap *convElectronMap=0;
249 >  if (fillerConversionElectrons->Active()) {
250 >    fillers_.push_back(fillerConversionElectrons);
251 >    convElectronMap = fillerConversionElectrons->GetConversionElectronMap();
252 >  }
253 >  else {
254 >    delete fillerConversionElectrons;
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 {
273 >    delete fillerPhotons;
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