ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerMetaInfos.cc
Revision: 1.7
Committed: Tue Jul 1 21:11:47 2008 UTC (16 years, 10 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.6: +3 -3 lines
Log Message:
Updated configs.

File Contents

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