emcObjectFillerManager.C

Go to the documentation of this file.
00001 #include "emcObjectFillerManager.h"
00002 #include "emcObjectFillerRegistry.h"
00003 #include "emcObjectFiller.h"
00004 #include <iostream>
00005 #include "TClass.h"
00006 
00007 using namespace std;
00008 
00009 int emcObjectFillerManager::fVerbose=0;
00010 
00011 //_____________________________________________________________________________
00012 bool
00013 emcObjectFillerManager::fill(PHCompositeNode* topNode, 
00014                             PHObject& dest)
00015   
00016 {
00017   emcObjectFiller* converter = 
00018     emcObjectFillerRegistry::findFiller(topNode,dest,fVerbose);
00019 
00020   if ( !converter ) 
00021     {
00022       if ( fVerbose ) 
00023         {
00024           cerr << "emcObjectFillerManager::fill : did not find "
00025                << " a suitable filler for object of class "
00026                << dest.ClassName()
00027                << endl;
00028         }
00029       return false;
00030     }
00031   else
00032     {
00033       if ( fVerbose ) 
00034         {
00035           cout << "emcObjectFillerManager::fill : "
00036                << "I'm asking this objectfiller to do the job :";
00037           converter->identify(cout);
00038           cout << endl;
00039         }
00040       return converter->fill(topNode,dest,fVerbose);
00041     }
00042 }
00043 
00044 //_____________________________________________________________________________
00045 bool
00046 emcObjectFillerManager::isFillerAvailable(PHObject& dest)
00047 {
00048   emcObjectFiller* converter = 
00049     emcObjectFillerRegistry::findFiller(dest,fVerbose);
00050   if ( converter ) 
00051     {
00052       return true;
00053     }
00054   else
00055     {
00056       return false;
00057     }
00058 }