ROOT logo
#ifndef ALIDIELECTRONV0CUTS_H
#define ALIDIELECTRONV0CUTS_H

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

//#############################################################
//#                                                           # 
//#         Class AliDielectronV0Cuts                        #
//#         Provide cuts for all variables handled in         #
//#           AliDielectronV0Manager                         #
//#                                                           #
//#  Authors:                                                 #
//#   Anton     Andronic, GSI / A.Andronic@gsi.de             #
//#   Ionut C.  Arsene,   GSI / I.C.Arsene@gsi.de             #
//#   Julian    Book,     Uni Ffm / Julian.Book@cern.ch       #
//#   Frederick Kramer,   Uni Ffm, / Frederick.Kramer@cern.ch #
//#   Magnus    Mager,    CERN / Magnus.Mager@cern.ch         #
//#   WooJin J. Park,     GSI / W.J.Park@gsi.de               #
//#   Jens      Wiechula, Uni HD / Jens.Wiechula@cern.ch      #
//#                                                           #
//#############################################################

#include <Rtypes.h>

#include <AliDielectronVarCuts.h>

class AliDielectronV0Cuts : public AliDielectronVarCuts {
public:
  enum EV0finder {
    kAll = 0,
    kOffline,
    kOnTheFly
  };
  enum PIDCutType { kBoth=0, kAny };

  AliDielectronV0Cuts();
  AliDielectronV0Cuts(const char* name, const char* title);
  virtual ~AliDielectronV0Cuts();
  //TODO: make copy constructor and assignment operator public

  //
  //Analysis cuts interface
  //
  void InitEvent(AliVTrack *trk);
  Bool_t IsNewEvent(const AliVEvent *ev);
  virtual Bool_t IsSelected(TObject* track);
  virtual Bool_t IsSelected(TList*   /* list */ ) {return kFALSE;}
  void SetV0finder(EV0finder finder) {fV0finder=finder;}
  void SetPdgCodes(Int_t mother, Int_t negDaughter, Int_t posDaughter) {fMotherPdg=mother; fNegPdg=negDaughter; fPosPdg=posDaughter;}
  void SetExcludeTracks(Bool_t exclude) {fExcludeTracks=exclude;}
  void SetDefaultPID(Int_t def, PIDCutType type=kBoth) {fPID=def; fPIDCutType=type; }
  void ResetUniqueEventNumbers() { fOrbit=0; fPeriod=0; fBunchCross=0; }

  // cut information
  virtual void Print(const Option_t* option = "") const;

private:

  TBits fV0TrackArr;                        // array with booleans where TrackID corresponds to bitnumber
  Bool_t fExcludeTracks;                       // cut logic: exclude or include tracks corresponding to a V0 candidate
  EV0finder fV0finder;                      // which v0 finder

  Int_t fMotherPdg;                         // target pdg code of the mother
  Int_t fNegPdg;                            // target pdg code of the negative daughter
  Int_t fPosPdg;                            // target pdg code of the positive daughter
  Int_t fPID;                               // default PID usage (see AliDielectronPID)
  PIDCutType fPIDCutType;                   // apply PIDcuts to one or both daughter tracks

  // memebers needed to identify an event
  UInt_t fOrbit;                            // orbit number
  UInt_t fPeriod;                           // period number
  UShort_t fBunchCross;                     // bunch cross number

  AliDielectronV0Cuts(const AliDielectronV0Cuts &c);
  AliDielectronV0Cuts &operator=(const AliDielectronV0Cuts &c);

  ClassDef(AliDielectronV0Cuts,3)          // cut class for V0 candidates
};

#endif

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