#pragma link C++ class AliAODQInvCut+;
#pragma link C++ class AliAODKtCut+;
#pragma link C++ class AliAODKStarCut+;
+#pragma link C++ class AliAODKStarOutCut+;
+#pragma link C++ class AliAODKStarSideCut+;
+#pragma link C++ class AliAODKStarLongCut+;
#pragma link C++ class AliAODQSideLCMSCut+;
#pragma link C++ class AliAODQOutLCMSCut+;
#pragma link C++ class AliAODQLongLCMSCut+;
}
/************************************************************************/
+Double_t AliAODPair::GetGammaToTransverse()
+{
+ //calculates gamma factor of the boost to LCMS
+ Double_t beta = 2.0*GetKt() / GetMt();
+ Double_t gamma = 1.0/TMath::Sqrt(1.0 - beta*beta);
+
+ return gamma;
+}
+/************************************************************************/
+
Double_t AliAODPair::GetMt()
{
//Calculates transverse mass of the pair
delete fPart2;
fPart2 = 0x0;
}
+
+void AliAODPair::Print(Option_t* /*option*/)
+{
+ if (fPart1) fPart1->Print();
+ if (fPart2) fPart2->Print();
+
+ Info("Print","GetKStar() %f",GetKStar());
+ Info("Print","GetKt() %f",GetKt() );
+ Info("Print","QInv %f", GetQInv() );
+ Info("Print","GetQOutLCMS() %f",GetQOutLCMS() );
+ Info("Print","GetQSideLCMS %f",GetQSideLCMS() );
+ Info("Print","GetQLongLCMS() %f", GetQLongLCMS());
+ Info("Print","GetDeltaTheta() %f", GetDeltaTheta());
+ Info("Print","GetDeltaPhi() %f", GetDeltaPhi());
+
+
+}
virtual Double_t GetDeltaPhi();
virtual Double_t GetGammaToLCMS();
+ virtual Double_t GetGammaToTransverse();
virtual Double_t GetPIDProb() const {return fPart1->GetPidProb()*fPart2->GetPidProb();}
virtual Double_t GetRStar() ;
void MirrorSecond();
void DeleteSecond();
+
+ void Print(Option_t* /*option*/ = "" ) ;
+
protected:
AliVAODParticle* fPart1; //pointer to first particle
AliVAODParticle* fPart2; //pointer to second particle
kHbtPairCutPropQInv, //Q invariant
kHbtPairCutPropKt,
kHbtPairCutPropKStar,
+ kHbtPairCutPropKStarOut,
+ kHbtPairCutPropKStarSide,
+ kHbtPairCutPropKStarLong,
kHbtPairCutPropQSideLCMS,
kHbtPairCutPropQOutLCMS,
kHbtPairCutPropQLongLCMS,
};
/******************************************************************/
+class AliAODKStarOutCut: public AliAODPairBaseCut
+{
+ public:
+ AliAODKStarOutCut(Double_t min = 0.0, Double_t max = 0.0):AliAODPairBaseCut(min,max,kHbtPairCutPropKStarOut){}
+ virtual ~AliAODKStarOutCut(){}
+ protected:
+ virtual Double_t GetValue(AliAODPair* pair) const {return pair->GetKStarOut();}
+
+ ClassDef(AliAODKStarOutCut,1)
+};
+/******************************************************************/
+class AliAODKStarSideCut: public AliAODPairBaseCut
+{
+ public:
+ AliAODKStarSideCut(Double_t min = 0.0, Double_t max = 0.0):AliAODPairBaseCut(min,max,kHbtPairCutPropKStarSide){}
+ virtual ~AliAODKStarSideCut(){}
+ protected:
+ virtual Double_t GetValue(AliAODPair* pair) const {return pair->GetKStarSide();}
+
+ ClassDef(AliAODKStarSideCut,1)
+};
+
+/******************************************************************/
+
+class AliAODKStarLongCut: public AliAODPairBaseCut
+{
+ public:
+ AliAODKStarLongCut(Double_t min = 0.0, Double_t max = 0.0):AliAODPairBaseCut(min,max,kHbtPairCutPropKStarLong){}
+ virtual ~AliAODKStarLongCut(){}
+ protected:
+ virtual Double_t GetValue(AliAODPair* pair) const {return pair->GetKStarLong();}
+
+ ClassDef(AliAODKStarLongCut,1)
+};
+/******************************************************************/
+
class AliAODQSideLCMSCut: public AliAODPairBaseCut
{
public:
}
/**********************************************************/
+void AliAODPairCut::SetKStarOutRange(Double_t min, Double_t max)
+{
+ // set range of accepted KStar (invariant pair momentum difference (fourvector))
+ AliAODKStarOutCut* cut= (AliAODKStarOutCut*)FindCut(AliAODPairBaseCut::kHbtPairCutPropKStarOut);
+ if(cut) cut->SetRange(min,max);
+ else fCuts[fNCuts++] = new AliAODKStarOutCut(min,max);
+}
+/**********************************************************/
+
+void AliAODPairCut::SetKStarSideRange(Double_t min, Double_t max)
+{
+ // set range of accepted KStar (invariant pair momentum difference (fourvector))
+ AliAODKStarSideCut* cut= (AliAODKStarSideCut*)FindCut(AliAODPairBaseCut::kHbtPairCutPropKStarSide);
+ if(cut) cut->SetRange(min,max);
+ else fCuts[fNCuts++] = new AliAODKStarSideCut(min,max);
+}
+/**********************************************************/
+
+void AliAODPairCut::SetKStarLongRange(Double_t min, Double_t max)
+{
+ // set range of accepted KStar (invariant pair momentum difference (fourvector))
+ AliAODKStarLongCut* cut= (AliAODKStarLongCut*)FindCut(AliAODPairBaseCut::kHbtPairCutPropKStarLong);
+ if(cut) cut->SetRange(min,max);
+ else fCuts[fNCuts++] = new AliAODKStarLongCut(min,max);
+}
+/**********************************************************/
+
void AliAODPairCut::SetAvSeparationRange(Double_t min, Double_t max)
{
//sets avarage separation cut ->Anti-Merging cut
void SetQInvRange(Double_t min, Double_t max);
void SetKtRange(Double_t min, Double_t max);
void SetKStarRange(Double_t min, Double_t max);
+ void SetKStarOutRange(Double_t min, Double_t max);
+ void SetKStarSideRange(Double_t min, Double_t max);
+ void SetKStarLongRange(Double_t min, Double_t max);
void SetQOutLCMSRange(Double_t min, Double_t max);
void SetQSideLCMSRange(Double_t min, Double_t max);
void SetQLongLCMSRange(Double_t min, Double_t max);