ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, 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.                  *
**************************************************************************/
//
// Signal cuts
// Checks whether a particle (reconstructed or MC) is coming from MC Signal
// For more information see implementation file
//
#ifndef ALIHFESIGNALCUTS_H
#define ALIHFESIGNALCUTS_H

#ifndef ALIANALYSISCUTS_H
#include "AliAnalysisCuts.h"
#endif

class TList;
class AliMCEvent;
class AliVParticle;
class AliHFEmcQA;
class TClonesArray;

class AliHFEsignalCuts : public AliAnalysisCuts{
  public: 
    enum ESignalSource_t{
       kEleCharm = 0,
       kEleBeauty = 1,
       kEleGamma = 2,
       kEleNonHFE = 3,
       kEleJPsi = 4,
       kEleBtoJPsi = 5,
       kEleKe3 =6,
       kOther = 7
    };
    AliHFEsignalCuts();
    AliHFEsignalCuts(const Char_t *name, const Char_t *title);
    AliHFEsignalCuts(const AliHFEsignalCuts &ref);
    AliHFEsignalCuts &operator=(const AliHFEsignalCuts &ref);
    virtual ~AliHFEsignalCuts();

    virtual Bool_t IsSelected(TObject *o);
    virtual Bool_t IsSelected(TList * /*l*/) { return kTRUE; };

    ESignalSource_t GetSignalSource(const TObject *const o) const;

    Bool_t IsCharmElectron(const TObject * const o) const { return GetSignalSource(o) == kEleCharm; }
    Bool_t IsBeautyElectron(const TObject * const o) const { return GetSignalSource(o) == kEleBeauty; }
    Bool_t IsGammaElectron(const TObject * const o) const { return GetSignalSource(o) == kEleGamma; }
    Bool_t IsNonHFElectron(const TObject * const o) const { return GetSignalSource(o) == kEleNonHFE; }
    Bool_t IsJpsiElectron(const TObject * const o) const { return GetSignalSource(o) == kEleJPsi; }
    Bool_t IsB2JpsiElectron(const TObject * const o) const { return GetSignalSource(o) == kEleBtoJPsi; }
    Bool_t IsKe3Electron(const TObject * const o) const { return GetSignalSource(o) == kEleKe3; }

    /*********************************************
     *           Old legacy code                 *
     *********************************************/
    Bool_t IsCharmElectronOld(const TObject * const o) const;
    Bool_t IsBeautyElectronOld(const TObject * const o) const;
    Bool_t IsGammaElectronOld(const TObject * const o) const;
    Bool_t IsNonHFElectronOld(const TObject * const o) const;
    Bool_t IsJpsiElectronOld(const TObject * const o) const;
    Bool_t IsB2JpsiElectronOld(const TObject * const o) const;
    Bool_t IsKe3ElectronOld(const TObject * const o) const;

    //void SetMCEvent(AliMCEvent *mc) { fMC = mc; }
    void SetMCEvent(AliMCEvent *mc);
    void SetMCAODInfo(TClonesArray *mcarray);
    const AliHFEmcQA *GetMCQAObject() const { return fMCQA; }
  
  protected:
    Int_t GetMotherPDG(const AliVParticle * const track) const;
    Int_t GetTrackPDG(const AliVParticle * const track) const;
    Int_t GetElecSource(const AliVParticle * const track) const ;

  private:
    AliMCEvent *fMC;                   //! MC event
    TClonesArray *fAODArrayMCInfo;     //! MC info particle AOD
    AliHFEmcQA *fMCQA;                 //! MC QA

    ClassDef(AliHFEsignalCuts, 3)
};
#endif

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