+#include "AliHBTLLWeightFctn.h"
/* $Id$ */
-
+//_________________________________________________________________________
+//
+// class
+//
//This class allows to obtain Q_inv correlation function with weights
//calculated by Lednicky's alghorithm.
//Numerator is filled with weighted events. Weights are attributed to reconstructed tracks.
//One needs both pairs
//(simulated and recontructed), thus function is of class AliHBTTwoPairFctn1D.
//Author: Ludmila Malinina, JINR (malinina@sunhe.jinr.ru)
-#include "AliHBTLLWeightFctn.h"
#include "AliHBTLLWeights.h"
#include "AliHBTLLWeightsPID.h"
/****************************************************************/
AliHBTLLWeightQInvFctn::AliHBTLLWeightQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
{
//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqinvcf","Q_{inv} Weight Correlation Function");
}
/****************************************************************/
void AliHBTLLWeightQInvFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
-//Processes Particles and tracks Same different even
+ //process particles from same events (fills numerator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
}
}
/**************************************************************/
-TH1* AliHBTLLWeightQInvFctn::GetResult()
-
+TH1* AliHBTLLWeightQInvFctn::GetResult()
{
//returns ratio of numerator and denominator
return GetRatio(Scale());
/**************************************************************************************/
ClassImp(AliHBTLLWeightQOutFctn)
+
+AliHBTLLWeightQOutFctn::AliHBTLLWeightQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqoutcf","Q_{out} Weight Correlation Function");
+}
/****************************************************************/
void AliHBTLLWeightQOutFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
+ //process particles from same events (fills numerator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
void AliHBTLLWeightQOutFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
+ //process particles from diff events (fills denominator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
/*************************************************************************************/
ClassImp(AliHBTLLWeightQLongFctn)
+AliHBTLLWeightQLongFctn::AliHBTLLWeightQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqlongcf","Q_{long} Weight Correlation Function");
+}
/****************************************************************/
-void AliHBTLLWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+void AliHBTLLWeightQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
-//Processes Particles and tracks Same different even
+ //process particles from same events (fills numerator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
}
/****************************************************************/
-void AliHBTLLWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+void AliHBTLLWeightQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
+ //process particles from diff events (fills denominator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
/*************************************************************************************/
ClassImp(AliHBTLLWeightQSideFctn)
+/*************************************************************************************/
+
+AliHBTLLWeightQSideFctn::AliHBTLLWeightQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqsidecf","Q_{side} Weight Correlation Function");
+}
/****************************************************************/
-void AliHBTLLWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+void AliHBTLLWeightQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
-//Processes Particles and tracks Same different even
+ //process particles from same events (fills numerator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
void AliHBTLLWeightQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
+ //process particles from diff events (fills denominator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
return GetRatio(Scale());
}
+/*************************************************************************************/
/*************************************************************************************/
/*************************************************************************************/
ClassImp(AliHBTLLWeightTwoKStarFctn)
+/*************************************************************************************/
+AliHBTLLWeightTwoKStarFctn::AliHBTLLWeightTwoKStarFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
+{
+//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wtwokstarcf","2*K^{*} Weight Correlation Function");
+}
/****************************************************************/
-void AliHBTLLWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+void AliHBTLLWeightTwoKStarFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
-//Processes Particles and tracks Same different even
+ //process particles from same events (fills numerator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
void AliHBTLLWeightTwoKStarFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
{
+ //process particles from diff events (fills denominator)
trackpair = CheckPair(trackpair);
partpair = CheckPair(partpair);
if ( trackpair && partpair)
return GetRatio(Scale());
}
+/*************************************************************************************/
+/*************************************************************************************/
+/*************************************************************************************/
+
+ClassImp(AliHBTLLWeightQOutQSideFctn)
+/*************************************************************************************/
+
+AliHBTLLWeightQOutQSideFctn::AliHBTLLWeightQOutQSideFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
+ Int_t nybins, Double_t maxYval, Double_t minYval):
+ AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqoutqsidecf","Q_{out} Q_{side} Weight Correlation Function 2D");
+}
+/*************************************************************************************/
+void AliHBTLLWeightQOutQSideFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from same events (fills numerator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ Double_t weightPID=1.;
+ Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
+ Double_t weight=weightHBT*weightPID;
+ if(TMath::Abs(weight)<=10.)
+ fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC(),weight);
+ }
+}
+/****************************************************************/
+
+void AliHBTLLWeightQOutQSideFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from diff events (fills denominator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQSideCMSLC());
+ }
+}
+/**************************************************************/
+TH1* AliHBTLLWeightQOutQSideFctn::GetResult()
+{
+ //returns result
+ return GetRatio(Scale());
+}
+
+/*************************************************************************************/
+/*************************************************************************************/
+/*************************************************************************************/
+
+ClassImp(AliHBTLLWeightQOutQLongFctn)
+/*************************************************************************************/
+
+AliHBTLLWeightQOutQLongFctn::AliHBTLLWeightQOutQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
+ Int_t nybins, Double_t maxYval, Double_t minYval):
+ AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqoutqlongcf","Q_{out} Q_{long} Weight Correlation Function 2D");
+}
+/*************************************************************************************/
+void AliHBTLLWeightQOutQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from same events (fills numerator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ Double_t weightPID=1.;
+ Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
+ Double_t weight=weightHBT*weightPID;
+ if(TMath::Abs(weight)<=10.)
+ fNumerator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC(),weight);
+ }
+}
+/****************************************************************/
+
+void AliHBTLLWeightQOutQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from diff events (fills denominator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ fDenominator->Fill(trackpair->GetQOutCMSLC(),trackpair->GetQLongCMSLC());
+ }
+}
+/**************************************************************/
+
+TH1* AliHBTLLWeightQOutQLongFctn::GetResult()
+{
+ //returns result
+ return GetRatio(Scale());
+}
+
+/*************************************************************************************/
+/*************************************************************************************/
/*************************************************************************************/
+ClassImp(AliHBTLLWeightQSideQLongFctn)
+/*************************************************************************************/
+
+AliHBTLLWeightQSideQLongFctn::AliHBTLLWeightQSideQLongFctn(Int_t nxbins, Double_t maxXval, Double_t minXval,
+ Int_t nybins, Double_t maxYval, Double_t minYval):
+ AliHBTTwoPairFctn2D(nxbins,maxXval,minXval,nybins,maxYval,minYval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqsideqlongcf","Q_{side} Q_{long} Weight Correlation Function 2D");
+}
+/*************************************************************************************/
+void AliHBTLLWeightQSideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from same events (fills numerator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ Double_t weightPID=1.;
+ Double_t weightHBT=AliHBTLLWeights::Instance()->GetWeight(partpair);
+ Double_t weight=weightHBT*weightPID;
+ if(TMath::Abs(weight)<=10.)
+ fNumerator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC(),weight);
+ }
+}
+/****************************************************************/
+
+void AliHBTLLWeightQSideQLongFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+ //process particles from diff events (fills denominator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+ fDenominator->Fill(trackpair->GetQSideCMSLC(),trackpair->GetQLongCMSLC());
+ }
+}
+/**************************************************************/
+TH1* AliHBTLLWeightQSideQLongFctn::GetResult()
+{
+ //returns result
+ return GetRatio(Scale());
+}
// friend class AliHBTOnePairFctn1D;
public:
- AliHBTLLWeightQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
+ AliHBTLLWeightQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTLLWeightQOutFctn(){};
TH1* GetResult();
protected:
};
/*************************************************************************************/
+
class AliHBTLLWeightQLongFctn: public AliHBTTwoPairFctn1D
{
// friend class AliHBTOnePairFctn1D;
public:
- AliHBTLLWeightQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
+ AliHBTLLWeightQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTLLWeightQLongFctn(){};
TH1* GetResult();
protected:
};
/*************************************************************************************/
+
class AliHBTLLWeightQSideFctn: public AliHBTTwoPairFctn1D
{
// friend class AliHBTOnePairFctn1D;
public:
- AliHBTLLWeightQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
+ AliHBTLLWeightQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTLLWeightQSideFctn(){};
TH1* GetResult();
protected:
ClassDef(AliHBTLLWeightQSideFctn,1)
};
/*************************************************************************************/
+
class AliHBTLLWeightTwoKStarFctn: public AliHBTTwoPairFctn1D
{
// friend class AliHBTOnePairFctn1D;
public:
- AliHBTLLWeightTwoKStarFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
- AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
+ AliHBTLLWeightTwoKStarFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTLLWeightTwoKStarFctn(){};
TH1* GetResult();
protected:
ClassDef(AliHBTLLWeightTwoKStarFctn,1)
};
+/*************************************************************************************/
+
+class AliHBTLLWeightQOutQSideFctn: public AliHBTTwoPairFctn2D
+{
+
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTLLWeightQOutQSideFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
+ Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
+ virtual ~AliHBTLLWeightQOutQSideFctn(){};
+ TH1* GetResult();
+ protected:
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+ void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/){}
+ ClassDef(AliHBTLLWeightQOutQSideFctn,1)
+
+};
+/*************************************************************************************/
+
+class AliHBTLLWeightQOutQLongFctn: public AliHBTTwoPairFctn2D
+{
+
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTLLWeightQOutQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
+ Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
+ virtual ~AliHBTLLWeightQOutQLongFctn(){};
+ TH1* GetResult();
+ protected:
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+ void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/){}
+ ClassDef(AliHBTLLWeightQOutQLongFctn,1)
+
+};
+
+/*************************************************************************************/
+
+class AliHBTLLWeightQSideQLongFctn: public AliHBTTwoPairFctn2D
+{
+
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTLLWeightQSideQLongFctn(Int_t nxbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
+ Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
+ virtual ~AliHBTLLWeightQSideQLongFctn(){};
+ TH1* GetResult();
+ protected:
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+ void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/){}
+ ClassDef(AliHBTLLWeightQSideQLongFctn,1)
+
+};
+
#endif
#include "AliHBTLLWeights.h"
//--for test--AliHBTLLWeightQInvFctn* yyy= new AliHBTLLWeightQInvFctn();
+/*************************************************************/
+/*************************************************************/
+/*************************************************************/
ClassImp(AliHBTLLWeightTheorQInvFctn)
/*************************************************************/
AliHBTOnePairFctn1D(nbins,maxXval,minXval)
{
//ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqinvtheorcf","Q_{inv} Weight Theoretical Correlation Function");
}
/****************************************************************/
void AliHBTLLWeightTheorQInvFctn::ProcessSameEventParticles(AliHBTPair* partpair)
return GetRatio(Scale());
}
+/*************************************************************/
+/*************************************************************/
+/*************************************************************/
+
+ClassImp(AliHBTLLWeightTheorQOutFctn)
+/*************************************************************/
+
+AliHBTLLWeightTheorQOutFctn::
+AliHBTLLWeightTheorQOutFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTOnePairFctn1D(nbins,maxXval,minXval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqouttheorcf","Q_{out} Weight Theoretical Correlation Function");
+}
+/****************************************************************/
+void AliHBTLLWeightTheorQOutFctn::ProcessSameEventParticles(AliHBTPair* partpair)
+{
+ //Processes Particles and tracks Same different even
+ partpair = CheckPair(partpair);
+ Double_t weight = AliHBTLLWeights::Instance()->GetWeight(partpair);
+ if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQOutCMSLC(),weight);
+}
+
+/**************************************************************/
+TH1* AliHBTLLWeightTheorQOutFctn::GetResult()
+{
+ //returns ratio of numerator and denominator
+ return GetRatio(Scale());
+}
+
+/*************************************************************/
+/*************************************************************/
+/*************************************************************/
+
+ClassImp(AliHBTLLWeightTheorQSideFctn)
+/*************************************************************/
+
+AliHBTLLWeightTheorQSideFctn::
+AliHBTLLWeightTheorQSideFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTOnePairFctn1D(nbins,maxXval,minXval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqsidetheorcf","Q_{side} Weight Theoretical Correlation Function");
+}
+/****************************************************************/
+void AliHBTLLWeightTheorQSideFctn::ProcessSameEventParticles(AliHBTPair* partpair)
+{
+ //Processes Particles and tracks Same different even
+ partpair = CheckPair(partpair);
+ Double_t weight = AliHBTLLWeights::Instance()->GetWeight(partpair);
+ if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQSideCMSLC(),weight);
+}
+
+/**************************************************************/
+TH1* AliHBTLLWeightTheorQSideFctn::GetResult()
+{
+ //returns ratio of numerator and denominator
+ return GetRatio(Scale());
+}
+
+/*************************************************************/
+/*************************************************************/
+/*************************************************************/
+
+ClassImp(AliHBTLLWeightTheorQLongFctn)
+/*************************************************************/
+
+AliHBTLLWeightTheorQLongFctn::
+AliHBTLLWeightTheorQLongFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
+ AliHBTOnePairFctn1D(nbins,maxXval,minXval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqlongtheorcf","Q_{long} Weight Theoretical Correlation Function");
+}
+/****************************************************************/
+void AliHBTLLWeightTheorQLongFctn::ProcessSameEventParticles(AliHBTPair* partpair)
+{
+ //Processes Particles and tracks Same different even
+ partpair = CheckPair(partpair);
+ Double_t weight = AliHBTLLWeights::Instance()->GetWeight(partpair);
+ if(TMath::Abs(weight)<=10.) fNumerator->Fill(partpair->GetQLongCMSLC(),weight);
+}
+
+/**************************************************************/
+TH1* AliHBTLLWeightTheorQLongFctn::GetResult()
+{
+ //returns ratio of numerator and denominator
+ return GetRatio(Scale());
+}