CMS 3D CMS Logo

ComponentDescription.h

Go to the documentation of this file.
00001 #ifndef Framework_ComponentDescription_h
00002 #define Framework_ComponentDescription_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Framework
00006 // Class  :     ComponentDescription
00007 // 
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Thu Dec 15 14:07:57 EST 2005
00019 // $Id: ComponentDescription.h,v 1.6 2007/03/04 06:00:22 wmtan Exp $
00020 //
00021 
00022 // system include files
00023 #include <string>
00024 
00025 // user include files
00026 #include "DataFormats/Provenance/interface/PassID.h"
00027 #include "DataFormats/Provenance/interface/ParameterSetID.h"
00028 #include "DataFormats/Provenance/interface/ReleaseVersion.h"
00029 
00030 // forward declarations
00031 namespace edm {
00032    namespace eventsetup {
00033       struct ComponentDescription {
00034          std::string label_; // A human friendly string that uniquely identifies the label
00035          std::string type_;  // A human friendly string that uniquely identifies the name 
00036          bool isSource_;
00037          bool isLooper_;
00038          
00039          // The following set of parameters comes from
00040          // DataFormats/Provenance/interface/ModuleDescription.h
00041          // to match and have identical provenance information
00042 
00043          // ID of parameter set of the creator
00044          ParameterSetID pid_;
00045 
00046          // the release tag of the executable
00047          ReleaseVersion releaseVersion_;
00048 
00049          // the physical process that this program was part of (e.g. production)
00050          std::string processName_;
00051          
00052          // what the heck is this? I think its the version of the processName_
00053          // e.g. second production pass
00054          PassID passID_;
00055          /* ----------- end of provenance information ------------- */
00056                      
00057          
00058          ComponentDescription() :
00059              label_(),
00060              type_(),
00061              isSource_(false),
00062              isLooper_(false),
00063              pid_(),
00064              releaseVersion_(),
00065              processName_(),
00066              passID_() {}
00067          
00068          ComponentDescription(const std::string& iType,
00069                               const std::string& iLabel,
00070                               bool iIsSource,
00071                               bool iIsLooper=false) :
00072                                 label_(iLabel),
00073                                 type_(iType),
00074                                 isSource_(iIsSource),
00075                                 isLooper_(iIsLooper),
00076                                 pid_(), 
00077                                 releaseVersion_(), 
00078                                 processName_(), 
00079                                 passID_() {}
00080                                 
00081          bool operator<( const ComponentDescription& iRHS) const {
00082             return (type_ == iRHS.type_) ? (label_ < iRHS.label_) : (type_<iRHS.type_);
00083          }
00084          bool operator==(const ComponentDescription& iRHS) const {
00085             return label_ == iRHS.label_ &&
00086             type_ == iRHS.type_ &&
00087             isSource_ == iRHS.isSource_;
00088          }
00089       };
00090       
00091    }
00092 }
00093 
00094 
00095 
00096 #endif

Generated on Tue Jun 9 17:35:20 2009 for CMSSW by  doxygen 1.5.4