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

File Contents

# User Rev Content
1 loizides 1.6 //--------------------------------------------------------------------------------------------------
2 loizides 1.12 // $Id: BaseMod.h,v 1.11 2008/12/01 17:42:01 loizides Exp $
3 loizides 1.2 //
4     // BaseMod
5     //
6 loizides 1.8 // This TAM module is the base module for all our TAM modules. It defines a couple of useful
7     // getters to retrieve information from the underlying framework code, such as the EventHeader,
8     // RunInfo or Trigger information.
9 loizides 1.2 //
10     // Authors: C.Loizides
11 loizides 1.6 //--------------------------------------------------------------------------------------------------
12 loizides 1.2
13 loizides 1.7 #ifndef MITANA_TREEMOD_BASEMOD_H
14     #define MITANA_TREEMOD_BASEMOD_H
15 loizides 1.1
16     #include "MitAna/TAM/interface/TAModule.h"
17 loizides 1.8 #include "MitAna/TreeMod/interface/Selector.h"
18     #include "MitAna/DataTree/interface/Collections.h"
19     #include "MitAna/DataTree/interface/TriggerName.h"
20     #include "MitAna/DataTree/interface/TriggerObject.h"
21 loizides 1.1
22     namespace mithep
23     {
24 loizides 1.5 class Selector;
25 loizides 1.12 class HLTFwkMod;
26 loizides 1.5
27 loizides 1.1 class BaseMod : public TAModule {
28     public:
29 loizides 1.12 BaseMod(const char *name="BaseMod", const char *title="Base analysis module");
30 loizides 1.4 ~BaseMod() {}
31    
32     protected:
33 loizides 1.9 void IncNEventsProcessed() { ++fNEventsProcessed; }
34     const EventHeader *GetEventHeader() const { return GetSel()->GetEventHeader(); }
35 loizides 1.12 const HLTFwkMod *GetHltFwkMod() const { return fHltFwkMod; }
36     const TriggerObjectCol *GetHLTObjects(const char *name) const;
37     const TriggerObjectsTable *GetHLTObjectsTable() const;
38     const TriggerTable *GetHLTTable() const;
39 loizides 1.10 Int_t GetNEventsProcessed() const { return fNEventsProcessed; }
40     template <class T> T *GetObjThisEvt(const char *name);
41     template <class T> T *GetPublicObj(const char *name);
42 loizides 1.9 const RunInfo *GetRunInfo() const { return GetSel()->GetRunInfo(); }
43     const Selector *GetSel() const;
44 loizides 1.12 Bool_t HasHLTInfo() const;
45 loizides 1.9 Bool_t ValidRunInfo() const { return GetSel()->ValidRunInfo(); }
46     void SaveNEventsProcessed(const char *name="hDEvents");
47    
48     private:
49 loizides 1.12 mutable const HLTFwkMod *fHltFwkMod; //!pointer to HLTFwdMod
50     const TString fHltFwkModName; //!name of HLTFwkMod
51 loizides 1.9 Int_t fNEventsProcessed; //number of events
52 loizides 1.1
53 loizides 1.4 ClassDef(BaseMod,1) // Base TAM module
54 loizides 1.1 };
55 loizides 1.6 }
56 loizides 1.4
57 loizides 1.6 //--------------------------------------------------------------------------------------------------
58 loizides 1.8 inline const mithep::TriggerObjectCol *mithep::BaseMod::GetHLTObjects(const char *name) const
59     {
60     // Get pointer to HLT TriggerObjects collection with given name for the current event.
61    
62     return (dynamic_cast<const TriggerObjectCol *>(FindObjThisEvt(name)));
63     }
64    
65     //--------------------------------------------------------------------------------------------------
66 loizides 1.10 template <class T>
67     inline T *mithep::BaseMod::GetObjThisEvt(const char *name)
68     {
69     // Get published object for the current event.
70    
71     T *ret = dynamic_cast<T*>(FindObjThisEvt(name));
72     if (!ret) {
73     SendError(kWarning, "GetObjThisEvent",
74     "Could not obtain object with name %s and type %s for current event!",
75     name, T::Class_Name());
76     }
77     return ret;
78     }
79    
80     //--------------------------------------------------------------------------------------------------
81     template <class T>
82     inline T *mithep::BaseMod::GetPublicObj(const char *name)
83     {
84     // Get public object.
85    
86 loizides 1.11
87 loizides 1.10 T *ret = dynamic_cast<T*>(FindPublicObj(name));
88     if (!ret) {
89     SendError(kWarning, "GetPublicObject",
90     "Could not obtain public object with name %s and type %s!",
91     name, T::Class_Name());
92     }
93     return ret;
94     }
95    
96     //--------------------------------------------------------------------------------------------------
97 loizides 1.6 inline const mithep::Selector *mithep::BaseMod::GetSel() const
98     {
99 loizides 1.8 // Get pointer to selector.
100    
101 loizides 1.6 return static_cast<const Selector*>(GetSelector());
102 loizides 1.1 }
103     #endif