1 |
loizides |
1.7 |
// $Id: BaseMod.cc,v 1.6 2008/12/09 10:16:24 loizides Exp $
|
2 |
loizides |
1.1 |
|
3 |
|
|
#include "MitAna/TreeMod/interface/BaseMod.h"
|
4 |
loizides |
1.2 |
#include "MitAna/TreeMod/interface/HLTFwkMod.h"
|
5 |
loizides |
1.3 |
#include <TH1D.h>
|
6 |
loizides |
1.1 |
|
7 |
|
|
using namespace mithep;
|
8 |
|
|
|
9 |
|
|
ClassImp(mithep::BaseMod)
|
10 |
loizides |
1.2 |
|
11 |
|
|
//--------------------------------------------------------------------------------------------------
|
12 |
loizides |
1.5 |
BaseMod::BaseMod(const char *name, const char *title) :
|
13 |
loizides |
1.6 |
TAModule(name,title),
|
14 |
|
|
fFillHist(kFALSE),
|
15 |
loizides |
1.7 |
fEvtObjBrNames(0),
|
16 |
loizides |
1.5 |
fHltFwkMod(0),
|
17 |
|
|
fHltFwkModName("HLTFwkMod"),
|
18 |
loizides |
1.6 |
fNEventsProc(0)
|
19 |
loizides |
1.5 |
{
|
20 |
|
|
// Constructor.
|
21 |
loizides |
1.7 |
|
22 |
|
|
fEvtObjBrNames.SetOwner(kTRUE);
|
23 |
loizides |
1.5 |
}
|
24 |
|
|
|
25 |
|
|
//--------------------------------------------------------------------------------------------------
|
26 |
|
|
const TriggerObjectsTable *BaseMod::GetHLTObjectsTable() const
|
27 |
loizides |
1.2 |
{
|
28 |
|
|
// Get pointer to HLT objects table obtained by module with given name. (Note: normally
|
29 |
|
|
// you want to stick to the default argument.)
|
30 |
|
|
|
31 |
|
|
if (!HasHLTInfo())
|
32 |
|
|
return 0;
|
33 |
|
|
|
34 |
loizides |
1.5 |
return (dynamic_cast<const TriggerObjectsTable *>(FindPublicObj(fHltFwkMod->HLTObjsNamePub())));
|
35 |
loizides |
1.2 |
}
|
36 |
|
|
|
37 |
|
|
//--------------------------------------------------------------------------------------------------
|
38 |
loizides |
1.5 |
const TriggerTable *BaseMod::GetHLTTable() const
|
39 |
loizides |
1.2 |
{
|
40 |
loizides |
1.5 |
// Get pointer to HLT trigger table obtained by module with given name.
|
41 |
loizides |
1.2 |
|
42 |
loizides |
1.5 |
if (!HasHLTInfo())
|
43 |
loizides |
1.2 |
return 0;
|
44 |
|
|
|
45 |
loizides |
1.5 |
return (dynamic_cast<const TriggerTable *>(FindPublicObj(fHltFwkMod->HLTTabNamePub())));
|
46 |
loizides |
1.2 |
}
|
47 |
|
|
|
48 |
|
|
//--------------------------------------------------------------------------------------------------
|
49 |
loizides |
1.5 |
Bool_t BaseMod::HasHLTInfo() const
|
50 |
loizides |
1.2 |
{
|
51 |
loizides |
1.5 |
// Check if HLT framework module is in list of modules.
|
52 |
|
|
|
53 |
|
|
if (fHltFwkMod)
|
54 |
|
|
return kTRUE;
|
55 |
loizides |
1.2 |
|
56 |
|
|
if (!GetSelector() || !GetSelector()->GetTopModule())
|
57 |
|
|
return kFALSE;
|
58 |
|
|
|
59 |
|
|
const TList *tasks = GetSelector()->GetTopModule()->GetSubModules();
|
60 |
|
|
if (!tasks)
|
61 |
|
|
return kFALSE;
|
62 |
|
|
|
63 |
loizides |
1.5 |
fHltFwkMod = dynamic_cast<const HLTFwkMod*>(tasks->FindObject(fHltFwkModName));
|
64 |
|
|
if (fHltFwkMod)
|
65 |
loizides |
1.2 |
return kTRUE;
|
66 |
|
|
return kFALSE;
|
67 |
|
|
}
|
68 |
loizides |
1.3 |
|
69 |
|
|
//--------------------------------------------------------------------------------------------------
|
70 |
|
|
void BaseMod::SaveNEventsProcessed(const char *name)
|
71 |
|
|
{
|
72 |
|
|
// Save the number of processed events in a one-bin histogram.
|
73 |
|
|
|
74 |
|
|
TH1D *hDEvents = new TH1D(name,"Total number of processed events",1,-0.5,0.5);
|
75 |
loizides |
1.6 |
hDEvents->Fill(0.0,fNEventsProc);
|
76 |
|
|
hDEvents->SetEntries(fNEventsProc);
|
77 |
loizides |
1.3 |
AddOutput(hDEvents);
|
78 |
|
|
}
|