ROOT logo
#ifndef ALIHFEPIDTOF_H
#define ALIHFEPIDTOF_H

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

//
// Class for TOF PID
// Rejects protons and kaons at the TPC dE/dx line crossings
// For more information please check the implementation file
//
#ifndef ALIHFEPIDBASE_H
#include "AliHFEpidBase.h"
#endif

#ifndef ROOT_TARRAY
#include <TArrayD.h>
#endif

class AliVParticle;
class AliVTrack;
class AliPID;

class AliHFEpidQAmanager;

class AliHFEpidTOF : public AliHFEpidBase{
  public:
    AliHFEpidTOF();
    AliHFEpidTOF(const Char_t *name);
    virtual ~AliHFEpidTOF();
    AliHFEpidTOF(const AliHFEpidTOF &c);
    AliHFEpidTOF &operator=(const AliHFEpidTOF &c);
  
    virtual Bool_t    InitializePID(Int_t /*run*/);
    virtual Int_t     IsSelected(const AliHFEpidObject *track, AliHFEpidQAmanager *piqa) const;
  
    void SetTOFnSigma(Float_t nSigma) { fNsigmaTOF = nSigma; };
    void SetTOFnSigmaBand(Float_t lower, Float_t upper);
    void SetTOFnSigmaBandCentrality(Float_t lower, Float_t upper, Int_t centralityBin); 
    void SetGenerateTOFmismatch(Bool_t gen = kTRUE, Int_t ntrk = 10) { fGenerateTOFmismatch = gen; fNmismatchTracks = ntrk; }
    Bool_t IsGenerateTOFmismatch() const { return fGenerateTOFmismatch; }
    Int_t GetNmismatchTracks() const { return fNmismatchTracks; }
    void UseTOFonlyIfAvailable() { fUseOnlyIfAvailable = kTRUE; }
    void SetRejectTOFmismatch() { fRejectMismatch = kTRUE; }
    void GenerateTOFmismatch(const AliVTrack * const trk, int ntrk, TArrayD &sigmaEl);

  protected:
    void Copy(TObject &ref) const;
    Bool_t IsMismatch(const AliVTrack *const track) const;

  private:
    enum {
      kSigmaBand = BIT(15)
    };
    Float_t    fNsigmaTOF;          // TOF sigma band
    Float_t    fSigmaBordersTOFLower[12]; // Min.  sigma cut
    Float_t    fSigmaBordersTOFUpper[12]; // Max.  sigma cut
    Bool_t     fUseOnlyIfAvailable;       // Use TOF obly if available
    Bool_t     fRejectMismatch;           // Reject TOF mismatch
    Bool_t     fGenerateTOFmismatch;      // Generate TOF mismatch
    Int_t      fNmismatchTracks;          // Number of mismatch tracks to generate

    ClassDef(AliHFEpidTOF, 1)
};

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