ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/PhysicsMod/interface/PublisherMod.h
(Generate patch)

Comparing UserCode/MitAna/PhysicsMod/interface/PublisherMod.h (file contents):
Revision 1.5 by loizides, Fri Dec 12 16:03:34 2008 UTC vs.
Revision 1.9 by loizides, Mon Jun 15 15:00:16 2009 UTC

# Line 13 | Line 13
13   #ifndef MITANA_PHYSICSMOD_PUBLISHERMOD_H
14   #define MITANA_PHYSICSMOD_PUBLISHERMOD_H
15  
16 + #include "MitAna/DataCont/interface/Collection.h"
17 + #include "MitAna/DataCont/interface/ObjArray.h"
18   #include "MitAna/TreeMod/interface/BaseMod.h"
17 #include "MitAna/DataTree/interface/Collections.h"
19  
20   namespace mithep
21   {
22 <  template<class T>
22 >  template<class TIn, class TOut=TIn>
23    class PublisherMod : public BaseMod
24    {
25      public:
26        PublisherMod(const char *name="PublisherMod",
27                     const char *title="Publisher module");
27      ~PublisherMod() {}
28  
29        const char              *GetBranchName()              const { return fBranchName;     }
30        const char              *GetInputName()               const { return GetBranchName(); }
# Line 41 | Line 41 | namespace mithep
41        TString                  fBranchName;    //name of collection
42        TString                  fPublicName;    //name of collection
43        Bool_t                   fPubPerEvent;   //=true then publish per event (def=1)
44 <      const Collection<T>     *fColIn;         //!pointer to collection (in)
45 <      ObjArray<T>             *fColOut;        //!pointer to collection (out)
44 >      const Collection<TIn>   *fColIn;         //!pointer to collection (in)
45 >      ObjArray<TOut>          *fColOut;        //!pointer to collection (out)
46  
47        void                     Process();
48        void                     SlaveBegin();
# Line 53 | Line 53 | namespace mithep
53   }
54  
55   //--------------------------------------------------------------------------------------------------
56 < template<class T>
57 < mithep::PublisherMod<T>::PublisherMod(const char *name, const char *title) :
56 > template<class TIn, class TOut>
57 > mithep::PublisherMod<TIn, TOut>::PublisherMod(const char *name, const char *title) :
58    BaseMod(name,title),
59    fBranchName("SetMe"),
60    fPublicName(""),
# Line 66 | Line 66 | mithep::PublisherMod<T>::PublisherMod(co
66   }
67  
68   //--------------------------------------------------------------------------------------------------
69 < template<class T>
70 < void mithep::PublisherMod<T>::Process()
69 > template<class TIn, class TOut>
70 > void mithep::PublisherMod<TIn, TOut>::Process()
71   {
72    // Load the branch, add pointers to the object array. Publish object array if needed.
73  
74    LoadBranch(GetBranchName());
75    if (fPubPerEvent)
76 <    fColOut = new mithep::ObjArray<T>(0, GetPublicName());
76 >    fColOut = new mithep::ObjArray<TOut>(0, GetPublicName());
77    else
78      fColOut->Reset();
79  
# Line 86 | Line 86 | void mithep::PublisherMod<T>::Process()
86   }
87  
88   //--------------------------------------------------------------------------------------------------
89 < template<class T>
90 < void mithep::PublisherMod<T>::SlaveBegin()
89 > template<class TIn, class TOut>
90 > void mithep::PublisherMod<TIn, TOut>::SlaveBegin()
91   {
92    // Request the branch to be published. Depending on the user's decision publish the array.
93  
94    ReqBranch(GetBranchName(), fColIn);
95  
96    if (fPublicName.IsNull())
97 <    fPublicName = fBranchName;
97 >    fPublicName = GetBranchName();
98  
99    if (!GetPubPerEvent()) {
100 <    fColOut = new mithep::ObjArray<T>(0, GetPublicName());
100 >    fColOut = new mithep::ObjArray<TOut>(0, GetPublicName());
101      PublishObj(fColOut);
102    }
103   }
104  
105   //--------------------------------------------------------------------------------------------------
106 < template<class T>
107 < void mithep::PublisherMod<T>::SlaveTerminate()
106 > template<class TIn, class TOut>
107 > void mithep::PublisherMod<TIn, TOut>::SlaveTerminate()
108   {
109    // Cleanup in case objects are published only once.
110  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines