1 |
loizides |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
loizides |
1.3 |
// $Id: HLTFwkMod.h,v 1.2 2008/12/02 09:33:45 loizides Exp $
|
3 |
loizides |
1.1 |
//
|
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/Collections.h"
|
21 |
|
|
|
22 |
|
|
namespace mithep
|
23 |
|
|
{
|
24 |
|
|
class TriggerTable;
|
25 |
|
|
class TriggerObjectsTable;
|
26 |
|
|
|
27 |
|
|
class HLTFwkMod : public BaseMod {
|
28 |
|
|
public:
|
29 |
|
|
HLTFwkMod(const char *name="HLTFwkMod", const char *title="HLT framework module");
|
30 |
|
|
~HLTFwkMod();
|
31 |
|
|
|
32 |
loizides |
1.2 |
const char *HLTTreeName() const { return fHLTTreeName; }
|
33 |
|
|
const char *HLTTabName() const { return fHLTTabName; }
|
34 |
|
|
const char *HLTLabName() const { return fHLTLabName; }
|
35 |
|
|
const char *HLTObjsName() const { return fObjsName; }
|
36 |
loizides |
1.1 |
const char *HLTTabNamePub() const { return fHLTTabNamePub; }
|
37 |
|
|
const char *HLTLabNamePub() const { return fHLTLabNamePub; }
|
38 |
|
|
const char *HLTObjsNamePub() const { return fObjsNamePub; }
|
39 |
|
|
|
40 |
|
|
protected:
|
41 |
|
|
void BeginRun();
|
42 |
|
|
Bool_t LoadTriggerTable();
|
43 |
|
|
Bool_t Notify();
|
44 |
|
|
void Process();
|
45 |
|
|
void SlaveBegin();
|
46 |
|
|
void SlaveTerminate();
|
47 |
|
|
|
48 |
|
|
TString fHLTTreeName; //HLT tree name
|
49 |
|
|
TString fHLTTabName; //HLT trigger names branch name
|
50 |
|
|
TString fHLTLabName; //HLT module labels branch name
|
51 |
|
|
TString fObjsName; //trigger objects branch name
|
52 |
|
|
TString fRelsName; //trigger to objects relation branch name
|
53 |
|
|
TString fHLTTabNamePub; //HLT trigger names published name
|
54 |
|
|
TString fHLTLabNamePub; //HLT module labels published name
|
55 |
|
|
TString fObjsNamePub; //trigger objects published name
|
56 |
|
|
const UInt_t fNMaxTriggers; //maximum number of triggers
|
57 |
loizides |
1.3 |
const TriggerObjectBaseArr *fObjs; //!trigger objects branch
|
58 |
|
|
const TriggerObjectRelArr *fRels; //!trigger to objects relation branch
|
59 |
loizides |
1.1 |
Bool_t fReload; //!=true then reload/rebuild tables
|
60 |
|
|
TTree *fHLTTree; //!HLT tree in current file
|
61 |
|
|
Vector<std::string> *fHLTTab; //!HLT trigger names
|
62 |
|
|
Vector<std::string> *fHLTLab; //!HLT module labels
|
63 |
|
|
Int_t fCurEnt; //!current entry in HLT tree (-2 for unset)
|
64 |
|
|
TriggerTable *fTriggers; //!exported published HLT trigger table
|
65 |
|
|
TriggerTable *fLabels; //!exported published HLT module label table
|
66 |
|
|
TriggerObjectsTable *fTrigObjs; //!exported published HLT trigger objects table
|
67 |
|
|
|
68 |
loizides |
1.2 |
friend class OutputMod;
|
69 |
|
|
|
70 |
loizides |
1.1 |
ClassDef(HLTFwkMod,1) // HLT framework TAM module
|
71 |
|
|
};
|
72 |
|
|
}
|
73 |
|
|
#endif
|