1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: HLTFwkMod.h,v 1.7 2009/07/13 10:39:20 loizides Exp $
|
3 |
//
|
4 |
// HLTFwkMod
|
5 |
//
|
6 |
// This TAM module reads the trigger and trigger objects information whenever it changes
|
7 |
// (ie on run boundaries). It then publishes this in a convenient way so that the real
|
8 |
// user HLTMod modules can make use of it. Note: This module gets automatically integrated
|
9 |
// by the Analysis steering class (unless you have called Analysis::SetUseHLT(kFALSE).
|
10 |
//
|
11 |
// Authors: C.Loizides
|
12 |
//--------------------------------------------------------------------------------------------------
|
13 |
|
14 |
#ifndef MITANA_TREEMOD_HLTFWKMOD_H
|
15 |
#define MITANA_TREEMOD_HLTFWKMOD_H
|
16 |
|
17 |
#include <string>
|
18 |
#include <TString.h>
|
19 |
#include "MitAna/TreeMod/interface/BaseMod.h"
|
20 |
#include "MitAna/DataTree/interface/TriggerObjectBaseFwd.h"
|
21 |
#include "MitAna/DataTree/interface/TriggerObjectRelFwd.h"
|
22 |
|
23 |
namespace mithep
|
24 |
{
|
25 |
class TriggerTable;
|
26 |
class TriggerObjectsTable;
|
27 |
|
28 |
class HLTFwkMod : public BaseMod {
|
29 |
public:
|
30 |
HLTFwkMod(const char *name="HLTFwkMod", const char *title="HLT framework module");
|
31 |
~HLTFwkMod();
|
32 |
|
33 |
const char *HLTLabName() const { return fHLTLabName; }
|
34 |
const char *HLTLabNamePub() const { return fHLTLabNamePub; }
|
35 |
const char *HLTObjsName() const { return fObjsName; }
|
36 |
const char *HLTObjsNamePub() const { return fObjsNamePub; }
|
37 |
const char *HLTTabName() const { return fHLTTabName; }
|
38 |
const char *HLTTabNamePub() const { return fHLTTabNamePub; }
|
39 |
const char *HLTTreeName() const { return fHLTTreeName; }
|
40 |
void SetHLTLabName(const char *n) { fHLTLabName = n; }
|
41 |
void SetHLTLabNamePub(const char *n) { fHLTLabNamePub = n; }
|
42 |
void SetHLTObjsName(const char *n) { fObjsName = n; }
|
43 |
void SetHLTObjsNamePub(const char *n) { fObjsNamePub = n; }
|
44 |
void SetHLTTabName(const char *n) { fHLTTabName = n; }
|
45 |
void SetHLTTabNamePub(const char *n) { fHLTTabNamePub = n; }
|
46 |
void SetHLTTreeName(const char *n) { fHLTTreeName = n; }
|
47 |
|
48 |
protected:
|
49 |
void BeginRun();
|
50 |
Bool_t LoadTriggerTable();
|
51 |
Bool_t Notify();
|
52 |
void Process();
|
53 |
void SlaveBegin();
|
54 |
void SlaveTerminate();
|
55 |
|
56 |
TString fHLTTreeName; //HLT tree name
|
57 |
TString fHLTTabName; //HLT trigger names branch name
|
58 |
TString fHLTLabName; //HLT module labels branch name
|
59 |
TString fObjsName; //trigger objects branch name
|
60 |
TString fRelsName; //trigger to objects relation branch name
|
61 |
TString fHLTTabNamePub; //HLT trigger names published name
|
62 |
TString fHLTLabNamePub; //HLT module labels published name
|
63 |
TString fObjsNamePub; //trigger objects published name
|
64 |
const UInt_t fNMaxTriggers; //maximum number of triggers
|
65 |
const TriggerObjectBaseArr *fObjs; //!trigger objects branch
|
66 |
const TriggerObjectRelArr *fRels; //!trigger to objects relation branch
|
67 |
Bool_t fReload; //!=true then reload/rebuild tables
|
68 |
TTree *fHLTTree; //!HLT tree in current file
|
69 |
std::vector<std::string> *fHLTTab; //!HLT trigger names
|
70 |
std::vector<std::string> *fHLTLab; //!HLT module labels
|
71 |
Int_t fCurEnt; //!current entry in HLT tree (-2 for unset)
|
72 |
TriggerTable *fTriggers; //!exported published HLT trigger table
|
73 |
TriggerTable *fLabels; //!exported published HLT module label table
|
74 |
TriggerObjectsTable *fTrigObjs; //!exported published HLT trigger objects table
|
75 |
|
76 |
friend class OutputMod;
|
77 |
|
78 |
ClassDef(HLTFwkMod, 1) // HLT framework TAM module
|
79 |
};
|
80 |
}
|
81 |
#endif
|