]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliRDHFCutsLctoV0.h
Modifications in Lc->V0+P analysis (Levente):
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsLctoV0.h
index b502fe0dbf3c97ac6a2e7a2457f021d4f2d0c09e..f5b0b1677647e26d9200d17c8aaa63c2a8cf1ccf 100644 (file)
@@ -3,39 +3,96 @@
 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-/* $Id$ */ 
+/* $Id$ */
 
 //***********************************************************
 // Class AliRDHFCutsLctoV0
 // class for cuts on AOD reconstructed Lc-> V0 + bachelor
 //***********************************************************
 
+#include "AliAODPidHF.h"
 #include "AliRDHFCuts.h"
 
-class AliRDHFCutsLctoV0 : public AliRDHFCuts 
+class AliRDHFCutsLctoV0 : public AliRDHFCuts
 {
  public:
 
-  AliRDHFCutsLctoV0(const char* name="CutsLctoV0");
-  
-  virtual ~AliRDHFCutsLctoV0(){;}
+  enum ELctoV0channel {
+    kLcToK0Spr=0x0001,
+    kLcToLBarpi=0x0002,
+    kLcToLpi=0x0004
+  };
+
+ enum ELctoV0pidStrategy {
+  kTOFandTPC=0,
+  kTOForTPCveto=1
+ };
+
+  AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0);
+
+  virtual ~AliRDHFCutsLctoV0();
 
   AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source);
-  AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source); 
+  AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source);
+
   using AliRDHFCuts::GetCutVarsForOpt;
   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
 
   using AliRDHFCuts::IsSelected;
   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
-  
+
+  using AliRDHFCuts::IsSelectedPID;
+  virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
+
+  Int_t IsSelectedSingleCut(TObject* obj, Int_t selectionLevel, Int_t cutIndex);
+
+  Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const;
+
   Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
   Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(7,iPtBin)] : 1.e6);}
 
+  void SetPidSelectionFlag(Int_t a) {fPidSelectionFlag=a;}
+  Int_t GetPidSelectionFlag() {return fPidSelectionFlag;}
+
+  Int_t GetV0Type();
+
+  virtual void SetStandardCutsPP2010();
+  virtual void SetStandardCutsPbPb2010();
+  virtual void SetStandardCutsPbPb2011();
+
+  void SetPidV0pos(AliAODPidHF* pidV0pos) {
+    if (fPidHFV0pos) delete fPidHFV0pos;
+    fPidHFV0pos = new AliAODPidHF(*pidV0pos);
+  }
+  void SetPidV0neg(AliAODPidHF* pidV0neg) {
+    if (fPidHFV0neg) delete fPidHFV0neg;
+    fPidHFV0neg = new AliAODPidHF(*pidV0neg);
+  }
+
+  AliAODPidHF * GetPidV0pos() { return fPidHFV0pos; }
+  AliAODPidHF * GetPidV0neg() { return fPidHFV0neg; }
+
+  void AddTrackCutsV0daughters(AliESDtrackCuts* v0daug) {
+    fV0daughtersCuts = new AliESDtrackCuts(*v0daug);
+  }
+  virtual AliESDtrackCuts *GetTrackCutsV0daughters() const {return fV0daughtersCuts;}
+
  protected:
 
+  void CheckPID(AliAODTrack *bachelor, AliAODTrack *v0Neg, AliAODTrack *v0Pos,
+               Bool_t &isBachelorID1, Bool_t &isV0NegID2, Bool_t &isV0PosID4);
+
+ private:
+
+  Int_t fPidSelectionFlag;
+  AliAODPidHF *fPidHFV0pos;
+  AliAODPidHF *fPidHFV0neg;
+  AliESDtrackCuts *fV0daughtersCuts; // cuts for v0 daughters (AOD converted to ESD on the flight!)
+  Float_t     fV0Type; // V0 type -- should be defined as in AliRDHFCuts.h
+
+  //UShort_t fV0channel;
 
-  ClassDef(AliRDHFCutsLctoV0,1);  // class for cuts on AOD reconstructed Lc->V0+bachelor
+  ClassDef(AliRDHFCutsLctoV0,4);  // class for cuts on AOD reconstructed Lc->V0+bachelor
 };
 
 #endif