Revision: | 1.3 |
Committed: | Thu Mar 18 20:21:00 2010 UTC (15 years, 1 month ago) by bendavid |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013, HEAD |
Branch point for: | Mit_025c_branch |
Changes since 1.2: | +2 -2 lines |
Log Message: | Fix beginrun,beginjob mess |
# | User | Rev | Content |
---|---|---|---|
1 | bendavid | 1.3 | // $Id: FillerGenMet.cc,v 1.2 2009/09/25 08:42:50 loizides Exp $ |
2 | bendavid | 1.1 | |
3 | #include "MitProd/TreeFiller/interface/FillerGenMet.h" | ||
4 | #include "DataFormats/METReco/interface/GenMET.h" | ||
5 | #include "DataFormats/METReco/interface/GenMETCollection.h" | ||
6 | #include "MitAna/DataTree/interface/GenMetCol.h" | ||
7 | #include "MitAna/DataTree/interface/Names.h" | ||
8 | #include "MitProd/ObjectService/interface/ObjectService.h" | ||
9 | |||
10 | using namespace std; | ||
11 | using namespace edm; | ||
12 | using namespace mithep; | ||
13 | |||
14 | //-------------------------------------------------------------------------------------------------- | ||
15 | FillerGenMet::FillerGenMet(const ParameterSet &cfg, const char *name, bool active) : | ||
16 | BaseFiller(cfg,name,active), | ||
17 | edmName_(Conf().getUntrackedParameter<string>("edmName","genMetTrue")), | ||
18 | mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkGenMetBrn)), | ||
19 | genMets_(new mithep::GenMetArr) | ||
20 | { | ||
21 | // Constructor. | ||
22 | } | ||
23 | |||
24 | //-------------------------------------------------------------------------------------------------- | ||
25 | FillerGenMet::~FillerGenMet() | ||
26 | { | ||
27 | // Destructor. | ||
28 | |||
29 | delete genMets_; | ||
30 | } | ||
31 | |||
32 | //-------------------------------------------------------------------------------------------------- | ||
33 | bendavid | 1.3 | void FillerGenMet::BookDataBlock(TreeWriter &tws) |
34 | bendavid | 1.1 | { |
35 | // Add mets branch to tree. | ||
36 | |||
37 | tws.AddBranch(mitName_,&genMets_); | ||
38 | OS()->add<mithep::GenMetArr>(genMets_,mitName_); | ||
39 | } | ||
40 | |||
41 | //-------------------------------------------------------------------------------------------------- | ||
42 | void FillerGenMet::FillDataBlock(const edm::Event &event, | ||
43 | const edm::EventSetup &setup) | ||
44 | { | ||
45 | // Fill missing energy from edm collection into our collection. | ||
46 | |||
47 | genMets_->Delete(); | ||
48 | |||
49 | Handle<reco::GenMETCollection> hGenMetProduct; | ||
50 | GetProduct(edmName_, hGenMetProduct, event); | ||
51 | |||
52 | const reco::GenMETCollection inGenMets = *(hGenMetProduct.product()); | ||
53 | |||
54 | // loop through all mets | ||
55 | for (reco::GenMETCollection::const_iterator inGenMet = inGenMets.begin(); | ||
56 | inGenMet != inGenMets.end(); ++inGenMet) { | ||
57 | |||
58 | mithep::GenMet *genMet = genMets_->Allocate(); | ||
59 | new (genMet) mithep::GenMet(inGenMet->px(), inGenMet->py()); | ||
60 | |||
61 | // fill Met base class data | ||
62 | genMet->SetSumEt(inGenMet->sumEt()); | ||
63 | genMet->SetElongitudinal(inGenMet->e_longitudinal()); | ||
64 | for(unsigned i=0; i<inGenMet->mEtCorr().size(); i++) { | ||
65 | genMet->PushCorrectionX(inGenMet->mEtCorr()[i].mex); | ||
66 | genMet->PushCorrectionY(inGenMet->mEtCorr()[i].mey); | ||
67 | genMet->PushCorrectionSumEt(inGenMet->mEtCorr()[i].sumet); | ||
68 | } | ||
69 | // fill GenMet class data | ||
70 | genMet->SetEmEnergy(inGenMet->emEnergy()); | ||
71 | genMet->SetHadEnergy(inGenMet->hadEnergy()); | ||
72 | genMet->SetInvisibleEnergy(inGenMet->invisibleEnergy()); | ||
73 | genMet->SetAuxiliaryEnergy(inGenMet->auxiliaryEnergy()); | ||
74 | } | ||
75 | genMets_->Trim(); | ||
76 | } |