ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/TreeMod/src/BaseMod.cc
Revision: 1.5
Committed: Wed Dec 3 17:38:17 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.4: +24 -17 lines
Log Message:
Cache ptr to HltFwkMod.

File Contents

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