ROOT logo
#ifndef ALICFVERTEXINGHFLCTOV0BACHELOR_H
#define ALICFVERTEXINGHFLCTOV0BACHELOR_H

/**************************************************************************
 * Copyright(c) 1998-2011, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */ 

//-----------------------------------------------------------------------
// Class for HF corrections as a function of many variables and steps
// For Lc->V0 bachelor
// 
// Author : A. De Caro
//-----------------------------------------------------------------------


#include "AliCFVertexingHF.h"
#include "AliAODRecoDecayHF.h"
#include "AliAODRecoCascadeHF.h"
#include "AliAODRecoDecayHF2Prong.h"

class AliAODMCParticle;
class TClonesArray;
class AliCFVertexingHF;
class AliESDtrack;
class TDatabasePDG;

class AliCFVertexingHFLctoV0bachelor : public AliCFVertexingHF{
 public:

  enum ELctoV0Sel {
    kCountK0Sp=0,
    kCountLambdapi=1
  };

  AliCFVertexingHFLctoV0bachelor();
  AliCFVertexingHFLctoV0bachelor(TClonesArray *mcArray, UShort_t originDselection, Int_t lcDecay=0);

  virtual ~AliCFVertexingHFLctoV0bachelor(){};

  Bool_t GetGeneratedValuesFromMCParticle(Double_t* /*vectorMC*/);
  Bool_t GetRecoValuesFromCandidate(Double_t* /*vectorReco*/ ) const;
  Bool_t CheckMCChannelDecay()const;
  
  Bool_t SetRecoCandidateParam(AliAODRecoDecayHF *recoCand);

  Double_t GetEtaProng(Int_t iProng)const;
  Double_t GetPtProng(Int_t iProng) const;

  virtual Bool_t SetLabelArray();

 protected:

  Double_t Ctau(AliAODMCParticle *mcPartCandidate);
  Bool_t FillVectorFromMCarray(AliAODMCParticle *mcPartDaughterBachelor,
			       AliAODMCParticle *mcPartDaughterK0,
			       Double_t *vectorMC);

 private:	

  AliCFVertexingHFLctoV0bachelor(const AliCFVertexingHFLctoV0bachelor& c);
  AliCFVertexingHFLctoV0bachelor& operator= (const AliCFVertexingHFLctoV0bachelor& other);
  
  Int_t fGenLcOption;  // option for selection Lc (see enum)

  ClassDef(AliCFVertexingHFLctoV0bachelor, 1); // CF class for Lc->V0+bachelor and other cascades
  
};

#endif
 AliCFVertexingHFLctoV0bachelor.h:1
 AliCFVertexingHFLctoV0bachelor.h:2
 AliCFVertexingHFLctoV0bachelor.h:3
 AliCFVertexingHFLctoV0bachelor.h:4
 AliCFVertexingHFLctoV0bachelor.h:5
 AliCFVertexingHFLctoV0bachelor.h:6
 AliCFVertexingHFLctoV0bachelor.h:7
 AliCFVertexingHFLctoV0bachelor.h:8
 AliCFVertexingHFLctoV0bachelor.h:9
 AliCFVertexingHFLctoV0bachelor.h:10
 AliCFVertexingHFLctoV0bachelor.h:11
 AliCFVertexingHFLctoV0bachelor.h:12
 AliCFVertexingHFLctoV0bachelor.h:13
 AliCFVertexingHFLctoV0bachelor.h:14
 AliCFVertexingHFLctoV0bachelor.h:15
 AliCFVertexingHFLctoV0bachelor.h:16
 AliCFVertexingHFLctoV0bachelor.h:17
 AliCFVertexingHFLctoV0bachelor.h:18
 AliCFVertexingHFLctoV0bachelor.h:19
 AliCFVertexingHFLctoV0bachelor.h:20
 AliCFVertexingHFLctoV0bachelor.h:21
 AliCFVertexingHFLctoV0bachelor.h:22
 AliCFVertexingHFLctoV0bachelor.h:23
 AliCFVertexingHFLctoV0bachelor.h:24
 AliCFVertexingHFLctoV0bachelor.h:25
 AliCFVertexingHFLctoV0bachelor.h:26
 AliCFVertexingHFLctoV0bachelor.h:27
 AliCFVertexingHFLctoV0bachelor.h:28
 AliCFVertexingHFLctoV0bachelor.h:29
 AliCFVertexingHFLctoV0bachelor.h:30
 AliCFVertexingHFLctoV0bachelor.h:31
 AliCFVertexingHFLctoV0bachelor.h:32
 AliCFVertexingHFLctoV0bachelor.h:33
 AliCFVertexingHFLctoV0bachelor.h:34
 AliCFVertexingHFLctoV0bachelor.h:35
 AliCFVertexingHFLctoV0bachelor.h:36
 AliCFVertexingHFLctoV0bachelor.h:37
 AliCFVertexingHFLctoV0bachelor.h:38
 AliCFVertexingHFLctoV0bachelor.h:39
 AliCFVertexingHFLctoV0bachelor.h:40
 AliCFVertexingHFLctoV0bachelor.h:41
 AliCFVertexingHFLctoV0bachelor.h:42
 AliCFVertexingHFLctoV0bachelor.h:43
 AliCFVertexingHFLctoV0bachelor.h:44
 AliCFVertexingHFLctoV0bachelor.h:45
 AliCFVertexingHFLctoV0bachelor.h:46
 AliCFVertexingHFLctoV0bachelor.h:47
 AliCFVertexingHFLctoV0bachelor.h:48
 AliCFVertexingHFLctoV0bachelor.h:49
 AliCFVertexingHFLctoV0bachelor.h:50
 AliCFVertexingHFLctoV0bachelor.h:51
 AliCFVertexingHFLctoV0bachelor.h:52
 AliCFVertexingHFLctoV0bachelor.h:53
 AliCFVertexingHFLctoV0bachelor.h:54
 AliCFVertexingHFLctoV0bachelor.h:55
 AliCFVertexingHFLctoV0bachelor.h:56
 AliCFVertexingHFLctoV0bachelor.h:57
 AliCFVertexingHFLctoV0bachelor.h:58
 AliCFVertexingHFLctoV0bachelor.h:59
 AliCFVertexingHFLctoV0bachelor.h:60
 AliCFVertexingHFLctoV0bachelor.h:61
 AliCFVertexingHFLctoV0bachelor.h:62
 AliCFVertexingHFLctoV0bachelor.h:63
 AliCFVertexingHFLctoV0bachelor.h:64
 AliCFVertexingHFLctoV0bachelor.h:65
 AliCFVertexingHFLctoV0bachelor.h:66
 AliCFVertexingHFLctoV0bachelor.h:67
 AliCFVertexingHFLctoV0bachelor.h:68
 AliCFVertexingHFLctoV0bachelor.h:69
 AliCFVertexingHFLctoV0bachelor.h:70
 AliCFVertexingHFLctoV0bachelor.h:71
 AliCFVertexingHFLctoV0bachelor.h:72
 AliCFVertexingHFLctoV0bachelor.h:73
 AliCFVertexingHFLctoV0bachelor.h:74
 AliCFVertexingHFLctoV0bachelor.h:75
 AliCFVertexingHFLctoV0bachelor.h:76
 AliCFVertexingHFLctoV0bachelor.h:77
 AliCFVertexingHFLctoV0bachelor.h:78
 AliCFVertexingHFLctoV0bachelor.h:79
 AliCFVertexingHFLctoV0bachelor.h:80
 AliCFVertexingHFLctoV0bachelor.h:81
 AliCFVertexingHFLctoV0bachelor.h:82