#include "AliFemtoModelBPLCMSCorrFctn.h"
#include "AliFemtoPair.h"
#include "AliFemtoModelManager.h"
+#include "AliFemtoKTPairCut.h"
+#include "AliFemtoAnalysisReactionPlane.h"
#include <cstdio>
#ifdef __ROOT__
fNumerator3DFake(0),
fDenominator3D(0),
fQinvHisto(0),
- fPairCut(0)
+ fPairCut(0),
+ fUseRPSelection(0)
{
// set up true numerator
char tTitNumT[100] = "Num3DTrue";
fNumerator3DFake(0),
fDenominator3D(0),
fQinvHisto(0),
- fPairCut(0)
+ fPairCut(0),
+ fUseRPSelection(0)
{
// Copy constructor
fNumerator3DTrue = new TH3D(*aCorrFctn.fNumerator3DTrue);
{
// Store a real pair in numerator
if (fPairCut){
- if (!(fPairCut->Pass(pair))) return;
+ if (fUseRPSelection) {
+ AliFemtoKTPairCut *ktc = dynamic_cast<AliFemtoKTPairCut *>(fPairCut);
+ if (!ktc) {
+ cout << "RP aware cut requested, but not connected to the CF" << endl;
+ if (!(fPairCut->Pass(pair))) return;
+ }
+ else {
+ AliFemtoAnalysisReactionPlane *arp = dynamic_cast<AliFemtoAnalysisReactionPlane *> (HbtAnalysis());
+ if (!arp) {
+ cout << "RP aware cut requested, but not connected to the CF" << endl;
+ if (!(fPairCut->Pass(pair))) return;
+ }
+ if (!(ktc->Pass(pair, arp->GetCurrentReactionPlane()))) return;
+ }
+ }
+ else
+ if (!(fPairCut->Pass(pair))) return;
}
+// if (fPairCut){
+// if (!(fPairCut->Pass(pair))) return;
+// }
Double_t weight = fManager->GetWeight(pair);
- double qOut = fabs(pair->QOutCMS());
- double qSide = fabs(pair->QSideCMS());
- double qLong = fabs(pair->QLongCMS());
+ double qOut = (pair->QOutCMS());
+ double qSide = (pair->QSideCMS());
+ double qLong = (pair->QLongCMS());
fNumerator3DTrue->Fill(qOut, qSide, qLong, weight);
fNumeratorTrue->Fill(pair->QInv(), weight);
void AliFemtoModelBPLCMSCorrFctn::AddMixedPair( AliFemtoPair* pair){
// store mixed pair in denominator
if (fPairCut){
- if (!(fPairCut->Pass(pair))) return;
+ if (fUseRPSelection) {
+ AliFemtoKTPairCut *ktc = dynamic_cast<AliFemtoKTPairCut *>(fPairCut);
+ if (!ktc) {
+ cout << "RP aware cut requested, but not connected to the CF" << endl;
+ if (!(fPairCut->Pass(pair))) return;
+ }
+ else {
+ AliFemtoAnalysisReactionPlane *arp = dynamic_cast<AliFemtoAnalysisReactionPlane *> (HbtAnalysis());
+ if (!arp) {
+ cout << "RP aware cut requested, but not connected to the CF" << endl;
+ if (!(fPairCut->Pass(pair))) return;
+ }
+ if (!(ktc->Pass(pair, arp->GetCurrentReactionPlane()))) return;
+ }
+ }
+ else
+ if (!(fPairCut->Pass(pair))) return;
}
+// if (fPairCut){
+// if (!(fPairCut->Pass(pair))) return;
+// }
Double_t weight = fManager->GetWeight(pair);
- double qOut = fabs(pair->QOutCMS());
- double qSide = fabs(pair->QSideCMS());
- double qLong = fabs(pair->QLongCMS());
+ double qOut = (pair->QOutCMS());
+ double qSide = (pair->QSideCMS());
+ double qLong = (pair->QLongCMS());
fNumerator3DFake->Fill(qOut, qSide, qLong, weight);
fDenominator3D->Fill(qOut, qSide, qLong, 1.0);
{
fPairCut = aCut;
}
+
+void AliFemtoModelBPLCMSCorrFctn::SetUseRPSelection(unsigned short aRPSel)
+{
+ fUseRPSelection = aRPSel;
+}