ROOT logo
#ifndef ALICFVERTEXINGHF3PRONG_H
#define ALICFVERTEXINGHF3PRONG_H

/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

///////////////////////////////////////////////////////////////////
//                                                               //
// Class to compute variables for correction framework           //  
// for 3-body decays of D mesons (D+, Ds, Lc)                    //
// in bins of cut variables                                      //
// Origin:       Francesco Prino (prino@to.infn.it)              //
//               Renu Bala       (bala@to.infn.it)               //
//                                                               //
///////////////////////////////////////////////////////////////////

#include "AliCFVertexingHF.h"
#include "AliAODRecoDecayHF.h"
#include "AliAODRecoDecayHF3Prong.h"

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

class AliCFVertexingHF3Prong : public AliCFVertexingHF{
	public:
		
  AliCFVertexingHF3Prong(Int_t decay,UInt_t resonantDecay);
  AliCFVertexingHF3Prong(Int_t decay);
  AliCFVertexingHF3Prong(TClonesArray *mcArray, UShort_t originDselection, Int_t decay);  
  AliCFVertexingHF3Prong(TClonesArray *mcArray, UShort_t originDselection, Int_t decay,UInt_t resonantDecay);  
  virtual ~AliCFVertexingHF3Prong(){};
  
  
  
  Bool_t GetGeneratedValuesFromMCParticle(Double_t* /*vectorMC*/);
  Bool_t GetRecoValuesFromCandidate(Double_t* /*vectorReco*/ ) const;
  Bool_t CheckMCChannelDecay()const;
  
  Bool_t SetRecoCandidateParam(AliAODRecoDecayHF *recoCand);
  virtual void SetDecay3Prong(Int_t decay){fDecay=decay;}
  Bool_t CheckLc3Prong() const;
  void SetResonantDecay(UInt_t resonantDecay) {fResonantDecay = resonantDecay;}
  UInt_t GetResonantDecay() const {return fResonantDecay;}
 
  void SetGeneratedDsOption(Int_t opt) {fGenDsOption=opt;}
  Int_t GetGeneratedDsOption() const {return fGenDsOption;}

  enum EDsSel {kCountAllDsKKpi=0, kCountPhipi=1, kCountK0stK=2, kCountResonant=3, kCountNonResonant=4};

 protected:
  
  
  
 private:	
  AliCFVertexingHF3Prong(const AliCFVertexingHF3Prong& c);
  AliCFVertexingHF3Prong& operator= (const AliCFVertexingHF3Prong& other);
  
  Int_t fDecay;   // decay mode id
  Int_t fGenDsOption;  // option for selection Ds (see enum)
  UInt_t fResonantDecay; // resonant decay for which to run the CF

  ClassDef(AliCFVertexingHF3Prong, 3);
  
};

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