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.                  *
 **************************************************************************/

#include <TObject.h>
#include <TMath.h>
#include <TParticle.h>

#include "AliKineTrackCuts.h"

//
//  Class for simple Kinematic cuts on
//  particles (tracks) from Kinematic stack (TParticle)
//  MC Simulation
//


//____________________________________________________________________
ClassImp(AliKineTrackCuts)

//____________________________________________________________________
AliKineTrackCuts::AliKineTrackCuts(const Char_t* name, const Char_t* title) : 
  AliAnalysisCuts(name,title),
  fOnlyFinalParticles(kFALSE),
  fOnlyPrimary(kFALSE), 
  fPMin(0),
  fPMax(0),
  fPtMin(0),
  fPtMax(0),
  fPxMin(0),
  fPxMax(0),
  fPyMin(0),
  fPyMax(0),
  fPzMin(0),
  fPzMax(0),
  fEtaMin(0),
  fEtaMax(0),
  fRapMin(0),
  fRapMax(0)
{
  //
  // constructor
  //
  // setting default cuts
  SetPRange();
  SetPtRange();
  SetPxRange();
  SetPyRange();
  SetPzRange();
  SetEtaRange();
  SetRapRange();
}



//____________________________________________________________________
Bool_t  AliKineTrackCuts::IsSelected(TObject* obj)
{

  TParticle * part = (TParticle *)obj;
  
  // only final particles
  if( fOnlyFinalParticles && part->GetStatusCode() !=1 ) return kFALSE;
  if( fOnlyPrimary && part->IsPrimary() !=1 ) return kFALSE;
  
  // getting the kinematic variables of the track
  Float_t momentum = part->P();
  Float_t pt       = part->Pt();
  Float_t energy   = part->Energy();

  //y-eta related calculations
  Float_t eta = part->Eta();
  Float_t y   = -100.;
  if((energy != TMath::Abs(part->Pz()))&&(momentum != 0))
    y = 0.5*TMath::Log((energy + part->Pz())/(energy - part->Pz()));

  if((momentum < fPMin) || (momentum > fPMax)) return kFALSE;
  if((pt < fPtMin) || (pt > fPtMax)) return kFALSE;
  if((part->Px() < fPxMin) || (part->Px() > fPxMax)) return kFALSE;
  if((part->Py() < fPyMin) || (part->Py() > fPyMax)) return kFALSE;
  if((part->Pz() < fPzMin) || (part->Pz() > fPzMax)) return kFALSE;
  if((eta < fEtaMin) || (eta > fEtaMax)) return kFALSE;
  if((y < fRapMin) || (y > fRapMax)) return kFALSE;

  return kTRUE;
}









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