ROOT logo
#ifndef ALICONVERSIONTRACKCUTS_H
#define ALICONVERSIONTRACKCUTS_H

// Class handling all kinds of selection cuts for Gamma Conversion analysis
// Authors: (this code is mostly copied from AliRsnTrackQuality) adapted by Svein Lindal 	*

class TH2F;
class AliESDtrackCuts;
class TList;
class AliVEvent;
class THn;
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliAnalysisCuts.h"

using namespace std;

class AliConversionTrackCuts : public AliAnalysisCuts {
	
public:
  
  enum CTCuts_t {
    kPreCut = 0,
    kCutNcls,
    kCutNclsFrac,
    kCutNDF,
    kCutKinc,
    kCutDCAZ,
    kCutDCAXY,
    kCutTPCRefit,
    kNCuts
  };

  //  enum trackVal {
  //	kPt = 0, 
  //	kPhi,
  //	kEta,
  //	kNVar
  //  };
  static const char * fgkCutNames[kNCuts];

  Bool_t IsSelected(TObject * object ); 
  Bool_t IsSelected(TList * /*list*/) { return kFALSE; }
  Bool_t AcceptTrack(AliAODTrack * track);
  Bool_t AcceptTrack(AliESDtrack * track);
  Bool_t GetDCA(const AliAODTrack * track, Double_t dca[2]);
  Bool_t GetDCA(const AliESDtrack * track, Double_t dca[2]);


  void DeleteTracks() { fOwnedTracks.Delete(); }
  void FillDCAHist(Float_t dcaz, Float_t dcaxy, AliVTrack * track);
  AliConversionTrackCuts();
  AliConversionTrackCuts(TString name, TString title);
  ~AliConversionTrackCuts();
  
  void      SetEsdTrackCuts(AliESDtrackCuts * trackcuts) { fEsdTrackCuts = trackcuts; }
  void      SetDCAZmax(Double_t value)  { fDCAZmax = value*value; }
  void      SetDCAXYmax(Double_t value) { fDCAXYmax = value*value; }
  void      SetFilterBit(Int_t value)   { fFilterBit = value; }
  void      SetEvent(AliVEvent * event)  { fEvent = event; }
  void      CreateTrackEff(Bool_t create = kTRUE) { fkCreateTrackEff = create; }

  TList * CreateHistograms();
  void FillHistograms(Int_t cutIndex, AliVTrack * track);
  virtual void   Print(const Option_t *option = "") const;

protected :

  void DefineESDCuts();


  AliESDtrackCuts * fEsdTrackCuts; //main cut
  AliESDtrackCuts * fEsdTrackCutsExtra1; //global tracks cut
  AliESDtrackCuts * fEsdTrackCutsExtra2; //others
  
  AliVEvent * fEvent;



  Int_t fFilterBit;
  
  Double_t fDCAZmax;                // maximum value for longitudinal DCA
  Double_t fDCAXYmax;                  // maximum xy value for dca
  
  TObjArray fOwnedTracks;

  Bool_t fInitialized;

  TH2F * fhPhi;
  //TH2F * fhPt;
  //TH2F * fhPhiPt;
  TH2F * fhdcaxyPt;
  TH2F * fhdcazPt;
  TH2F * fhdca;
  TH2F * fhnclpt;
  TH2F * fhnclsfpt;
  TH2F * fhEtaPhi;
  THn  * fhTrackEff;
  Bool_t fkCreateTrackEff;

  TList * fHistograms;

  AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
  AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented

  ClassDef(AliConversionTrackCuts,5)
};

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