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

// AliFlowTrackSimpleCuts:
// A simple track cut class to the the AliFlowTrackSimple for basic
// kinematic cuts
// author: N. van der Kolk (kolk@nikhef.nl)
// mods: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch), Redmer Bertens (rbertens@cern.ch)

#ifndef ALIFLOWTRACKSIMPLECUTS_H
#define ALIFLOWTRACKSIMPLECUTS_H

#include "TNamed.h"

class AliFlowTrackSimple;
class TParticle;

class AliFlowTrackSimpleCuts : public TNamed {

 public:
  AliFlowTrackSimpleCuts(const char* name="");
  //AliFlowTrackSimpleCuts(const AliFlowTrackSimpleCuts& someCuts);
  //AliFlowTrackSimpleCuts& operator=(const AliFlowTrackSimpleCuts& someCuts);
  virtual  ~AliFlowTrackSimpleCuts() {}
  
  //setters
  void SetPtMax(Double_t max)   {this->fPtMax = max; fCutPt=kTRUE; }
  void SetPtMin(Double_t min)   {this->fPtMin = min; fCutPt=kTRUE;  }
  void SetEtaMax(Double_t max)  {this->fEtaMax = max; fCutEta=kTRUE; }
  void SetEtaMin(Double_t min)  {this->fEtaMin = min; fCutEta=kTRUE; }
  void SetEtaGap(Double_t min, Double_t max)
        {fEtaGapMin = min, fEtaGapMax = max, fCutEtaGap = kTRUE; }
  void SetPhiMax(Double_t max)  {this->fPhiMax = max; fCutPhi=kTRUE; }
  void SetPhiMin(Double_t min)  {this->fPhiMin = min; fCutPhi=kTRUE; }
  void SetPID(Int_t pid)        {this->fPID = pid; fCutPID=kTRUE; }
  void SetCharge(Int_t c)       {this->fCharge = c; fCutCharge=kTRUE; }
  void SetMassMax(Double_t max) {this->fMassMax = max; fCutMass=kTRUE; }
  void SetMassMin(Double_t min) {this->fMassMin = min; fCutMass=kTRUE; }
  
  //getters
  Double_t GetPtMax() const     {return this->fPtMax; }
  Double_t GetPtMin() const     {return this->fPtMin; }
  Double_t GetEtaMax() const    {return this->fEtaMax; }
  Double_t GetEtaMin() const    {return this->fEtaMin; }
  Double_t GetPhiMax() const    {return this->fPhiMax; }
  Double_t GetEtaGapMin() const {return this->fEtaGapMin; }
  Double_t GetEtaGapMax() const {return this->fEtaGapMax; }
  Double_t GetPhiMin() const    {return this->fPhiMin; }
  Int_t    GetPID() const       {return this->fPID; }
  Int_t    GetCharge() const    {return this->fCharge; }
  Double_t GetMassMax() const   {return this->fMassMax; }
  Double_t GetMassMin() const   {return this->fMassMin; }
  
  //simple method to check if the simple track passes the simple cuts:
  Bool_t PassesCuts(const AliFlowTrackSimple *track) const;
  Bool_t PassesCuts(TParticle* p) const;

  Int_t GetPOItype() const {return fPOItype;}
  void SetPOItype(Int_t t) {fPOItype=t;}

  virtual Bool_t IsSelected(TObject* obj, Int_t id=-1);

 protected:
  Bool_t   fCutPt; //cut on pt?
  Double_t fPtMax; //max pt
  Double_t fPtMin; //min pt
  Bool_t   fCutEta; //cut on eta?
  Double_t fEtaMax; //max eta
  Double_t fEtaMin; //min eta
  Bool_t   fCutEtaGap; //have eta gap (i.e. discontinuous rp selection in eta?)
  Double_t fEtaGapMax; // max eta gap
  Double_t fEtaGapMin; // min eta gap
  Bool_t   fCutPhi; //cut on phi?
  Double_t fPhiMax; //max phi
  Double_t fPhiMin; //min phi
  Bool_t   fCutPID; //cut on pid?
  Int_t    fPID;    //pid
  Bool_t   fCutCharge; //cut on charge?
  Int_t    fCharge;    //charge
  Bool_t   fCutMass; // cut on mass?
  Double_t fMassMax; //max mass
  Double_t fMassMin; //min mass
  Int_t    fPOItype; //which poi type do we produce? (RP=0, POI=1,2,3,4,5...)

  ClassDef(AliFlowTrackSimpleCuts,3)
};

#endif


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