MpdFemtoModelManager.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * \class MpdFemtoModelManager
  3. * \brief Manager for model studies
  4. *
  5. * The MpdFemtoModelManager class is a main helper class for femtoscopy
  6. * calculations. It manages weight generation, freeze-out coordinates
  7. * generation
  8. *
  9. * \author Grigory Nigmatkulov (NRNU MEPhI)
  10. * \date May 18, 2019
  11. * \email nigmatkulov@gmail.com
  12. */
  13. #ifndef MpdFemtoModelManager_h
  14. #define MpdFemtoModelManager_h
  15. // MpdFemtoMaker headers
  16. // Base
  17. #include "MpdFemtoBaseModelWeightGenerator.h"
  18. #include "MpdFemtoBaseModelFreezeOutGenerator.h"
  19. // Infrastructure
  20. #include "MpdFemtoEnumeration.h"
  21. //_________________
  22. class MpdFemtoModelManager {
  23. public:
  24. /// Default constructor
  25. MpdFemtoModelManager();
  26. /// Copy constructor
  27. MpdFemtoModelManager(const MpdFemtoModelManager& manager);
  28. /// Assignment operator
  29. MpdFemtoModelManager& operator=(const MpdFemtoModelManager& manager);
  30. /// Destructor
  31. virtual ~MpdFemtoModelManager();
  32. /// Set pointer to the freeze-out coordinate generator
  33. void setFreezeOutGenerator(MpdFemtoBaseModelFreezeOutGenerator *foGen) {
  34. mFreezeOutGenerator = foGen;
  35. }
  36. /// Set pointer to the freeze-out coordinate generator
  37. void SetFreezeOutGenerator(MpdFemtoBaseModelFreezeOutGenerator *foGen) {
  38. setFreezeOutGenerator(foGen);
  39. }
  40. /// Set pointer to the femtoscopic weight generator
  41. void setWeightGenerator(MpdFemtoBaseModelWeightGenerator *weightGen) {
  42. mWeightGenerator = weightGen;
  43. }
  44. /// Set pointer to the femtoscopic weight generator
  45. void SetWeightGenerator(MpdFemtoBaseModelWeightGenerator *weightGen) {
  46. setWeightGenerator(weightGen);
  47. }
  48. /// Set status of the copy hidden info
  49. void createCopyHiddenInfo(bool aCopy = true);
  50. /// Set status of the copy hidden info
  51. void CreateCopyHiddenInfo(bool aCopy) {
  52. createCopyHiddenInfo(aCopy);
  53. }
  54. /// Return pointer to the freeze-out coordinate generator
  55. MpdFemtoBaseModelFreezeOutGenerator* freezeOutGenerator() {
  56. return mFreezeOutGenerator;
  57. }
  58. /// Return pointer to the freeze-out coordinate generator
  59. MpdFemtoBaseModelFreezeOutGenerator* FreezeOutGenerator() {
  60. return freezeOutGenerator();
  61. }
  62. /// Return pointer to the pair-weight generator
  63. MpdFemtoBaseModelWeightGenerator* weightGenerator() {
  64. return mWeightGenerator;
  65. }
  66. /// Return pointer to the pair-weight generator
  67. MpdFemtoBaseModelWeightGenerator* WeightGenerator() {
  68. return weightGenerator();
  69. }
  70. /// Return femtoscopic weight
  71. virtual double weight(MpdFemtoPair *aPair);
  72. /// Return femtoscopic weight
  73. virtual double Weight(MpdFemtoPair *aPair) {
  74. return weight(aPair);
  75. }
  76. protected:
  77. /// Pointer to freeze-out coordinate generator
  78. MpdFemtoBaseModelFreezeOutGenerator *mFreezeOutGenerator;
  79. /// Femtoscopic weight generator
  80. MpdFemtoBaseModelWeightGenerator *mWeightGenerator;
  81. /// Switch to turn on hidden-info generation
  82. bool mCreateCopyHiddenInfo;
  83. private:
  84. ClassDef(MpdFemtoModelManager, 1);
  85. };
  86. #endif // #define MpdFemtoModelManager_h