ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoModelWeightGenerator - abstract base class for femtoscopic       ///
/// weight generator                                                         ///
/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////
#ifdef __ROOT__
  ClassImp(AliFemtoModelGausLCMSFreezeOutGenerator, 1)
#endif

#include "AliFemtoPair.h"

#include "AliFemtoModelWeightGenerator.h"
#include "AliFemtoModelHiddenInfo.h"

const Int_t AliFemtoModelWeightGenerator::fgkPairTypeNone = 0;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusPionPlus = 1;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusPionMinus = 2;
const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusKaonPlus = 3;
const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusKaonMinus = 4;
const Int_t AliFemtoModelWeightGenerator::fgkProtonProton = 5;
const Int_t AliFemtoModelWeightGenerator::fgkProtonAntiproton = 6;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusKaonPlus = 7;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusKaonMinus = 8;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusProton = 9;
const Int_t AliFemtoModelWeightGenerator::fgkPionPlusAntiproton = 10;
const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusProton = 11;
const Int_t AliFemtoModelWeightGenerator::fgkKaonPlusAntiproton = 12;

//_____________________________________________
AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator() :
  fPairType(0), 
  fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
  fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
{}
//_____________________________________________
AliFemtoModelWeightGenerator::AliFemtoModelWeightGenerator(const AliFemtoModelWeightGenerator &aModel) :
  fPairType(0), 
  fKStarOut(0), fKStarSide(0), fKStarLong(0), fKStar(0), 
  fRStarOut(0), fRStarSide(0), fRStarLong(0), fRStar(0)
{
  fPairType = aModel.fPairType;
}
//_____________________________________________
AliFemtoModelWeightGenerator::~AliFemtoModelWeightGenerator(){/* no-op */}
//_____________________________________________
AliFemtoModelWeightGenerator& AliFemtoModelWeightGenerator::operator=(const AliFemtoModelWeightGenerator &aModel)
{
  if (this != &aModel) {
    fPairType = aModel.fPairType;
  }

  return *this;
}
//_____________________________________________
void     AliFemtoModelWeightGenerator::SetPairType(Int_t aPairType)
{
  fPairType = aPairType;
}

//_____________________________________________
Int_t    AliFemtoModelWeightGenerator::GetPairType() const
{
  return fPairType;
}

//_____________________________________________
void     AliFemtoModelWeightGenerator::SetPairTypeFromPair(AliFemtoPair *aPair)
{
  fPairType = GetPairTypeFromPair(aPair);
}
//_____________________________________________
Int_t    AliFemtoModelWeightGenerator::GetPairTypeFromPair(AliFemtoPair *aPair)
{
  // Get the type of pair from PID of particles in the pair
  AliFemtoModelHiddenInfo *inf1 = ( AliFemtoModelHiddenInfo *) aPair->Track1()->HiddenInfo();
  AliFemtoModelHiddenInfo *inf2 = ( AliFemtoModelHiddenInfo *) aPair->Track2()->HiddenInfo();

  Int_t tPairType = fgkPairTypeNone;

  const Int_t ktPid1 = inf1->GetPDGPid();
  const Int_t ktPid2 = inf2->GetPDGPid();

  if      (((ktPid1 ==   211) && (ktPid2 ==   211)) ||
           ((ktPid1 ==  -211) && (ktPid2 ==  -211)))
    tPairType = fgkPionPlusPionPlus;
  else if (((ktPid1 ==  -211) && (ktPid2 ==   211)) ||
           ((ktPid1 ==   211) && (ktPid2 ==  -211)))
    tPairType = fgkPionPlusPionMinus;
  else if (((ktPid1 ==   321) && (ktPid2 ==   321)) ||
           ((ktPid1 ==  -321) && (ktPid2 ==  -321)))
    tPairType = fgkKaonPlusKaonPlus;
  else if (((ktPid1 ==  -321) && (ktPid2 ==   321)) ||
           ((ktPid1 ==   321) && (ktPid2 ==  -321)))
    tPairType = fgkKaonPlusKaonMinus;
  else if (((ktPid1 ==  2212) && (ktPid2 ==  2212)) ||
           ((ktPid1 == -2212) && (ktPid2 == -2212)))
    tPairType = fgkProtonProton;
  else if (((ktPid1 == -2212) && (ktPid2 ==  2212)) ||
           ((ktPid1 ==  2212) && (ktPid2 == -2212)))
    tPairType = fgkProtonAntiproton;
  else if (((ktPid1 ==   211) && (ktPid2 ==   321)) ||
           ((ktPid1 ==  -211) && (ktPid2 ==  -321)))
    tPairType = fgkPionPlusKaonPlus;
  else if (((ktPid1 ==  -211) && (ktPid2 ==   321)) ||
           ((ktPid1 ==   211) && (ktPid2 ==  -321)))
    tPairType = fgkPionPlusKaonMinus;
  else if (((ktPid1 ==   211) && (ktPid2 ==  2212)) ||
           ((ktPid1 ==  -211) && (ktPid2 == -2212)))
    tPairType = fgkPionPlusProton;
  else if (((ktPid1 ==  -211) && (ktPid2 ==  2212)) ||
           ((ktPid1 ==   211) && (ktPid2 == -2212)))
    tPairType = fgkPionPlusAntiproton;
  else if (((ktPid1 ==   321) && (ktPid2 ==  2212)) ||
           ((ktPid1 ==  -321) && (ktPid2 == -2212)))
    tPairType = fgkKaonPlusProton;
  else if (((ktPid1 ==  -321) && (ktPid2 ==  2212)) ||
           ((ktPid1 ==   321) && (ktPid2 == -2212)))
    tPairType = fgkKaonPlusAntiproton;

  return tPairType;
}

