ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerMetaInfos.cc
Revision: 1.11
Committed: Mon Jul 14 21:01:00 2008 UTC (16 years, 9 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.10: +5 -3 lines
Log Message:
Adapt to new getters.

File Contents

# User Rev Content
1 loizides 1.11 // $Id: FillerMetaInfos.cc,v 1.10 2008/07/07 16:14:01 loizides Exp $
2 loizides 1.1
3     #include "MitProd/TreeFiller/interface/FillerMetaInfos.h"
4     #include "FWCore/MessageLogger/interface/MessageLogger.h"
5 loizides 1.5 #include "FWCore/Framework/interface/TriggerNames.h"
6 loizides 1.1 #include "DataFormats/Common/interface/Handle.h"
7 loizides 1.5 #include "DataFormats/Common/interface/TriggerResults.h"
8 loizides 1.1 #include "MitAna/DataTree/interface/Names.h"
9 loizides 1.5 #include "MitAna/DataTree/interface/EventHeader.h"
10     #include "MitAna/DataTree/interface/LAHeader.h"
11     #include "MitAna/DataTree/interface/RunInfo.h"
12 loizides 1.8 #include <TObjectTable.h>
13    
14 loizides 1.1 using namespace std;
15     using namespace edm;
16     using namespace mithep;
17    
18 loizides 1.8 //--------------------------------------------------------------------------------------------------
19 loizides 1.7 FillerMetaInfos::FillerMetaInfos(const ParameterSet &cfg, bool active) :
20 loizides 1.11 BaseFiller(cfg,"MetaInfos",active),
21 loizides 1.2 evtName_(Conf().getUntrackedParameter<string>("evtName",Names::gkEvtHeaderBrn)),
22     runName_(Conf().getUntrackedParameter<string>("runName",Names::gkRunInfoBrn)),
23 loizides 1.4 lahName_(Conf().getUntrackedParameter<string>("lahName",Names::gkLAHeaderBrn)),
24 loizides 1.5 hltName_(Conf().getUntrackedParameter<string>("hltName","TriggerResults")),
25     l1tName_(Conf().getUntrackedParameter<string>("l1tName","todo")),
26     tws_(0),
27 loizides 1.2 eventHeader_(new EventHeader()),
28 loizides 1.3 evtLAHeader_(new LAHeader()),
29 loizides 1.2 runInfo_(new RunInfo()),
30     runTree_(0),
31 loizides 1.3 laTree_(0),
32     runEntries_(0),
33     fileNum_(0)
34 loizides 1.1 {
35 loizides 1.3 // Constructor.
36 loizides 1.1 }
37    
38 loizides 1.8 //--------------------------------------------------------------------------------------------------
39 loizides 1.1 FillerMetaInfos::~FillerMetaInfos()
40     {
41 loizides 1.3 // Destructor.
42    
43 loizides 1.2 delete eventHeader_;
44 loizides 1.8 delete evtLAHeader_;
45 loizides 1.2 delete runInfo_;
46 loizides 1.3 eventHeader_ = 0;
47 loizides 1.8 evtLAHeader_ = 0;
48 loizides 1.3 runInfo_ = 0;
49     runTree_ = 0;
50     laTree_ = 0;
51 loizides 1.1 }
52    
53 loizides 1.8 //--------------------------------------------------------------------------------------------------
54 loizides 1.2 void FillerMetaInfos::BookDataBlock(TreeWriter &tws)
55 loizides 1.1 {
56 loizides 1.3 // Create run info tre and book our branches.
57    
58     // add branches to main tree
59 loizides 1.2 tws.AddBranch(evtName_.c_str(),"mithep::EventHeader",&eventHeader_);
60 loizides 1.3
61     // add branches to run info tree
62     tws.AddBranchToTree(Names::gkRunTreeName,runName_.c_str(),"mithep::RunInfo",&runInfo_);
63 loizides 1.2 tws.SetAutoFill(Names::gkRunTreeName,0);
64     runTree_=tws.GetTree(Names::gkRunTreeName);
65 loizides 1.3
66     // add branches to lookahead tree
67     tws.AddBranchToTree(Names::gkLATreeName,Names::gkLAHeaderBrn,"mithep::LAHeader",&evtLAHeader_);
68     tws.SetAutoFill(Names::gkLATreeName,0);
69     laTree_=tws.GetTree(Names::gkLATreeName);
70    
71     // store pointer to tree writer
72     tws_ = &tws;
73 loizides 1.1 }
74    
75 loizides 1.8 //--------------------------------------------------------------------------------------------------
76 loizides 1.5 void FillerMetaInfos::FillDataBlock(const edm::Event &event,
77 loizides 1.1 const edm::EventSetup &setup)
78     {
79 loizides 1.3 // Fill our data structures.
80    
81     // clear map if a new file was opened
82     if (tws_->GetFileNumber()!=fileNum_) {
83     runmap_.clear();
84     fileNum_ = tws_->GetFileNumber();
85     runEntries_ = 0;
86     }
87    
88     UInt_t runnum = event.id().run();
89    
90     // store look ahead information
91     if (runEntries_>0) {
92     evtLAHeader_->SetRunNum(runnum);
93     laTree_->Fill();
94 loizides 1.11 //if(laTree_->GetEntries() % 100==0)
95     // gObjectTable->Print();
96    
97 loizides 1.3 }
98    
99 loizides 1.2 // fill event header
100     eventHeader_->SetEvtNum(event.id().event());
101     eventHeader_->SetLumiSec(event.luminosityBlock());
102     eventHeader_->SetRunNum(runnum);
103    
104 loizides 1.6 //FillHltInfo(event,setup);
105 loizides 1.5
106 loizides 1.3 // look-up if entry is in map
107 loizides 1.2 map<UInt_t,Int_t>::iterator riter = runmap_.find(runnum);
108     if (riter != runmap_.end()) {
109     Int_t runentry = riter->second;
110     eventHeader_->SetRunEntry(runentry);
111     return;
112     }
113 loizides 1.1
114 loizides 1.2 // fill new run info
115     Int_t runentry = runEntries_;
116     eventHeader_->SetRunEntry(runentry);
117     runmap_.insert(pair<UInt_t,Int_t>(runnum,runentry));
118    
119     runInfo_->SetRunNum(runnum);
120     runTree_->Fill();
121 loizides 1.3
122 loizides 1.2 ++runEntries_;
123 loizides 1.1 }
124 loizides 1.5
125 loizides 1.8 //--------------------------------------------------------------------------------------------------
126 loizides 1.5 void FillerMetaInfos::FillHltInfo(const edm::Event &event,
127     const edm::EventSetup &setup)
128     {
129     //
130    
131     Handle<TriggerResults> triggerResultsHLT;
132     try {
133     event.getByLabel(hltName_, triggerResultsHLT);
134 loizides 1.10 } catch (cms::Exception &ex) {
135 loizides 1.5 edm::LogError("FillerMetaInfos") << "Error! Cannot get trigger results with label "
136     << hltName_ << endl;
137     throw edm::Exception(edm::errors::Configuration, "FillerMetaInfos::FillHltInfo\n")
138     << "Error! Cannot get trigger results with label " << hltName_ << endl;
139     }
140    
141     TriggerNames triggerNames(*(triggerResultsHLT.product()));
142     for(UInt_t i=0;i<triggerNames.size();++i) {
143     cout << i << " " << triggerNames.triggerName(i) << endl;
144     }
145     }