CMS 3D CMS Logo

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  //ES modules can not share resources with ED modules
36  public:
37  static const std::string kDDGeometry;
38  };
39 
40  // Each time the following function is called, it returns a different
41  // name. The purpose is to address the following problem.
42  // A few classes that are modules sometimes use shared resources
43  // and sometimes do not use shared resources. It depends on their
44  // configuration and also on their template parameters. These classes
45  // have to always inherit from the SharedResources base class. If
46  // they do not declare any share resources the Framework assumes
47  // they depend on all possible shared resources. This causes performance
48  // problems. In the cases where they really do not use any shared
49  // resources, one has to declare something to avoid the default
50  // assumption that they depend on everything. If a nonexistent
51  // shared resource is declared and as long as nothing else declares
52  // the same shared resource name, there will be no performance effects.
53  // This function provides a unique name to be used for that purpose.
55 } // namespace edm
56 #endif
edm::SharedResourceNames::kHerwig6
static const std::string kHerwig6
Definition: SharedResourceNames.h:31
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::SharedResourceNames::kCLHEPRandomEngine
static const std::string kCLHEPRandomEngine
Definition: SharedResourceNames.h:25
edm::uniqueSharedResourceName
std::string uniqueSharedResourceName()
Definition: SharedResourceNames.cc:20
edm::SharedResourceNames::kPythia8
static const std::string kPythia8
Definition: SharedResourceNames.h:27
edm::SharedResourceNames
Definition: SharedResourceNames.h:20
edm::SharedResourceNames::kPhotos
static const std::string kPhotos
Definition: SharedResourceNames.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ESSharedResourceNames
Definition: SharedResourceNames.h:35
edm::SharedResourceNames::kEvtGen
static const std::string kEvtGen
Definition: SharedResourceNames.h:30
edm::ESSharedResourceNames::kDDGeometry
static const std::string kDDGeometry
Definition: SharedResourceNames.h:37
edm::SharedResourceNames::kPythia6
static const std::string kPythia6
Definition: SharedResourceNames.h:26
edm::SharedResourceNames::kGEANT
static const std::string kGEANT
Definition: SharedResourceNames.h:24
edm::SharedResourceNames::kTauola
static const std::string kTauola
Definition: SharedResourceNames.h:29