fRatio = GetRatio(Scale());
return fRatio;
}
+/*************************************************************/
+/*************************************************************/
+/*************************************************************/
+
+ClassImp(AliHBTWeightQOutSQideQLongFctn)
+
+AliHBTWeightQOutSQideQLongFctn::AliHBTWeightQOutSQideQLongFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
+ Int_t nYbins, Double_t maxYval, Double_t minYval,
+ Int_t nZbins, Double_t maxZval, Double_t minZval):
+ AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
+{
+ //ctor
+ fWriteNumAndDen = kTRUE;//change default behaviour
+ Rename("wqoslcf","Q_{out}-Q_{side}-Q_{long} Weight Correlation Fctn");
+}
+/*************************************************************/
+
+void AliHBTWeightQOutSQideQLongFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+//Fills numerator
+ //process particles from same events (fills numerator)
+ trackpair = CheckPair(trackpair);
+ partpair = CheckPair(partpair);
+ if ( trackpair && partpair)
+ {
+// Double_t weightPID=1.;
+ Double_t weight = 1.0;
+ if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
+ ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode()) )
+ {
+ weight=partpair->GetWeight();//here we take weight from the particle pair
+ }
+// Double_t weight=weightHBT*weightPID;
+ Double_t out = TMath::Abs(trackpair->GetQOutCMSLC());
+ Double_t side = TMath::Abs(trackpair->GetQSideCMSLC());
+ Double_t lon = TMath::Abs(trackpair->GetQLongCMSLC());
+ fNumerator->Fill(out,side,lon,weight);//here we fill in q's corresponding to track pair
+ //weight calculated for the simulated one
+ }
+}
+/*************************************************************/
+
+void AliHBTWeightQOutSQideQLongFctn::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(),trackpair->GetQLongCMSLC());
+ }
+}
+/*************************************************************/
+
+TH1* AliHBTWeightQOutSQideQLongFctn::GetResult()
+{
+ //returns the scaled ratio
+ delete fRatio;
+ fRatio = GetRatio(Scale());
+ return fRatio;
+}
ClassDef(AliHBTWeightQOutQLongFctn,2)
};
-
/*************************************************************************************/
class AliHBTWeightQSideQLongFctn: public AliHBTTwoPairFctn2D, public AliHBTCorrelFunction
// friend class AliHBTOnePairFctn1D;
public:
AliHBTWeightQSideQLongFctn(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);
+ Int_t nybins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0);
virtual ~AliHBTWeightQSideQLongFctn(){};
TH1* GetResult();
void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
ClassDef(AliHBTWeightQSideQLongFctn,2)
};
+/*************************************************************************************/
+
+class AliHBTWeightQOutSQideQLongFctn: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
+{
+
+ public:
+ AliHBTWeightQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.3, Double_t minXval = 0.0,
+ Int_t nYbins = 100, Double_t maxYval = 0.3, Double_t minYval = 0.0,
+ Int_t nZbins = 100, Double_t maxZval = 0.3, Double_t minZval = 0.0);
+ virtual ~AliHBTWeightQOutSQideQLongFctn(){}
+
+ TH1* GetResult();
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+ protected:
+ void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/,
+ Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) { }
+
+ ClassDef(AliHBTWeightQOutSQideQLongFctn,1)
+};
+
#endif