1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
bendavid |
1.29 |
// $Id: FillerMetaInfos.h,v 1.28 2009/12/02 20:28:15 loizides 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.29 |
#include "MitProd/TreeFiller/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 |
loizides |
1.24 |
void BookDataBlock(TreeWriter &tws, const edm::EventSetup &es);
|
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 |
|
|
std::string hltBitsName_; //HLT trigger bits branch name
|
61 |
|
|
std::string hltObjsName_; //HLT trigger branch name
|
62 |
loizides |
1.25 |
Bool_t l1Active_; //=true if some L1 info are filled
|
63 |
|
|
std::string l1GTRecName_; //L1 global trigger record edm name
|
64 |
loizides |
1.27 |
std::string l1GTRRName_; //l1 global readout trigger record edm name
|
65 |
loizides |
1.25 |
std::string l1TBitsName_; //L1 technical bit name
|
66 |
|
|
std::string l1ABitsName_; //L1 algo bit name
|
67 |
loizides |
1.10 |
TreeWriter *tws_; //tree writer (not owned)
|
68 |
|
|
EventHeader *eventHeader_; //event header
|
69 |
|
|
LAHeader *evtLAHeader_; //look-ahead event header
|
70 |
|
|
RunInfo *runInfo_; //run info block
|
71 |
|
|
TTree *runTree_; //run info tree (not owned)
|
72 |
|
|
TTree *laTree_; //look ahead tree (not owned)
|
73 |
|
|
Int_t runEntries_; //number of run info entries
|
74 |
|
|
std::map<UInt_t,Int_t> runmap_; //map between run number and entry number
|
75 |
loizides |
1.12 |
TriggerMask *hltBits_; //HLT trigger bit mask
|
76 |
loizides |
1.11 |
std::vector<std::string> *hltTable_; //HLT trigger table
|
77 |
loizides |
1.10 |
std::map<std::string,Short_t> *hltTabMap_; //HLT trigger labels map
|
78 |
loizides |
1.11 |
std::vector<std::string> *hltLabels_; //HLT module labels
|
79 |
loizides |
1.10 |
std::map<std::string,Short_t> *hltLabMap_; //HLT module labels map
|
80 |
|
|
TriggerObjectBaseArr *hltObjs_; //HLT trigger objects
|
81 |
|
|
TriggerObjectRelArr *hltRels_; //HLT trigger objects relation
|
82 |
|
|
TTree *hltTree_; //HLT trigger tree (not owned)
|
83 |
bendavid |
1.29 |
mitedm::HLTConfigProvider hltConfig_; //HLT config from provenance
|
84 |
loizides |
1.10 |
Int_t hltEntries_; //number of hlt info entries
|
85 |
|
|
UShort_t fileNum_; //file number of current file
|
86 |
loizides |
1.25 |
L1TriggerMask *l1TBits_; //L1 technical trigger bit mask
|
87 |
|
|
L1TriggerMask *l1ABits_; //L1 algorithm trigger bit mask
|
88 |
loizides |
1.26 |
L1TriggerMask *l1TBits2_; //L1 technical trigger bit mask before masking
|
89 |
|
|
L1TriggerMask *l1ABits2_; //L1 algorithm trigger bit mask before masking
|
90 |
loizides |
1.27 |
L1TriggerMaskArr *l1AbArr_; //L1 algorithm trigger bits
|
91 |
|
|
L1TriggerMaskArr *l1TbArr_; //L1 technical trigger bits
|
92 |
loizides |
1.7 |
|
93 |
loizides |
1.23 |
static Int_t instance_; //counts active instances
|
94 |
loizides |
1.1 |
};
|
95 |
|
|
}
|
96 |
|
|
#endif
|