CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SharedResourceNames.h
Go to the documentation of this file.
1 #ifndef FWCore_Concurrency_SharedResourceNames_h
2 #define FWCore_Concurrency_SharedResourceNames_h
3 //
4 // Package: Concurrency
5 // Class : ShareResourceNames
6 //
12 //
13 // Original Author: W. David Dagenhart
14 // Created: 19 November 2013
15 //
16 
17 #include <string>
18 
19 namespace edm {
21  public:
22  // GEANT 4.9.X needs to be declared a shared resource
23  // In the future, 4.10.X and later might not need to be
24  static const std::string kGEANT;
26  static const std::string kPythia6;
27  static const std::string kPythia8;
28  static const std::string kPhotos;
29  static const std::string kTauola;
30  static const std::string kEvtGen;
31  static const std::string kHerwig6;
32  };
33 
34  // Each time the following function is called, it returns a different
35  // name. The purpose is to address the following problem.
36  // A few classes that are modules sometimes use shared resources
37  // and sometimes do not use shared resources. It depends on their
38  // configuration and also on their template parameters. These classes
39  // have to always inherit from the SharedResources base class. If
40  // they do not declare any share resources the Framework assumes
41  // they depend on all possible shared resources. This causes performance
42  // problems. In the cases where they really do not use any shared
43  // resources, one has to declare something to avoid the default
44  // assumption that they depend on everything. If a nonexistent
45  // shared resource is declared and as long as nothing else declares
46  // the same shared resource name, there will be no performance effects.
47  // This function provides a unique name to be used for that purpose.
49 }
50 #endif
static const std::string kTauola
static const std::string kPhotos
static const std::string kPythia6
static const std::string kEvtGen
static const std::string kGEANT
static const std::string kCLHEPRandomEngine
static const std::string kPythia8
std::string uniqueSharedResourceName()
static const std::string kHerwig6