//_____________________________________________
AliFemtoModelWeightGenerator* AliFemtoModelWeightGenerator::Clone() const
{
  return 0;
}
 AliFemtoModelWeightGenerator.cxx:1
 AliFemtoModelWeightGenerator.cxx:2
 AliFemtoModelWeightGenerator.cxx:3
 AliFemtoModelWeightGenerator.cxx:4
 AliFemtoModelWeightGenerator.cxx:5
 AliFemtoModelWeightGenerator.cxx:6
 AliFemtoModelWeightGenerator.cxx:7
 AliFemtoModelWeightGenerator.cxx:8
 AliFemtoModelWeightGenerator.cxx:9
 AliFemtoModelWeightGenerator.cxx:10
 AliFemtoModelWeightGenerator.cxx:11
 AliFemtoModelWeightGenerator.cxx:12
 AliFemtoModelWeightGenerator.cxx:13
 AliFemtoModelWeightGenerator.cxx:14
 AliFemtoModelWeightGenerator.cxx:15
 AliFemtoModelWeightGenerator.cxx:16
 AliFemtoModelWeightGenerator.cxx:17
 AliFemtoModelWeightGenerator.cxx:18
 AliFemtoModelWeightGenerator.cxx:19
 AliFemtoModelWeightGenerator.cxx:20
 AliFemtoModelWeightGenerator.cxx:21
 AliFemtoModelWeightGenerator.cxx:22
 AliFemtoModelWeightGenerator.cxx:23
 AliFemtoModelWeightGenerator.cxx:24
 AliFemtoModelWeightGenerator.cxx:25
 AliFemtoModelWeightGenerator.cxx:26
 AliFemtoModelWeightGenerator.cxx:27
 AliFemtoModelWeightGenerator.cxx:28
 AliFemtoModelWeightGenerator.cxx:29
 AliFemtoModelWeightGenerator.cxx:30
 AliFemtoModelWeightGenerator.cxx:31
 AliFemtoModelWeightGenerator.cxx:32
 AliFemtoModelWeightGenerator.cxx:33
 AliFemtoModelWeightGenerator.cxx:34
 AliFemtoModelWeightGenerator.cxx:35
 AliFemtoModelWeightGenerator.cxx:36
 AliFemtoModelWeightGenerator.cxx:37
 AliFemtoModelWeightGenerator.cxx:38
 AliFemtoModelWeightGenerator.cxx:39
 AliFemtoModelWeightGenerator.cxx:40
 AliFemtoModelWeightGenerator.cxx:41
 AliFemtoModelWeightGenerator.cxx:42
 AliFemtoModelWeightGenerator.cxx:43
 AliFemtoModelWeightGenerator.cxx:44
 AliFemtoModelWeightGenerator.cxx:45
 AliFemtoModelWeightGenerator.cxx:46
 AliFemtoModelWeightGenerator.cxx:47
 AliFemtoModelWeightGenerator.cxx:48
 AliFemtoModelWeightGenerator.cxx:49
 AliFemtoModelWeightGenerator.cxx:50
 AliFemtoModelWeightGenerator.cxx:51
 AliFemtoModelWeightGenerator.cxx:52
 AliFemtoModelWeightGenerator.cxx:53
 AliFemtoModelWeightGenerator.cxx:54
 AliFemtoModelWeightGenerator.cxx:55
 AliFemtoModelWeightGenerator.cxx:56
 AliFemtoModelWeightGenerator.cxx:57
 AliFemtoModelWeightGenerator.cxx:58
 AliFemtoModelWeightGenerator.cxx:59
 AliFemtoModelWeightGenerator.cxx:60
 AliFemtoModelWeightGenerator.cxx:61
 AliFemtoModelWeightGenerator.cxx:62
 AliFemtoModelWeightGenerator.cxx:63
 AliFemtoModelWeightGenerator.cxx:64
 AliFemtoModelWeightGenerator.cxx:65
 AliFemtoModelWeightGenerator.cxx:66
 AliFemtoModelWeightGenerator.cxx:67
 AliFemtoModelWeightGenerator.cxx:68
 AliFemtoModelWeightGenerator.cxx:69
 AliFemtoModelWeightGenerator.cxx:70
 AliFemtoModelWeightGenerator.cxx:71
 AliFemtoModelWeightGenerator.cxx:72
 AliFemtoModelWeightGenerator.cxx:73
 AliFemtoModelWeightGenerator.cxx:74
 AliFemtoModelWeightGenerator.cxx:75
 AliFemtoModelWeightGenerator.cxx:76
 AliFemtoModelWeightGenerator.cxx:77
 AliFemtoModelWeightGenerator.cxx:78
 AliFemtoModelWeightGenerator.cxx:79
 AliFemtoModelWeightGenerator.cxx:80
 AliFemtoModelWeightGenerator.cxx:81
 AliFemtoModelWeightGenerator.cxx:82
 AliFemtoModelWeightGenerator.cxx:83
 AliFemtoModelWeightGenerator.cxx:84
 AliFemtoModelWeightGenerator.cxx:85
 AliFemtoModelWeightGenerator.cxx:86
 AliFemtoModelWeightGenerator.cxx:87
 AliFemtoModelWeightGenerator.cxx:88
 AliFemtoModelWeightGenerator.cxx:89
 AliFemtoModelWeightGenerator.cxx:90
 AliFemtoModelWeightGenerator.cxx:91
 AliFemtoModelWeightGenerator.cxx:92
 AliFemtoModelWeightGenerator.cxx:93
 AliFemtoModelWeightGenerator.cxx:94
 AliFemtoModelWeightGenerator.cxx:95
 AliFemtoModelWeightGenerator.cxx:96
 AliFemtoModelWeightGenerator.cxx:97
 AliFemtoModelWeightGenerator.cxx:98
 AliFemtoModelWeightGenerator.cxx:99
 AliFemtoModelWeightGenerator.cxx:100
 AliFemtoModelWeightGenerator.cxx:101
 AliFemtoModelWeightGenerator.cxx:102
 AliFemtoModelWeightGenerator.cxx:103
 AliFemtoModelWeightGenerator.cxx:104
 AliFemtoModelWeightGenerator.cxx:105
 AliFemtoModelWeightGenerator.cxx:106
 AliFemtoModelWeightGenerator.cxx:107
 AliFemtoModelWeightGenerator.cxx:108
 AliFemtoModelWeightGenerator.cxx:109
 AliFemtoModelWeightGenerator.cxx:110
 AliFemtoModelWeightGenerator.cxx:111
 AliFemtoModelWeightGenerator.cxx:112
 AliFemtoModelWeightGenerator.cxx:113
 AliFemtoModelWeightGenerator.cxx:114
 AliFemtoModelWeightGenerator.cxx:115
 AliFemtoModelWeightGenerator.cxx:116
 AliFemtoModelWeightGenerator.cxx:117
 AliFemtoModelWeightGenerator.cxx:118
 AliFemtoModelWeightGenerator.cxx:119
 AliFemtoModelWeightGenerator.cxx:120
 AliFemtoModelWeightGenerator.cxx:121
 AliFemtoModelWeightGenerator.cxx:122
 AliFemtoModelWeightGenerator.cxx:123
 AliFemtoModelWeightGenerator.cxx:124
 AliFemtoModelWeightGenerator.cxx:125
 AliFemtoModelWeightGenerator.cxx:126
 AliFemtoModelWeightGenerator.cxx:127
 AliFemtoModelWeightGenerator.cxx:128
 AliFemtoModelWeightGenerator.cxx:129