MpdFemtoBaseModelWeightGenerator.cxx 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //
  2. // Base class fo the femtoscopic weight generators
  3. //
  4. // MpdFemtoMaker headers
  5. // Base
  6. #include "MpdFemtoBaseModelWeightGenerator.h"
  7. // Infrastructure
  8. #include "MpdFemtoPair.h"
  9. #include "MpdFemtoModelHiddenInfo.h"
  10. ClassImp(MpdFemtoBaseModelWeightGenerator);
  11. // Constants
  12. const int MpdFemtoBaseModelWeightGenerator::fgkPairTypeNone = 0;
  13. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusPionPlus = 1;
  14. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusPionMinus = 2;
  15. const int MpdFemtoBaseModelWeightGenerator::fgkKaonPlusKaonPlus = 3;
  16. const int MpdFemtoBaseModelWeightGenerator::fgkKaonPlusKaonMinus = 4;
  17. const int MpdFemtoBaseModelWeightGenerator::fgkProtonProton = 5;
  18. const int MpdFemtoBaseModelWeightGenerator::fgkProtonAntiproton = 6;
  19. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusKaonPlus = 7;
  20. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusKaonMinus = 8;
  21. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusProton = 9;
  22. const int MpdFemtoBaseModelWeightGenerator::fgkPionPlusAntiproton = 10;
  23. const int MpdFemtoBaseModelWeightGenerator::fgkKaonPlusProton = 11;
  24. const int MpdFemtoBaseModelWeightGenerator::fgkKaonPlusAntiproton = 12;
  25. const int MpdFemtoBaseModelWeightGenerator::fgkLambdaLambda = 13;
  26. const int MpdFemtoBaseModelWeightGenerator::fgkAntilambdaAntilambda = 14;
  27. const int MpdFemtoBaseModelWeightGenerator::fgkLambdaAntilambda = 15;
  28. //_________________
  29. MpdFemtoBaseModelWeightGenerator::MpdFemtoBaseModelWeightGenerator() :
  30. mPairType(0),
  31. mKStarOut(0), mKStarSide(0), mKStarLong(0), mKStar(0),
  32. mRStarOut(0), mRStarSide(0), mRStarLong(0), mRStar(0) {
  33. /* empty */
  34. }
  35. //_________________
  36. MpdFemtoBaseModelWeightGenerator::MpdFemtoBaseModelWeightGenerator(const MpdFemtoBaseModelWeightGenerator &aModel) :
  37. mPairType(0),
  38. mKStarOut(0), mKStarSide(0), mKStarLong(0), mKStar(0),
  39. mRStarOut(0), mRStarSide(0), mRStarLong(0), mRStar(0) {
  40. // Copy constructor
  41. mPairType = aModel.mPairType;
  42. }
  43. //_________________
  44. MpdFemtoBaseModelWeightGenerator& MpdFemtoBaseModelWeightGenerator::operator=(const MpdFemtoBaseModelWeightGenerator &aModel) {
  45. // Assignment operator
  46. if (this != &aModel) {
  47. mPairType = aModel.mPairType;
  48. }
  49. return *this;
  50. }
  51. //_____________________________________________
  52. MpdFemtoBaseModelWeightGenerator::~MpdFemtoBaseModelWeightGenerator() {
  53. /* empty */
  54. }
  55. //_________________
  56. int MpdFemtoBaseModelWeightGenerator::pairTypeFromPair(MpdFemtoPair *aPair) {
  57. // Get the type of pair from PID of particles in the pair
  58. MpdFemtoModelHiddenInfo *inf1 = (MpdFemtoModelHiddenInfo*) aPair->track1()->hiddenInfo();
  59. MpdFemtoModelHiddenInfo *inf2 = (MpdFemtoModelHiddenInfo*) aPair->track2()->hiddenInfo();
  60. int tPairType = fgkPairTypeNone;
  61. const int ktPid1 = inf1->pdgPid();
  62. const int ktPid2 = inf2->pdgPid();
  63. if (((ktPid1 == 211) && (ktPid2 == 211)) ||
  64. ((ktPid1 == -211) && (ktPid2 == -211))) {
  65. tPairType = fgkPionPlusPionPlus;
  66. } else if (((ktPid1 == -211) && (ktPid2 == 211)) ||
  67. ((ktPid1 == 211) && (ktPid2 == -211))) {
  68. tPairType = fgkPionPlusPionMinus;
  69. } else if (((ktPid1 == 321) && (ktPid2 == 321)) ||
  70. ((ktPid1 == -321) && (ktPid2 == -321))) {
  71. tPairType = fgkKaonPlusKaonPlus;
  72. } else if (((ktPid1 == -321) && (ktPid2 == 321)) ||
  73. ((ktPid1 == 321) && (ktPid2 == -321))) {
  74. tPairType = fgkKaonPlusKaonMinus;
  75. } else if (((ktPid1 == 2212) && (ktPid2 == 2212)) ||
  76. ((ktPid1 == -2212) && (ktPid2 == -2212))) {
  77. tPairType = fgkProtonProton;
  78. } else if (((ktPid1 == -2212) && (ktPid2 == 2212)) ||
  79. ((ktPid1 == 2212) && (ktPid2 == -2212))) {
  80. tPairType = fgkProtonAntiproton;
  81. } else if (((ktPid1 == 211) && (ktPid2 == 321)) ||
  82. ((ktPid1 == -211) && (ktPid2 == -321))) {
  83. tPairType = fgkPionPlusKaonPlus;
  84. } else if (((ktPid1 == -211) && (ktPid2 == 321)) ||
  85. ((ktPid1 == 211) && (ktPid2 == -321))) {
  86. tPairType = fgkPionPlusKaonMinus;
  87. } else if (((ktPid1 == 211) && (ktPid2 == 2212)) ||
  88. ((ktPid1 == -211) && (ktPid2 == -2212))) {
  89. tPairType = fgkPionPlusProton;
  90. } else if (((ktPid1 == -211) && (ktPid2 == 2212)) ||
  91. ((ktPid1 == 211) && (ktPid2 == -2212))) {
  92. tPairType = fgkPionPlusAntiproton;
  93. } else if (((ktPid1 == 321) && (ktPid2 == 2212)) ||
  94. ((ktPid1 == -321) && (ktPid2 == -2212))) {
  95. tPairType = fgkKaonPlusProton;
  96. } else if (((ktPid1 == -321) && (ktPid2 == 2212)) ||
  97. ((ktPid1 == 321) && (ktPid2 == -2212))) {
  98. tPairType = fgkKaonPlusAntiproton;
  99. } else if (((ktPid1 == 3122) && (ktPid2 == 3122))) {
  100. tPairType = fgkLambdaLambda;
  101. } else if (((ktPid1 == -3122) && (ktPid2 == -3122))) {
  102. tPairType = fgkAntilambdaAntilambda;
  103. } else if (((ktPid1 == 3122) && (ktPid2 == -3122)) ||
  104. ((ktPid1 == -3122) && (ktPid2 == 3122))) {
  105. tPairType = fgkLambdaAntilambda;
  106. }
  107. return tPairType;
  108. }