\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::ProcessV0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN){\r
+Bool_t AliESDv0KineCuts::ProcessV0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const \r
+{\r
//\r
// main user function\r
//\r
return kFALSE;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::ProcessV0(AliESDv0* const v0, Int_t &pdgP, Int_t &pdgN){\r
+Bool_t AliESDv0KineCuts::ProcessV0(AliESDv0* const v0, Int_t &pdgP, Int_t &pdgN) const \r
+{\r
//\r
// main user function, simplified if the V0 identity is not necessary\r
//\r
\r
}\r
//____________________________________________________________________\r
-Int_t AliESDv0KineCuts::PreselectV0(AliESDv0* const v0){\r
+Int_t AliESDv0KineCuts::PreselectV0(AliESDv0* const v0) const \r
+{\r
//\r
// Make a preselection (exclusive) of the V0 cadidates based on\r
// Armenteros plot\r
return kUndef;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::SingleTrackCuts(AliESDv0 * const v0){\r
+Bool_t AliESDv0KineCuts::SingleTrackCuts(AliESDv0 * const v0) const \r
+{\r
//\r
// apply single track cuts\r
// correct sign not relevat here\r
return kTRUE;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::CaseGamma(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN){\r
+Bool_t AliESDv0KineCuts::CaseGamma(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const \r
+{\r
//\r
// process the gamma conversion candidate\r
//\r
return kTRUE;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::CaseK0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN){\r
+Bool_t AliESDv0KineCuts::CaseK0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const {\r
//\r
// process the K0 candidate\r
//\r
return kTRUE;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::CaseLambda(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN, Int_t id){\r
+Bool_t AliESDv0KineCuts::CaseLambda(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN, Int_t id) const {\r
//\r
// process teh Lambda and Anti-Lambda candidate\r
//\r
return kTRUE;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::V0CutsCommon(AliESDv0 * const v0){\r
+Bool_t AliESDv0KineCuts::V0CutsCommon(AliESDv0 * const v0) const \r
+{\r
//\r
// V0 cuts common to all V0s\r
//\r
return kTRUE;\r
}\r
//____________________________________________________________________\r
-void AliESDv0KineCuts::Armenteros(AliESDv0* const v0, Float_t val[2]){\r
+void AliESDv0KineCuts::Armenteros(AliESDv0* const v0, Float_t val[2]) const \r
+{\r
//\r
// computes the Armenteros variables for given V0\r
// fills the histogram\r
val[1] = qt;\r
}\r
//____________________________________________________________________\r
-Bool_t AliESDv0KineCuts::CheckSigns(AliESDv0* const v0){\r
+Bool_t AliESDv0KineCuts::CheckSigns(AliESDv0* const v0) const \r
+{\r
//\r
// check wheter the sign was correctly applied to \r
// V0 daughter tracks\r
return correct;\r
}\r
//________________________________________________________________\r
-Double_t AliESDv0KineCuts::PsiPair(AliESDv0* const v0) {\r
+Double_t AliESDv0KineCuts::PsiPair(AliESDv0* const v0) const \r
+{\r
//\r
// Angle between daughter momentum plane and plane \r
// \r
return psiPair; \r
}\r
//___________________________________________________________________\r
-Bool_t AliESDv0KineCuts::GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]){\r
+Bool_t AliESDv0KineCuts::GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]) const\r
+{\r
//\r
// recalculate the gamma conversion XY postition\r
//\r
return 1;\r
}\r
//___________________________________________________________________\r
-Bool_t AliESDv0KineCuts::GetHelixCenter(AliESDtrack * const track, Double_t b,Int_t charge, Double_t center[2]){\r
+Bool_t AliESDv0KineCuts::GetHelixCenter(AliESDtrack * const track, Double_t b,Int_t charge, Double_t center[2]) const\r
+{\r
//\r
// computes the center of the track helix\r
//\r
return 1;\r
}\r
//___________________________________________________________________\r
-AliKFParticle *AliESDv0KineCuts::CreateMotherParticle(const AliVTrack* const pdaughter, const AliVTrack* const ndaughter, Int_t pspec, Int_t nspec){\r
+AliKFParticle *AliESDv0KineCuts::CreateMotherParticle(const AliVTrack* const pdaughter, const AliVTrack* const ndaughter, Int_t pspec, Int_t nspec) const\r
+{\r
//\r
// Creates a mother particle\r
//\r
\r
// Create the mother particle \r
AliKFParticle *m = new AliKFParticle(pkfdaughter, nkfdaughter);\r
- // DEBUG - testing\r
+ m->SetField(fEvent->GetMagneticField());\r
if(TMath::Abs(kElectron) == pspec && TMath::Abs(kElectron) == nspec) m->SetMassConstraint(0, 0.001);\r
else if(TMath::Abs(kPiPlus) == pspec && TMath::Abs(kPiPlus) == nspec) m->SetMassConstraint(TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass(), 0.);\r
else if(TMath::Abs(kProton) == pspec && TMath::Abs(kPiPlus) == nspec) m->SetMassConstraint(TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(), 0.);\r
AliESDv0KineCuts &operator=(const AliESDv0KineCuts &ref);\r
\r
// main selection function - called once per V0 candidate\r
- Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);\r
- Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgP, Int_t &pdgN);\r
+ Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const;\r
+ Bool_t ProcessV0(AliESDv0* const v0, Int_t &pdgP, Int_t &pdgN) const;\r
\r
// must be called by the user\r
void SetEvent(AliESDEvent* const event);\r
};\r
\r
\r
- Int_t PreselectV0(AliESDv0* const v0);\r
+ Int_t PreselectV0(AliESDv0* const v0) const;\r
\r
- Bool_t CaseGamma(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);\r
- Bool_t CaseK0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN);\r
- Bool_t CaseLambda(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN, Int_t id);\r
+ Bool_t CaseGamma(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const;\r
+ Bool_t CaseK0(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN) const;\r
+ Bool_t CaseLambda(AliESDv0* const v0, Int_t &pdgV0, Int_t &pdgP, Int_t &pdgN, Int_t id) const;\r
\r
- Bool_t V0CutsCommon(AliESDv0 * const v0);\r
- Bool_t SingleTrackCuts(AliESDv0 * const v0);\r
- void Armenteros(AliESDv0* const v0, Float_t val[2]);\r
- Bool_t CheckSigns(AliESDv0* const v0);\r
+ Bool_t V0CutsCommon(AliESDv0 * const v0) const;\r
+ Bool_t SingleTrackCuts(AliESDv0 * const v0) const;\r
+ void Armenteros(AliESDv0* const v0, Float_t val[2]) const;\r
+ Bool_t CheckSigns(AliESDv0* const v0) const;\r
\r
- Double_t PsiPair(AliESDv0* const v0);\r
- Bool_t GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]);\r
- Bool_t GetHelixCenter(AliESDtrack * const track, Double_t b, Int_t charge, Double_t center[2]);\r
+ Double_t PsiPair(AliESDv0* const v0) const;\r
+ Bool_t GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]) const;\r
+ Bool_t GetHelixCenter(AliESDtrack * const track, Double_t b, Int_t charge, Double_t center[2]) const;\r
\r
protected:\r
void Copy(TObject &ref) const;\r
\r
private:\r
\r
- AliKFParticle *CreateMotherParticle(const AliVTrack* const pdaughter, const AliVTrack* const ndaughter, Int_t pspec, Int_t nspec);\r
+ AliKFParticle *CreateMotherParticle(const AliVTrack* const pdaughter, const AliVTrack* const ndaughter, Int_t pspec, Int_t nspec) const;\r
void SetCuts(); // setup cuts for selected fMode and fType, see source file for details\r
Bool_t GammaEffCuts(AliESDv0 * const v0); // set of cuts optimized for high gamma efficiency\r
\r