ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/interface/FillerMetaInfos.h
Revision: 1.32
Committed: Tue Mar 30 12:10:41 2010 UTC (15 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c
Changes since 1.31: +8 -1 lines
Log Message:
Fix hlt filling across alternating run boundaries

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.32 // $Id: FillerMetaInfos.h,v 1.31 2010/03/18 20:21:00 bendavid Exp $
3 loizides 1.1 //
4     // FillerMetaInfos
5 loizides 1.15 //
6 loizides 1.19 // Implementation of a filler that stores all of the meta information, as well as the L1 and HLT
7     // trigger info into the corresponding bambu objects.
8 loizides 1.1 //
9     // Authors: C.Loizides
10     //--------------------------------------------------------------------------------------------------
11    
12 loizides 1.9 #ifndef MITPROD_TREEFILLER_FILLERMETAINFOS_H
13     #define MITPROD_TREEFILLER_FILLERMETAINFOS_H
14 loizides 1.1
15 bendavid 1.30 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
16 loizides 1.27 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
17 loizides 1.25 #include "MitAna/DataTree/interface/L1TriggerMaskFwd.h"
18 loizides 1.21 #include "MitAna/DataTree/interface/TriggerObjectBaseFwd.h"
19     #include "MitAna/DataTree/interface/TriggerObjectRelFwd.h"
20 loizides 1.27 #include "MitAna/DataTree/interface/Types.h"
21 loizides 1.1 #include "MitProd/TreeFiller/interface/BaseFiller.h"
22 loizides 1.10
23     class THashTable;
24 loizides 1.1
25     namespace mithep
26     {
27 loizides 1.5 class RunInfo;
28     class EventHeader;
29     class LAHeader;
30 loizides 1.12 class TriggerMask;
31 loizides 1.5
32 loizides 1.1 class FillerMetaInfos : public BaseFiller
33     {
34     public:
35 loizides 1.13 FillerMetaInfos(const edm::ParameterSet &cfg, const char *name="MetaInfos", bool active=1);
36 loizides 1.1 ~FillerMetaInfos();
37    
38 bendavid 1.31 void BookDataBlock(TreeWriter &tws);
39 loizides 1.16 void FillDataBlock(const edm::Event &e, const edm::EventSetup &es);
40 loizides 1.26
41     private:
42 loizides 1.28 void FillBitAMask(BitMask128 &bits, const DecisionWord &dw);
43     void FillBitTMask(BitMask128 &bits, const TechnicalTriggerWord &tw);
44 loizides 1.16 void FillHltInfo(const edm::Event &e, const edm::EventSetup &es);
45     void FillHltTrig(const edm::Event &e, const edm::EventSetup &es);
46 loizides 1.25 void FillL1Trig(const edm::Event &e, const edm::EventSetup &es);
47 loizides 1.27 void FillRunInfo(const edm::Event &e, const edm::EventSetup &es);
48 loizides 1.23 const char *Istr() const;
49    
50     std::string evtName_; //event branch name (must be unique)
51     std::string runTreeName_; //run info tree name (must be unique)
52     std::string lahTreeName_; //look-ahead header tree name (must be unique)
53     std::string hltTreeName_; //hlt tree name (must be unique)
54 loizides 1.10 Bool_t hltActive_; //=true if HLT info are filled
55 loizides 1.17 std::string hltProcName_; //HLT process name to be used
56 loizides 1.10 std::string hltResName_; //HLT trigger results edm name
57     std::string hltEvtName_; //HLT trigger event edm name
58     std::string hltTableName_; //HLT trigger table branch name
59     std::string hltLabelName_; //HLT trigger label branch name
60 bendavid 1.32 std::string hltMenuName_; //HLT trigger menu branch name
61 loizides 1.10 std::string hltBitsName_; //HLT trigger bits branch name
62     std::string hltObjsName_; //HLT trigger branch name
63 loizides 1.25 Bool_t l1Active_; //=true if some L1 info are filled
64     std::string l1GTRecName_; //L1 global trigger record edm name
65 loizides 1.27 std::string l1GTRRName_; //l1 global readout trigger record edm name
66 loizides 1.25 std::string l1TBitsName_; //L1 technical bit name
67     std::string l1ABitsName_; //L1 algo bit name
68 loizides 1.10 TreeWriter *tws_; //tree writer (not owned)
69     EventHeader *eventHeader_; //event header
70     LAHeader *evtLAHeader_; //look-ahead event header
71     RunInfo *runInfo_; //run info block
72     TTree *runTree_; //run info tree (not owned)
73     TTree *laTree_; //look ahead tree (not owned)
74     Int_t runEntries_; //number of run info entries
75     std::map<UInt_t,Int_t> runmap_; //map between run number and entry number
76 bendavid 1.32 std::map<std::string,Int_t> hltmap_; //map btw hlt table name and entry number
77     Int_t runentry_; //current run entry
78     Int_t hltentry_; //current hlt entry
79 loizides 1.12 TriggerMask *hltBits_; //HLT trigger bit mask
80 bendavid 1.32 std::string *hltMenu_; //HLT menu name
81 loizides 1.11 std::vector<std::string> *hltTable_; //HLT trigger table
82 bendavid 1.32 std::vector<std::map<std::string,Short_t> > hltTabMaps_; //cached tablemaps
83 loizides 1.10 std::map<std::string,Short_t> *hltTabMap_; //HLT trigger labels map
84 loizides 1.11 std::vector<std::string> *hltLabels_; //HLT module labels
85 bendavid 1.32 std::vector<std::map<std::string,Short_t> > hltLabMaps_; //cached tablemaps
86 loizides 1.10 std::map<std::string,Short_t> *hltLabMap_; //HLT module labels map
87     TriggerObjectBaseArr *hltObjs_; //HLT trigger objects
88     TriggerObjectRelArr *hltRels_; //HLT trigger objects relation
89     TTree *hltTree_; //HLT trigger tree (not owned)
90 bendavid 1.30 HLTConfigProvider hltConfig_; //HLT config from provenance
91 loizides 1.10 Int_t hltEntries_; //number of hlt info entries
92     UShort_t fileNum_; //file number of current file
93 loizides 1.25 L1TriggerMask *l1TBits_; //L1 technical trigger bit mask
94     L1TriggerMask *l1ABits_; //L1 algorithm trigger bit mask
95 loizides 1.26 L1TriggerMask *l1TBits2_; //L1 technical trigger bit mask before masking
96     L1TriggerMask *l1ABits2_; //L1 algorithm trigger bit mask before masking
97 loizides 1.27 L1TriggerMaskArr *l1AbArr_; //L1 algorithm trigger bits
98     L1TriggerMaskArr *l1TbArr_; //L1 technical trigger bits
99 loizides 1.7
100 loizides 1.23 static Int_t instance_; //counts active instances
101 loizides 1.1 };
102     }
103     #endif