ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillMitTree.cc
Revision: 1.21
Committed: Wed Sep 10 03:30:23 2008 UTC (16 years, 7 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.20: +2 -2 lines
Log Message:
Cleanup

File Contents

# User Rev Content
1 loizides 1.21 // $Id: FillMitTree.cc,v 1.20 2008/09/06 18:10:40 sixie 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.16 #include "MitProd/ObjectService/interface/ObjectService.h"
8 loizides 1.6 #include "MitProd/TreeFiller/interface/AssociationMaps.h"
9 loizides 1.3 #include "MitProd/TreeFiller/interface/FillerMetaInfos.h"
10 loizides 1.6 #include "MitProd/TreeFiller/interface/FillerTracks.h"
11     #include "MitProd/TreeFiller/interface/FillerGsfTracks.h"
12 sixie 1.18 #include "MitProd/TreeFiller/interface/FillerBasicClusters.h"
13     #include "MitProd/TreeFiller/interface/FillerSuperClusters.h"
14 sixie 1.20 #include "MitProd/TreeFiller/interface/FillerCaloTowers.h"
15 loizides 1.6 #include "MitProd/TreeFiller/interface/FillerMuons.h"
16     #include "MitProd/TreeFiller/interface/FillerElectrons.h"
17 loizides 1.11 #include "MitProd/TreeFiller/interface/FillerCaloJets.h"
18     #include "MitProd/TreeFiller/interface/FillerCaloMet.h"
19     #include "MitProd/TreeFiller/interface/FillerConversions.h"
20 bendavid 1.8 #include "MitProd/TreeFiller/interface/FillerConversionElectrons.h"
21     #include "MitProd/TreeFiller/interface/FillerPhotons.h"
22 bendavid 1.12 #include "MitProd/TreeFiller/interface/FillerMCParticles.h"
23 paus 1.13 #include "MitProd/TreeFiller/interface/FillerDecayParts.h"
24     #include "MitProd/TreeFiller/interface/FillerStableParts.h"
25 sixie 1.18 #include "MitProd/TreeFiller/interface/FillerPATMuons.h"
26     #include "MitProd/TreeFiller/interface/FillerPATElectrons.h"
27 loizides 1.21
28 paus 1.1 using namespace std;
29     using namespace edm;
30     using namespace mithep;
31    
32 loizides 1.16 mithep::ObjectService *mithep::FillMitTree::os_ = 0;
33    
34 loizides 1.9 //--------------------------------------------------------------------------------------------------
35 loizides 1.7 FillMitTree::FillMitTree(const edm::ParameterSet &cfg) :
36     defactive_(cfg.getUntrackedParameter<bool>("defactive",1))
37 paus 1.1 {
38 loizides 1.6 // Constructor.
39 loizides 1.15
40 loizides 1.3 if (!configure(cfg)) {
41     throw edm::Exception(edm::errors::Configuration, "FillMitTree::FillMitTree()\n")
42     << "Could not configure fillers." << "\n";
43     }
44 paus 1.1 }
45    
46 loizides 1.9 //--------------------------------------------------------------------------------------------------
47 paus 1.1 FillMitTree::~FillMitTree()
48     {
49 loizides 1.2 // Destructor: nothing to be done here.
50 paus 1.1 }
51    
52 loizides 1.9 //--------------------------------------------------------------------------------------------------
53 loizides 1.17 bool FillMitTree::addActiveFiller(BaseFiller *bf)
54     {
55     // Check if filler is active and add it to list of fillers. Otherwise delete it.
56    
57     if (bf->Active()) {
58     fillers_.push_back(bf);
59     return 1;
60     }
61    
62     delete bf;
63     bf = 0;
64     return 0;
65     }
66    
67     //--------------------------------------------------------------------------------------------------
68 loizides 1.3 void FillMitTree::analyze(const edm::Event &event,
69     const edm::EventSetup &setup)
70     {
71     // Access and copy event content.
72    
73     // First step: Loop over the data fillers of the various components
74     for (std::vector<BaseFiller*>::const_iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
75     (*iF)->FillDataBlock(event,setup);
76     }
77    
78     // Second step: Loop over the link resolution of the various components
79     for (std::vector<BaseFiller*>::const_iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
80     (*iF)->ResolveLinks(event,setup);
81     }
82     }
83    
84 loizides 1.9 //--------------------------------------------------------------------------------------------------
85 loizides 1.3 void FillMitTree::beginJob(const edm::EventSetup &event)
86 paus 1.1 {
87 loizides 1.2 // Access the tree and book branches.
88    
89 paus 1.1 Service<TreeService> ts;
90     TreeWriter *tws = ts->get();
91     if (! tws) {
92     throw edm::Exception(edm::errors::Configuration, "FillMitTree::beginJob()\n")
93 loizides 1.17 << "Could not get pointer to tree. "
94     << "Do you have the TreeServie define in your config?" << "\n";
95 paus 1.1 return;
96     }
97 loizides 1.16
98     if (os_==0) {
99     Service<ObjectService> os;
100     if (!os.isAvailable()) {
101     throw edm::Exception(edm::errors::Configuration, "FillMitTree::beginJob()\n")
102 loizides 1.17 << "Could not get object service. "
103     << "Do you have the ObjectService defined in your config?" << "\n";
104 loizides 1.16 return;
105     }
106     os_ = &(*os);
107     }
108    
109 paus 1.1 // Loop over the various components and book the branches
110     for (std::vector<BaseFiller*>::iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
111 loizides 1.16 edm::LogInfo("FillMitTree::beginJob") << "Booking for " << (*iF)->Name() << endl;
112 loizides 1.4 (*iF)->BookDataBlock(*tws);
113 paus 1.1 }
114     }
115    
116 loizides 1.9 //--------------------------------------------------------------------------------------------------
117 loizides 1.3 bool FillMitTree::configure(const edm::ParameterSet &cfg)
118 paus 1.1 {
119 loizides 1.3 // Configure our fillers.
120    
121 loizides 1.17 FillerMetaInfos *fillerMetaInfos = new FillerMetaInfos(cfg,defactive_);
122     addActiveFiller(fillerMetaInfos);
123 loizides 1.2
124 bendavid 1.12 FillerMCParticles *fillerMCParticles = new FillerMCParticles(cfg,"MCParticles",defactive_);
125 loizides 1.17 addActiveFiller(fillerMCParticles);
126 loizides 1.11
127 sixie 1.20 FillerCaloTowers *fillerCaloTowers =
128     new FillerCaloTowers(cfg, "CaloTowers", defactive_);
129     addActiveFiller(fillerCaloTowers);
130    
131 loizides 1.11 FillerCaloJets *fillerCaloJets = new FillerCaloJets(cfg,"CaloJets",defactive_);
132 loizides 1.17 addActiveFiller(fillerCaloJets);
133 loizides 1.11
134 sixie 1.19 FillerCaloJets *fillerSisCone5Jets = new FillerCaloJets(cfg,"SisCone5Jets",defactive_);
135     addActiveFiller(fillerSisCone5Jets);
136    
137 loizides 1.11 FillerCaloMet *fillerCaloMet = new FillerCaloMet(cfg,"CaloMet",defactive_);
138 loizides 1.17 addActiveFiller(fillerCaloMet);
139 loizides 1.11
140 loizides 1.17 FillerTracks *fillerGeneralTracks = new FillerTracks(cfg,"GeneralTracks",defactive_);
141     addActiveFiller(fillerGeneralTracks);
142 loizides 1.11
143 loizides 1.9 FillerTracks *fillerStandaloneMuonTracks =
144     new FillerTracks(cfg,"StandaloneMuonTracks",defactive_);
145 loizides 1.17 addActiveFiller(fillerStandaloneMuonTracks);
146 loizides 1.6
147     FillerTracks *fillerStandaloneMuonTracksVtx =
148 loizides 1.7 new FillerTracks(cfg,"StandaloneMuonTracksWVtxConstraint",defactive_);
149 loizides 1.17 addActiveFiller(fillerStandaloneMuonTracksVtx);
150 loizides 1.11
151 loizides 1.7 FillerTracks *fillerGlobalMuonTracks = new FillerTracks(cfg,"GlobalMuonTracks",defactive_);
152 loizides 1.17 addActiveFiller(fillerGlobalMuonTracks);
153 loizides 1.6
154     FillerTracks *fillerConversionInOutTracks =
155 loizides 1.17 new FillerTracks(cfg,"ConversionInOutTracks",defactive_);
156     addActiveFiller(fillerConversionInOutTracks);
157 loizides 1.11
158 loizides 1.6 FillerTracks *fillerConversionOutInTracks =
159 loizides 1.17 new FillerTracks(cfg,"ConversionOutInTracks",defactive_);
160     addActiveFiller(fillerConversionOutInTracks);
161 loizides 1.11
162 loizides 1.17 FillerGsfTracks *fillerGsfTracks = new FillerGsfTracks(cfg,"GsfTracks",defactive_);
163     addActiveFiller(fillerGsfTracks);
164 loizides 1.11
165 sixie 1.18 FillerBasicClusters *fillerBarrelBasicClusters =
166     new FillerBasicClusters(cfg, "BarrelBasicClusters", defactive_);
167     addActiveFiller(fillerBarrelBasicClusters);
168    
169     FillerSuperClusters *fillerBarrelSuperClusters =
170     new FillerSuperClusters(cfg,"BarrelSuperClusters", defactive_);
171     addActiveFiller(fillerBarrelSuperClusters);
172    
173     FillerBasicClusters *fillerEndcapBasicClusters =
174     new FillerBasicClusters(cfg,"EndcapBasicClusters", defactive_);
175     addActiveFiller(fillerEndcapBasicClusters);
176    
177     FillerSuperClusters *fillerEndcapSuperClusters =
178     new FillerSuperClusters(cfg,"EndcapSuperClusters", defactive_);
179     addActiveFiller(fillerEndcapSuperClusters);
180    
181 loizides 1.17 FillerMuons *fillerMuons = new FillerMuons(cfg,defactive_);
182     addActiveFiller(fillerMuons);
183 sixie 1.18
184 loizides 1.17 FillerElectrons *fillerElectrons = new FillerElectrons(cfg,defactive_);
185     addActiveFiller(fillerElectrons);
186 loizides 1.11
187 loizides 1.9 FillerConversionElectrons *fillerConversionElectrons =
188 loizides 1.17 new FillerConversionElectrons(cfg,defactive_);
189     addActiveFiller(fillerConversionElectrons);
190 loizides 1.11
191 loizides 1.17 FillerConversions *fillerConversions = new FillerConversions(cfg,defactive_);
192     addActiveFiller(fillerConversions);
193 loizides 1.11
194 loizides 1.17 FillerPhotons *fillerPhotons = new FillerPhotons(cfg,defactive_);
195     addActiveFiller(fillerPhotons);
196 loizides 1.5
197 loizides 1.17 FillerStableParts *fillerStableParts = new FillerStableParts(cfg,"StableParts",defactive_);
198     addActiveFiller(fillerStableParts);
199 bendavid 1.14
200 loizides 1.17 FillerDecayParts *fillerDecayParts = new FillerDecayParts(cfg,"DecayParts",defactive_);
201     addActiveFiller(fillerDecayParts);
202 paus 1.13
203 loizides 1.3 return 1;
204 paus 1.1 }
205    
206 loizides 1.9 //--------------------------------------------------------------------------------------------------
207 paus 1.1 void FillMitTree::endJob()
208     {
209 loizides 1.2 // Delete fillers.
210    
211     for (std::vector<BaseFiller*>::iterator iF = fillers_.begin(); iF != fillers_.end(); ++iF) {
212     delete *iF;
213     }
214    
215 paus 1.1 edm::LogInfo("FillMitTree::endJob") << "Ending Job" << endl;
216     }