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.3 by loizides, Thu Jun 19 16:53:43 2008 UTC vs.
Revision 1.15 by loizides, Wed Jul 30 08:39:50 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
31 >  // Constructor.
32  
33    if (!configure(cfg)) {
34      throw edm::Exception(edm::errors::Configuration, "FillMitTree::FillMitTree()\n")
# Line 22 | Line 36 | FillMitTree::FillMitTree(const edm::Para
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);
77 >    cout << "Booking for " << (*iF)->Name() << endl;
78 >    (*iF)->BookDataBlock(*tws);
79    }
65  return;
80   }
81  
82 < //-------------------------------------------------------------------------------------------------
82 > //--------------------------------------------------------------------------------------------------
83   bool FillMitTree::configure(const edm::ParameterSet &cfg)
84   {
85    // Configure our fillers.
86  
73
87    FillerMetaInfos *fillerMetaInfos = new FillerMetaInfos(cfg);
88    if (fillerMetaInfos->Active())
89      fillers_.push_back(fillerMetaInfos);
90 <  else
90 >  else {
91      delete fillerMetaInfos;
92 +    fillerMetaInfos = 0;
93 +  }
94 +
95 +  FillerMCParticles *fillerMCParticles = new FillerMCParticles(cfg,"MCParticles",defactive_);
96 +  const GenParticleMap* genParticleMap = 0;
97 +  const SimParticleMap *simParticleMap = 0;
98 +  if (fillerMCParticles->Active()) {
99 +    fillers_.push_back(fillerMCParticles);
100 +    genParticleMap = fillerMCParticles->GetGenParticleMap();
101 +    simParticleMap = fillerMCParticles->GetSimParticleMap();
102 +  }
103 +  else {
104 +    delete fillerMCParticles;  
105 +    fillerMCParticles = 0;
106 +  }
107 +
108 +  FillerCaloJets *fillerCaloJets = new FillerCaloJets(cfg,"CaloJets",defactive_);
109 +  if (fillerCaloJets->Active()) {
110 +    fillers_.push_back(fillerCaloJets);
111 +  }
112 +  else {
113 +    delete fillerCaloJets;
114 +    fillerCaloJets = 0;
115 +  }
116 +
117 +  FillerCaloMet *fillerCaloMet = new FillerCaloMet(cfg,"CaloMet",defactive_);
118 +  if (fillerCaloMet->Active()) {
119 +    fillers_.push_back(fillerCaloMet);
120 +  }
121 +  else {
122 +    delete fillerCaloMet;
123 +    fillerCaloMet = 0;
124 +  }
125 +
126 +  FillerTracks *fillerGeneralTracks =
127 +    new FillerTracks(cfg,"GeneralTracks",defactive_,simParticleMap);
128 +  const TrackMap *generalTrackMap=0;
129 +  if (fillerGeneralTracks->Active()) {
130 +    fillers_.push_back(fillerGeneralTracks);
131 +    generalTrackMap = fillerGeneralTracks->GetTrackMap();
132 +  }
133 +  else {
134 +    delete fillerGeneralTracks;
135 +    fillerGeneralTracks = 0;
136 +  }
137 +
138 +  FillerTracks *fillerStandaloneMuonTracks =
139 +    new FillerTracks(cfg,"StandaloneMuonTracks",defactive_);
140 +  const TrackMap *standaloneMuonTrackMap=0;
141 +  if (fillerStandaloneMuonTracks->Active()) {
142 +    fillers_.push_back(fillerStandaloneMuonTracks);
143 +    standaloneMuonTrackMap = fillerStandaloneMuonTracks->GetTrackMap();
144 +  }
145 +  else {
146 +    delete fillerStandaloneMuonTracks;
147 +    fillerStandaloneMuonTracks = 0;
148 +  }
149 +
150 +  FillerTracks *fillerStandaloneMuonTracksVtx =
151 +    new FillerTracks(cfg,"StandaloneMuonTracksWVtxConstraint",defactive_);
152 +  const TrackMap *standaloneMuonTrackVtxMap=0;
153 +  if (fillerStandaloneMuonTracksVtx->Active()) {
154 +    fillers_.push_back(fillerStandaloneMuonTracksVtx);
155 +    standaloneMuonTrackVtxMap = fillerStandaloneMuonTracksVtx->GetTrackMap();
156 +  }
157 +  else {
158 +    delete fillerStandaloneMuonTracksVtx;
159 +    fillerStandaloneMuonTracksVtx = 0;
160 +  }
161 +
162 +  FillerTracks *fillerGlobalMuonTracks = new FillerTracks(cfg,"GlobalMuonTracks",defactive_);
163 +  const TrackMap *globalMuonTrackMap=0;
164 +  if (fillerGlobalMuonTracks->Active()) {
165 +    fillers_.push_back(fillerGlobalMuonTracks);
166 +    globalMuonTrackMap = fillerGlobalMuonTracks->GetTrackMap();
167 +  }
168 +  else {
169 +    delete fillerGlobalMuonTracks;  
170 +    fillerGlobalMuonTracks = 0;
171 +  }
172 +    
173 +  FillerTracks *fillerConversionInOutTracks =
174 +    new FillerTracks(cfg,"ConversionInOutTracks",defactive_,simParticleMap);
175 +  const TrackMap *conversionInOutTrackMap=0;
176 +  const TrackCol *conversionInOutTracks=0;
177 +  if (fillerConversionInOutTracks->Active()) {
178 +    fillers_.push_back(fillerConversionInOutTracks);
179 +    conversionInOutTrackMap = fillerConversionInOutTracks->GetTrackMap();
180 +    conversionInOutTracks = fillerConversionInOutTracks->GetTrackCol();
181 +  }
182 +  else {
183 +    delete fillerConversionInOutTracks;
184 +    fillerConversionInOutTracks = 0;
185 +  }
186 +
187 +  FillerTracks *fillerConversionOutInTracks =
188 +    new FillerTracks(cfg,"ConversionOutInTracks",defactive_,simParticleMap);
189 +  const TrackMap *conversionOutInTrackMap=0;
190 +  const TrackCol *conversionOutInTracks=0;
191 +  if (fillerConversionOutInTracks->Active()) {
192 +    fillers_.push_back(fillerConversionOutInTracks);
193 +    conversionOutInTrackMap = fillerConversionOutInTracks->GetTrackMap();
194 +    conversionOutInTracks = fillerConversionOutInTracks->GetTrackCol();
195 +  }
196 +  else {
197 +    delete fillerConversionOutInTracks;
198 +    fillerConversionOutInTracks = 0;
199 +  }
200 +
201 +  FillerGsfTracks *fillerGsfTracks =
202 +    new FillerGsfTracks(cfg,"GsfTracks",defactive_,simParticleMap);
203 +  const GsfTrackMap *gsfTrackMap=0;
204 +  if (fillerGsfTracks->Active()) {
205 +    fillers_.push_back(fillerGsfTracks);
206 +    gsfTrackMap = (GsfTrackMap*)fillerGsfTracks->GetTrackMap();
207 +  }
208 +  else {
209 +    delete fillerGsfTracks;
210 +    fillerGsfTracks = 0;
211 +  }
212 +
213 +  FillerMuons *fillerMuons =
214 +    new FillerMuons(cfg,defactive_,globalMuonTrackMap,standaloneMuonTrackMap,
215 +                    standaloneMuonTrackVtxMap,generalTrackMap);
216 +  if (fillerMuons->Active())
217 +    fillers_.push_back(fillerMuons);
218 +  else {
219 +    delete fillerMuons;
220 +    fillerMuons = 0;
221 +  }
222 +
223 +  FillerElectrons *fillerElectrons =
224 +    new FillerElectrons(cfg,defactive_,gsfTrackMap,generalTrackMap);
225 +  if (fillerElectrons->Active())
226 +    fillers_.push_back(fillerElectrons);
227 +  else {
228 +    delete fillerElectrons;
229 +      fillerElectrons = 0;
230 +  }
231  
232 <  FillerGlobalMuons *fillerGlobalMuons = new FillerGlobalMuons(cfg);
233 <  if (fillerGlobalMuons->Active())
234 <    fillers_.push_back(fillerGlobalMuons);
235 <  else
236 <    delete fillerGlobalMuons;
232 >  FillerConversionElectrons *fillerConversionElectrons =
233 >    new FillerConversionElectrons(cfg,defactive_,conversionInOutTracks,conversionOutInTracks,
234 >                                  conversionInOutTrackMap,conversionOutInTrackMap);
235 >  const ConversionElectronMap *convElectronMap=0;
236 >  if (fillerConversionElectrons->Active()) {
237 >    fillers_.push_back(fillerConversionElectrons);
238 >    convElectronMap = fillerConversionElectrons->GetConversionElectronMap();
239 >  }
240 >  else {
241 >    delete fillerConversionElectrons;
242 >    fillerConversionElectrons = 0;
243 >  }
244 >
245 >  FillerConversions *fillerConversions = new FillerConversions(cfg,defactive_,convElectronMap);
246 >  const ConversionMap *conversionMap=0;
247 >  if (fillerConversions->Active()) {
248 >    fillers_.push_back(fillerConversions);
249 >    conversionMap = fillerConversions->GetConversionMap();
250 >  }
251 >  else {
252 >    delete fillerConversions;
253 >    fillerConversions = 0;
254 >  }
255 >
256 >  FillerPhotons *fillerPhotons = new FillerPhotons(cfg,defactive_,conversionMap);
257 >  if (fillerPhotons->Active())
258 >    fillers_.push_back(fillerPhotons);
259 >  else {
260 >    delete fillerPhotons;
261 >    fillerPhotons = 0;
262 >  }
263 >
264 >  FillerStableParts *fillerStableParts = new FillerStableParts(cfg,"StableParts",defactive_, generalTrackMap);
265 >  const BasePartMap *particleMap=0;
266 >  if (fillerStableParts->Active()) {
267 >    fillers_.push_back(fillerStableParts);
268 >    particleMap = fillerStableParts->GetParticleMap();
269 >  }
270 >  else {
271 >    delete fillerStableParts;
272 >    fillerStableParts = 0;
273 >  }
274 >  
275 >  FillerDecayParts *fillerDecayParts = new FillerDecayParts(cfg,"DecayParts",defactive_,particleMap);
276 >  if (fillerDecayParts->Active()) {
277 >    fillers_.push_back(fillerDecayParts);
278 >  }
279 >  else {
280 >    delete fillerDecayParts;
281 >    fillerDecayParts = 0;
282 >  }
283  
284    return 1;
285   }
286  
287 < //-------------------------------------------------------------------------------------------------
287 > //--------------------------------------------------------------------------------------------------
288   void FillMitTree::endJob()
289   {
290    // Delete fillers.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines