5 |
|
#include <TTree.h> |
6 |
|
#include "MitAna/DataTree/interface/Names.h" |
7 |
|
#include "MitAna/DataTree/interface/TriggerName.h" |
8 |
+ |
#include "MitAna/DataTree/interface/TriggerMask.h" |
9 |
|
#include "MitAna/DataTree/interface/TriggerObject.h" |
10 |
+ |
#include "MitAna/DataTree/interface/TriggerObjectCol.h" |
11 |
+ |
#include "MitAna/DataTree/interface/TriggerObjectsTable.h" |
12 |
|
|
13 |
|
using namespace mithep; |
14 |
|
|
19 |
|
BaseMod(name,title), |
20 |
|
fAbort(kTRUE), |
21 |
|
fPrintTable(kFALSE), |
22 |
+ |
fIgnoreBits(kFALSE), |
23 |
+ |
fObjMode(kHlt), |
24 |
|
fBitsName(Names::gkHltBitBrn), |
25 |
|
fMyObjsNamePub(Form("%sTrigObjs", name)), |
26 |
|
fBits(0), |
60 |
|
const BitMask256 &ba = fTrigBitsAnd.at(tid); |
61 |
|
const BitMask256 &bm = fTrigBitsCmp.at(tid); |
62 |
|
for (UInt_t i=0; i<bm.Size(); ++i) { |
63 |
< |
if (ba.TestBit(i)==0) |
63 |
> |
if (ba.TestBit(i)==0 && !fIgnoreBits) |
64 |
|
continue; // not an active trigger bit |
65 |
|
if (fBitsDone.TestBit(i)) |
66 |
|
continue; // objects for this bit are already obtained |
68 |
|
continue; // excluded trigger bit (ie a !trgname) |
69 |
|
|
70 |
|
const TList *list = fTrigObjs->GetList(i); |
71 |
< |
fMyTrgObjs->Add(list); |
71 |
> |
|
72 |
> |
TIter iter(list->MakeIterator()); |
73 |
> |
const TriggerObject *to = dynamic_cast<const TriggerObject*>(iter.Next()); |
74 |
> |
while (to) { |
75 |
> |
if ( (fObjMode == kAll) || |
76 |
> |
((fObjMode==kHlt) && (to->IsHLT())) || |
77 |
> |
((fObjMode==kL1) && (to->IsL1())) ) |
78 |
> |
fMyTrgObjs->Add(to); |
79 |
> |
to = dynamic_cast<const TriggerObject*>(iter.Next()); |
80 |
> |
} |
81 |
|
fBitsDone.SetBit(i); |
82 |
|
} |
83 |
|
} |
164 |
|
|
165 |
|
// take action if accepted |
166 |
|
++fNAcceped; |
167 |
+ |
IncNEventsProcessed(); |
168 |
|
OnAccepted(); |
169 |
|
if (!AddObjThisEvt(fMyTrgObjs)) { |
170 |
|
SendError(kAbortAnalysis, "Process", |
193 |
|
return; |
194 |
|
} |
195 |
|
} |
196 |
+ |
|
197 |
+ |
//-------------------------------------------------------------------------------------------------- |
198 |
+ |
void HLTMod::SlaveTerminate() |
199 |
+ |
{ |
200 |
+ |
// Save number of accepted events. |
201 |
+ |
|
202 |
+ |
SaveNEventsProcessed("hDHLTEvents"); |
203 |
+ |
} |