ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/interface/AssociationMap.h
(Generate patch)

Comparing UserCode/MitProd/TreeFiller/interface/AssociationMap.h (file contents):
Revision 1.4 by loizides, Wed Jul 30 08:39:08 2008 UTC vs.
Revision 1.9.2.1 by paus, Tue May 15 23:31:20 2012 UTC

# Line 1 | Line 1
1   //--------------------------------------------------------------------------------------------------
2   // $Id$
3   //
4 < // Association Map
4 > // AssociationMap
5   //
6   // Wrapper for std::map, used to resolve links during tree filling.
7 // This class needs work! CL.
7   //
8 < // Authors: J.Bendavid, C.Loizides
8 > // Authors: C.Paus, J.Bendavid, C.Loizides
9   //--------------------------------------------------------------------------------------------------
10  
11 < #ifndef TREEFILLER_ASSOCIATIONMAP_H
12 < #define TREEFILLER_ASSOCIATIONMAP_H
11 > #ifndef MITPROD_TREEFILLER_ASSOCIATIONMAP_H
12 > #define MITPROD_TREEFILLER_ASSOCIATIONMAP_H
13  
14   #include <map>
15   #include <TObject.h>
# Line 20 | Line 19 | namespace mithep
19   {
20    template <class EdmClass, class MitClass> class AssociationMap : public TObject
21    {
22 +  public:
23      typedef std::map<EdmClass, MitClass> fwdMapType;
24      typedef std::map<MitClass, EdmClass> revMapType;
25      
26 <    public:
27 <      AssociationMap() : edmProductId_(0) {}
28 <      ~AssociationMap() {}
29 <      
30 <      void       Add(EdmClass edmObj, MitClass mitObj);
31 <      EdmClass   GetEdm(MitClass mitObj)    const;
32 <      Int_t      GetEdmProductId()          const { return edmProductId_; }
33 <      Int_t      GetEntries()               const { return fwdMap_.size(); }
34 <      MitClass   GetMit(EdmClass edmObj)    const;
35 <      void       Reset()                          { fwdMap_.clear(); revMap_.clear(); }
36 <      void       SetEdmProductId(Int_t id)        { edmProductId_ = id; }
37 <
38 <    protected:
39 <      fwdMapType fwdMap_;       //map between edm ref and mit ptr
40 <      revMapType revMap_;       //map between mit ptr and edm ref
41 <      Int_t      edmProductId_; //product id for consistency check
26 >    AssociationMap() : edmProductId_(0) {}
27 >    ~AssociationMap() {}
28 >    
29 >    void              Add(EdmClass edmObj, MitClass mitObj);
30 >    EdmClass          GetEdm(MitClass mitObj)    const;
31 >    Int_t             GetEdmProductId()          const { return edmProductId_;  }
32 >    Int_t             GetEntries()               const { return fwdMap_.size(); }
33 >    MitClass          GetMit(EdmClass edmObj)    const;
34 >    const char       *GetBrName()                const { return brname_.c_str();           }
35 >    bool              HasMit(EdmClass edmObj)    const;
36 >    void              Reset()                          { fwdMap_.clear(); revMap_.clear(); }
37 >    void              SetEdmProductId(Int_t id)        { edmProductId_ = id;               }
38 >    void              SetBrName(const std::string &n)  { brname_ = n;                      }
39 >    void              SetBrName(const char *n)         { brname_ = n;                      }
40 >    const fwdMapType &FwdMap()                   const { return fwdMap_;                   }
41 >    const revMapType &RevMap()                   const { return revMap_;                   }
42 >    
43 >  protected:
44 >    fwdMapType   fwdMap_;       //map between edm ref and mit ptr
45 >    revMapType   revMap_;       //map between mit ptr and edm ref
46 >    Int_t        edmProductId_; //product id for consistency check
47 >    std::string  brname_;       //branch name of MIT objects
48    };
49   }
50  
# Line 74 | Line 80 | inline EdmClass mithep::AssociationMap<E
80           << "Error! MITHEP Object (" << typeid(mitObj).name()
81           << ") not found in AssociationMap (" << typeid(*this).name() << ")." << std::endl;
82   }
83 +
84 + //--------------------------------------------------------------------------------------------------
85 + template <class EdmClass, class MitClass>
86 + inline bool mithep::AssociationMap<EdmClass,MitClass>::HasMit(EdmClass edmObj) const
87 + {
88 +  typename fwdMapType::const_iterator iter = fwdMap_.find(edmObj);
89 +
90 +  if (iter != fwdMap_.end())
91 +    return true;
92 +  else
93 +    return false;
94 + }
95   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines