#include "AliHBTPairCut.h"
#include "AliHBTPair.h"
#include "AliHBTParticleCut.h"
+#include "AliHBTTrackPoints.h"
#include "AliHBTClusterMap.h"
ClassImp(AliHBTPairCut)
else fCuts[fNCuts++] = new AliHBTKStarCut(min,max);
}
/**********************************************************/
-
void AliHBTPairCut::SetAvSeparationRange(Double_t min, Double_t max)
{
//sets avarage separation cut ->Anti-Merging cut
Double_t AliHBTAvSeparationCut::GetValue(AliHBTPair* pair) const
{
- //checks if avarage distance of two tracks is in given range
- return pair->GetAvarageDistance();
+ //chacks if avarage distance of two tracks is in given range
+ AliHBTTrackPoints* tpts1 = pair->Particle1()->GetTrackPoints();
+ if ( tpts1 == 0x0)
+ {//it could be simulated pair
+// Warning("GetValue","Track 1 does not have Track Points. Pair NOT Passed.");
+ return -1.0;
+ }
+
+ AliHBTTrackPoints* tpts2 = pair->Particle2()->GetTrackPoints();
+ if ( tpts2 == 0x0)
+ {
+// Warning("GetValue","Track 2 does not have Track Points. Pair NOT Passed.");
+ return -1.0;
+ }
+
+ return tpts1->AvarageDistance(*tpts2);
}
/******************************************************************/
return cm1->GetOverlapFactor(*cm2);
}
/******************************************************************/
+ClassImp(AliHBTOutSideSameSignCut)
+
+Bool_t AliHBTOutSideSameSignCut::Pass(AliHBTPair *p) const
+{
+ //returns kTRUE if pair DO NOT meet cut criteria
+
+ if ( p->GetQOutCMSLC()*p->GetQSideCMSLC() > 0 )
+ {
+ return kFALSE;//accpeted
+ }
+
+ return kTRUE ;//rejected
+}
+/******************************************************************/
+ClassImp(AliHBTOutSideDiffSignCut)
+Bool_t AliHBTOutSideDiffSignCut::Pass(AliHBTPair *p) const
+{
+ //returns kTRUE if pair DO NOT meet cut criteria
+
+ if ( p->GetQOutCMSLC()*p->GetQSideCMSLC() > 0 )
+ {
+ return kTRUE;//rejected
+ }
+
+ return kFALSE;//accepted
+}
+/******************************************************************/
ClassImp( AliHBTLogicalOperPairCut )
AliHBTLogicalOperPairCut::AliHBTLogicalOperPairCut():
ClassDef(AliHBTQLongCMSLCCut,1)
};
/******************************************************************/
+
+class AliHBTCluterOverlapCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTCluterOverlapCut(Double_t min = 0.0, Double_t max = 1e5):
+ AliHbtBasePairCut(min,max,kHbtPairCutPropClOverlap){}
+ virtual ~AliHBTCluterOverlapCut(){}
+
+ protected:
+ virtual Double_t GetValue(AliHBTPair* pair) const;
+ ClassDef(AliHBTCluterOverlapCut,1)
+};
+/******************************************************************/
class AliHBTAvSeparationCut: public AliHbtBasePairCut
{
};
/******************************************************************/
-class AliHBTCluterOverlapCut: public AliHbtBasePairCut
+class AliHBTOutSideSameSignCut: public AliHbtBasePairCut
{
public:
- AliHBTCluterOverlapCut(Double_t min = 0.0, Double_t max = 1e5):
- AliHbtBasePairCut(min,max,kHbtPairCutPropClOverlap){}
- virtual ~AliHBTCluterOverlapCut(){}
-
+ AliHBTOutSideSameSignCut(){}
+ virtual ~AliHBTOutSideSameSignCut(){}
+ virtual Bool_t Pass(AliHBTPair *p) const;
protected:
- virtual Double_t GetValue(AliHBTPair* pair) const;
- ClassDef(AliHBTCluterOverlapCut,1)
+ virtual Double_t GetValue(AliHBTPair* pair) const {return 0.0;}
+ ClassDef(AliHBTOutSideSameSignCut,1)
+};
+/******************************************************************/
+
+class AliHBTOutSideDiffSignCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTOutSideDiffSignCut(){}
+ virtual ~AliHBTOutSideDiffSignCut(){}
+ virtual Bool_t Pass(AliHBTPair *p) const;
+ protected:
+ virtual Double_t GetValue(AliHBTPair* pair) const {return 0.0;}
+ ClassDef(AliHBTOutSideDiffSignCut,1)
};
/******************************************************************/
{
public:
AliHBTTwoTrackEffFctnPtThetaPhi(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
- Int_t nYbins = 100, Double_t maxYval = 0.5, Double_t minYval = 0.0,
- Int_t nZbins = 100, Double_t maxZval = 0.5, Double_t minZval = 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 ~AliHBTTwoTrackEffFctnPtThetaPhi(){}
TH1* GetResult();
protected:
#pragma link C++ class AliHBTQLongCMSLCCut+;
#pragma link C++ class AliHBTAvSeparationCut+;
#pragma link C++ class AliHBTCluterOverlapCut+;
+#pragma link C++ class AliHBTOutSideSameSignCut+;
+#pragma link C++ class AliHBTOutSideDiffSignCut+;
#pragma link C++ class AliHBTLogicalOperPairCut-;
#pragma link C++ class AliHBTOrPairCut+;
#pragma link C++ class AliHBTAndPairCut+;