Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

LatticeMaker.h

Go to the documentation of this file.
00001 // $Id: LatticeMaker.h,v 1.2 2001/03/02 08:19:06 west Exp $
00002 
00003 #ifndef LATTICEMAKER_H
00004 #define LATTICEMAKER_H
00005 
00006 
00008 // LatticeMaker                                                       //
00009 //                                                                    //
00010 // Package: Lat (Lattice Navigation Model).                           //
00011 //                                                                    //
00012 //                                                                    //
00013 // Purpose:                                                           //
00014 // LatticeMaker is a tool to simplify Lattice building for an         //
00015 // arbitrary n:m relationship.  The user provides 2 ROOT collections  //
00016 // and an association function and the LatticeMaker build and returns //
00017 // a Lattice.                                                         //
00018 //                                                                    //
00019 // Caution: the LatticeMakeer is not particularly efficient; it loops //
00020 //          over all n*m combinations to fill out the Lattice.  Use   //
00021 //          LatticeBuilder for a simple 1:n Lattice.                  //
00022 //                                                                    //
00023 //                                                                    //
00025 
00026 #include "TCollection.h"
00027 #include "LeakChecker/Lea.h"
00028 
00029 class Lattice;
00030 
00031 class LatticeMaker
00032 {
00033 
00034 public:
00035 
00036 typedef    Bool_t  AssociateFunc(const TObject*, const TObject*);
00037 typedef    Long_t  KeyFunc(const TObject*);
00038 
00039 // Constructors and destructors
00040                            LatticeMaker(){ LEA_CTOR; };
00041   virtual                 ~LatticeMaker(){ LEA_DTOR; };
00042 
00043 // State testing member functions
00044 
00045 Lattice* CreateLattice(const char* nameLeft,
00046                        const char* nameRight,
00047                        const char* type = "n:m" );
00048 Lattice* CreateLattice(const TObject* objLeft,
00049                        const TObject* objRight,
00050                        const char* type = "n:m" );
00051 Lattice* CreateLattice(const TCollection* setLeft, 
00052                        const TCollection* setRight, 
00053                        AssociateFunc* asFunc,
00054                        const char* type = "n:m" );
00055 Lattice* Create1ToNLattice(const TCollection* setLeft, 
00056                            const TCollection* setRight, 
00057                            KeyFunc* leftFunc,
00058                            KeyFunc* rightFunc);
00059 
00060 // State changing member functions
00061 
00062 
00063 private:
00064 
00065 
00066 // Data members
00067 
00068 
00069 ClassDef(LatticeMaker,0)     // Simple n:m Lattice maker.
00070 
00071 };
00072 
00073 
00074 #endif /* LATTICEMAKER_H */

Generated on Mon Feb 15 11:06:50 2010 for loon by  doxygen 1.3.9.1