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.3 by loizides, Tue Dec 9 10:18:33 2008 UTC vs.
Revision 1.6 by bendavid, Wed Mar 11 18:13:10 2009 UTC

# Line 18 | Line 18
18  
19   namespace mithep
20   {
21 <  template<class T>
21 >  template<class TIn, class TOut=TIn>
22    class PublisherMod : public BaseMod
23    {
24      public:
# Line 26 | Line 26 | namespace mithep
26                     const char *title="Publisher module");
27        ~PublisherMod() {}
28  
29 <      const char              *GetBranchName()              const { return fBranchName;  }
30 <      const char              *GetPublicName()              const { return fPublicName;  }
31 <      Bool_t                   GetPubPerEvent()             const { return fPubPerEvent; }
32 <      void                     SetBranchName(const char *n)       { fBranchName=n;       }
33 <      void                     SetPublicName(const char *n)       { fPublicName=n;       }
34 <      void                     PublishPerEvent(Bool_t b)          { fPubPerEvent = b;    }
29 >      const char              *GetBranchName()              const { return fBranchName;     }
30 >      const char              *GetInputName()               const { return GetBranchName(); }
31 >      const char              *GetOutputName()              const { return GetPublicName(); }
32 >      const char              *GetPublicName()              const { return fPublicName;     }
33 >      Bool_t                   GetPubPerEvent()             const { return fPubPerEvent;    }
34 >      void                     SetBranchName(const char *n)       { fBranchName=n;          }
35 >      void                     SetInputName(const char *n)        { SetBranchName(n);       }
36 >      void                     SetOutputName(const char *n)       { SetPublicName(n);       }
37 >      void                     SetPublicName(const char *n)       { fPublicName=n;          }
38 >      void                     PublishPerEvent(Bool_t b)          { fPubPerEvent = b;       }
39  
40      protected:
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();
49        void                     SlaveTerminate();
50  
51 <      ClassDefT(PublisherMod,1) // Publisher module
51 >      ClassDefT(PublisherMod, 1) // Publisher module
52    };
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 62 | 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 82 | 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  
# Line 93 | Line 97 | void mithep::PublisherMod<T>::SlaveBegin
97      fPublicName = fBranchName;
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