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.                  *
**************************************************************************/
// last change: 2011-04-04 by M.Knichel

#include <iostream>
#include <TList.h>

#include "AliLog.h"
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "TParticle.h"

#include "AliFilteredTreeAcceptanceCuts.h"

using namespace std;

ClassImp(AliFilteredTreeAcceptanceCuts)

//_____________________________________________________________________________
AliFilteredTreeAcceptanceCuts::AliFilteredTreeAcceptanceCuts(const Char_t* name,const Char_t *title) : 
AliAnalysisCuts(name, title)
, fMinEta(0)
, fMaxEta(0)
, fMinPhi(0)
, fMaxPhi(0)
, fMinPt(0)
, fMaxPt(0)
, fExcludeMinEta(0)
, fExcludeMaxEta(0)
, fExcludeMinPhi(0)
, fExcludeMaxPhi(0)
, fExcludeMinEta2(0)
, fExcludeMaxEta2(0)
, fExcludeMinPhi2(0)
, fExcludeMaxPhi2(0)
, fCheckRange(kFALSE)
, fMaxDCAr(0)
, fMaxDCAz(0)
{
  // default constructor 
  
  // init data members with defaults
  Init();
}

//_____________________________________________________________________________
AliFilteredTreeAcceptanceCuts::~AliFilteredTreeAcceptanceCuts()  
{
  // destructor
}

//_____________________________________________________________________________
void AliFilteredTreeAcceptanceCuts::Init()  
{
  // set default values
  SetEtaRange();
  SetPhiRange();
  SetPtRange();
  SetMaxDCAr();
  SetMaxDCAz();
}

//_____________________________________________________________________________
Bool_t AliFilteredTreeAcceptanceCuts::AcceptTrack(AliESDtrack *track)
{
  // check acceptance cuts for AliESDtrack
  if(!track) return kFALSE;

  Float_t eta = track->Eta();
  Float_t phi = track->Phi();
  Float_t pt = track->Pt();

  if(eta < fMinEta) return kFALSE;
  if(eta > fMaxEta) return kFALSE;
  if(phi < fMinPhi) return kFALSE;
  if(phi > fMaxPhi) return kFALSE;
  if(pt < fMinPt) return kFALSE;
  if(pt > fMaxPt) return kFALSE;
  
return kTRUE;
}

Bool_t AliFilteredTreeAcceptanceCuts::AcceptTrackLocalTPC(AliESDtrack *track)
{
  // check acceptance cuts for AliESDtrack
  if(!track) return kFALSE;
  const AliExternalTrackParam *innerParam =  track->GetInnerParam();
  if(!innerParam) return kFALSE;

  Float_t eta = track->Eta();
  Float_t phi = TMath::ATan2(innerParam->Py(),innerParam->Px());

  if (fCheckRange) {
      if ((eta > fExcludeMinEta) && (eta < fExcludeMaxEta) && (phi > fExcludeMinPhi) && (phi < fExcludeMaxPhi)) { return kFALSE; }
      if ((eta > fExcludeMinEta2) && (eta < fExcludeMaxEta2) && (phi > fExcludeMinPhi2) && (phi < fExcludeMaxPhi2)) { return kFALSE; }
  }

return kTRUE;
}

//_____________________________________________________________________________
Bool_t AliFilteredTreeAcceptanceCuts::AcceptTrack(AliExternalTrackParam *track)
{
  // check acceptance cuts for AliESDtrack
  if(!track) return kFALSE;

  Float_t eta = track->Eta();
  Float_t phi = track->Phi();
  Float_t pt = track->Pt();

  if(eta < fMinEta) return kFALSE;
  if(eta > fMaxEta) return kFALSE;
  if(phi < fMinPhi) return kFALSE;
  if(phi > fMaxPhi) return kFALSE;
  if(pt < fMinPt) return kFALSE;
  if(pt > fMaxPt) return kFALSE;

return kTRUE;
}

//_____________________________________________________________________________
Bool_t AliFilteredTreeAcceptanceCuts::AcceptTrack(TParticle *particle)
{
  // check acceptance cuts for TParticle
  if(!particle) return kFALSE;

  Float_t eta = particle->Eta();
  Float_t phi = particle->Phi();
  Float_t pt = particle->Pt();

  if(eta < fMinEta) return kFALSE;
  if(eta > fMaxEta) return kFALSE;
  if(phi < fMinPhi) return kFALSE;
  if(phi > fMaxPhi) return kFALSE;
  if(pt < fMinPt) return kFALSE;
  if(pt > fMaxPt) return kFALSE;

return kTRUE;
}

//_____________________________________________________________________________
Long64_t AliFilteredTreeAcceptanceCuts::Merge(TCollection* list) 
{
  // Merge list of objects (needed by PROOF)
  if (!list)
  return 0;

  if (list->IsEmpty())
  return 1;

  TIterator* iter = list->MakeIterator();
  TObject* obj = 0;

  Int_t count=0;
  while((obj = iter->Next()) != 0) 
  {
    AliFilteredTreeAcceptanceCuts* entry = dynamic_cast<AliFilteredTreeAcceptanceCuts*>(obj);
    if (entry == 0)  
      continue; 

  count++;
  }

return count;
}
 AliFilteredTreeAcceptanceCuts.cxx:1
 AliFilteredTreeAcceptanceCuts.cxx:2
 AliFilteredTreeAcceptanceCuts.cxx:3
 AliFilteredTreeAcceptanceCuts.cxx:4
 AliFilteredTreeAcceptanceCuts.cxx:5
 AliFilteredTreeAcceptanceCuts.cxx:6
 AliFilteredTreeAcceptanceCuts.cxx:7
 AliFilteredTreeAcceptanceCuts.cxx:8
 AliFilteredTreeAcceptanceCuts.cxx:9
 AliFilteredTreeAcceptanceCuts.cxx:10
 AliFilteredTreeAcceptanceCuts.cxx:11
 AliFilteredTreeAcceptanceCuts.cxx:12
 AliFilteredTreeAcceptanceCuts.cxx:13
 AliFilteredTreeAcceptanceCuts.cxx:14
 AliFilteredTreeAcceptanceCuts.cxx:15
 AliFilteredTreeAcceptanceCuts.cxx:16
 AliFilteredTreeAcceptanceCuts.cxx:17
 AliFilteredTreeAcceptanceCuts.cxx:18
 AliFilteredTreeAcceptanceCuts.cxx:19
 AliFilteredTreeAcceptanceCuts.cxx:20
 AliFilteredTreeAcceptanceCuts.cxx:21
 AliFilteredTreeAcceptanceCuts.cxx:22
 AliFilteredTreeAcceptanceCuts.cxx:23
 AliFilteredTreeAcceptanceCuts.cxx:24
 AliFilteredTreeAcceptanceCuts.cxx:25
 AliFilteredTreeAcceptanceCuts.cxx:26
 AliFilteredTreeAcceptanceCuts.cxx:27
 AliFilteredTreeAcceptanceCuts.cxx:28
 AliFilteredTreeAcceptanceCuts.cxx:29
 AliFilteredTreeAcceptanceCuts.cxx:30
 AliFilteredTreeAcceptanceCuts.cxx:31
 AliFilteredTreeAcceptanceCuts.cxx:32
 AliFilteredTreeAcceptanceCuts.cxx:33
 AliFilteredTreeAcceptanceCuts.cxx:34
 AliFilteredTreeAcceptanceCuts.cxx:35
 AliFilteredTreeAcceptanceCuts.cxx:36
 AliFilteredTreeAcceptanceCuts.cxx:37
 AliFilteredTreeAcceptanceCuts.cxx:38
 AliFilteredTreeAcceptanceCuts.cxx:39
 AliFilteredTreeAcceptanceCuts.cxx:40
 AliFilteredTreeAcceptanceCuts.cxx:41
 AliFilteredTreeAcceptanceCuts.cxx:42
 AliFilteredTreeAcceptanceCuts.cxx:43
 AliFilteredTreeAcceptanceCuts.cxx:44
 AliFilteredTreeAcceptanceCuts.cxx:45
 AliFilteredTreeAcceptanceCuts.cxx:46
 AliFilteredTreeAcceptanceCuts.cxx:47
 AliFilteredTreeAcceptanceCuts.cxx:48
 AliFilteredTreeAcceptanceCuts.cxx:49
 AliFilteredTreeAcceptanceCuts.cxx:50
 AliFilteredTreeAcceptanceCuts.cxx:51
 AliFilteredTreeAcceptanceCuts.cxx:52
 AliFilteredTreeAcceptanceCuts.cxx:53
 AliFilteredTreeAcceptanceCuts.cxx:54
 AliFilteredTreeAcceptanceCuts.cxx:55
 AliFilteredTreeAcceptanceCuts.cxx:56
 AliFilteredTreeAcceptanceCuts.cxx:57
 AliFilteredTreeAcceptanceCuts.cxx:58
 AliFilteredTreeAcceptanceCuts.cxx:59
 AliFilteredTreeAcceptanceCuts.cxx:60
 AliFilteredTreeAcceptanceCuts.cxx:61
 AliFilteredTreeAcceptanceCuts.cxx:62
 AliFilteredTreeAcceptanceCuts.cxx:63
 AliFilteredTreeAcceptanceCuts.cxx:64
 AliFilteredTreeAcceptanceCuts.cxx:65
 AliFilteredTreeAcceptanceCuts.cxx:66
 AliFilteredTreeAcceptanceCuts.cxx:67
 AliFilteredTreeAcceptanceCuts.cxx:68
 AliFilteredTreeAcceptanceCuts.cxx:69
 AliFilteredTreeAcceptanceCuts.cxx:70
 AliFilteredTreeAcceptanceCuts.cxx:71
 AliFilteredTreeAcceptanceCuts.cxx:72
 AliFilteredTreeAcceptanceCuts.cxx:73
 AliFilteredTreeAcceptanceCuts.cxx:74
 AliFilteredTreeAcceptanceCuts.cxx:75
 AliFilteredTreeAcceptanceCuts.cxx:76
 AliFilteredTreeAcceptanceCuts.cxx:77
 AliFilteredTreeAcceptanceCuts.cxx:78
 AliFilteredTreeAcceptanceCuts.cxx:79
 AliFilteredTreeAcceptanceCuts.cxx:80
 AliFilteredTreeAcceptanceCuts.cxx:81
 AliFilteredTreeAcceptanceCuts.cxx:82
 AliFilteredTreeAcceptanceCuts.cxx:83
 AliFilteredTreeAcceptanceCuts.cxx:84
 AliFilteredTreeAcceptanceCuts.cxx:85
 AliFilteredTreeAcceptanceCuts.cxx:86
 AliFilteredTreeAcceptanceCuts.cxx:87
 AliFilteredTreeAcceptanceCuts.cxx:88
 AliFilteredTreeAcceptanceCuts.cxx:89
 AliFilteredTreeAcceptanceCuts.cxx:90
 AliFilteredTreeAcceptanceCuts.cxx:91
 AliFilteredTreeAcceptanceCuts.cxx:92
 AliFilteredTreeAcceptanceCuts.cxx:93
 AliFilteredTreeAcceptanceCuts.cxx:94
 AliFilteredTreeAcceptanceCuts.cxx:95
 AliFilteredTreeAcceptanceCuts.cxx:96
 AliFilteredTreeAcceptanceCuts.cxx:97
 AliFilteredTreeAcceptanceCuts.cxx:98
 AliFilteredTreeAcceptanceCuts.cxx:99
 AliFilteredTreeAcceptanceCuts.cxx:100
 AliFilteredTreeAcceptanceCuts.cxx:101
 AliFilteredTreeAcceptanceCuts.cxx:102
 AliFilteredTreeAcceptanceCuts.cxx:103
 AliFilteredTreeAcceptanceCuts.cxx:104
 AliFilteredTreeAcceptanceCuts.cxx:105
 AliFilteredTreeAcceptanceCuts.cxx:106
 AliFilteredTreeAcceptanceCuts.cxx:107
 AliFilteredTreeAcceptanceCuts.cxx:108
 AliFilteredTreeAcceptanceCuts.cxx:109
 AliFilteredTreeAcceptanceCuts.cxx:110
 AliFilteredTreeAcceptanceCuts.cxx:111
 AliFilteredTreeAcceptanceCuts.cxx:112
 AliFilteredTreeAcceptanceCuts.cxx:113
 AliFilteredTreeAcceptanceCuts.cxx:114
 AliFilteredTreeAcceptanceCuts.cxx:115
 AliFilteredTreeAcceptanceCuts.cxx:116
 AliFilteredTreeAcceptanceCuts.cxx:117
 AliFilteredTreeAcceptanceCuts.cxx:118
 AliFilteredTreeAcceptanceCuts.cxx:119
 AliFilteredTreeAcceptanceCuts.cxx:120
 AliFilteredTreeAcceptanceCuts.cxx:121
 AliFilteredTreeAcceptanceCuts.cxx:122
 AliFilteredTreeAcceptanceCuts.cxx:123
 AliFilteredTreeAcceptanceCuts.cxx:124
 AliFilteredTreeAcceptanceCuts.cxx:125
 AliFilteredTreeAcceptanceCuts.cxx:126
 AliFilteredTreeAcceptanceCuts.cxx:127
 AliFilteredTreeAcceptanceCuts.cxx:128
 AliFilteredTreeAcceptanceCuts.cxx:129
 AliFilteredTreeAcceptanceCuts.cxx:130
 AliFilteredTreeAcceptanceCuts.cxx:131
 AliFilteredTreeAcceptanceCuts.cxx:132
 AliFilteredTreeAcceptanceCuts.cxx:133
 AliFilteredTreeAcceptanceCuts.cxx:134
 AliFilteredTreeAcceptanceCuts.cxx:135
 AliFilteredTreeAcceptanceCuts.cxx:136
 AliFilteredTreeAcceptanceCuts.cxx:137
 AliFilteredTreeAcceptanceCuts.cxx:138
 AliFilteredTreeAcceptanceCuts.cxx:139
 AliFilteredTreeAcceptanceCuts.cxx:140
 AliFilteredTreeAcceptanceCuts.cxx:141
 AliFilteredTreeAcceptanceCuts.cxx:142
 AliFilteredTreeAcceptanceCuts.cxx:143
 AliFilteredTreeAcceptanceCuts.cxx:144
 AliFilteredTreeAcceptanceCuts.cxx:145
 AliFilteredTreeAcceptanceCuts.cxx:146
 AliFilteredTreeAcceptanceCuts.cxx:147
 AliFilteredTreeAcceptanceCuts.cxx:148
 AliFilteredTreeAcceptanceCuts.cxx:149
 AliFilteredTreeAcceptanceCuts.cxx:150
 AliFilteredTreeAcceptanceCuts.cxx:151
 AliFilteredTreeAcceptanceCuts.cxx:152
 AliFilteredTreeAcceptanceCuts.cxx:153
 AliFilteredTreeAcceptanceCuts.cxx:154
 AliFilteredTreeAcceptanceCuts.cxx:155
 AliFilteredTreeAcceptanceCuts.cxx:156
 AliFilteredTreeAcceptanceCuts.cxx:157
 AliFilteredTreeAcceptanceCuts.cxx:158
 AliFilteredTreeAcceptanceCuts.cxx:159
 AliFilteredTreeAcceptanceCuts.cxx:160
 AliFilteredTreeAcceptanceCuts.cxx:161
 AliFilteredTreeAcceptanceCuts.cxx:162
 AliFilteredTreeAcceptanceCuts.cxx:163
 AliFilteredTreeAcceptanceCuts.cxx:164
 AliFilteredTreeAcceptanceCuts.cxx:165
 AliFilteredTreeAcceptanceCuts.cxx:166
 AliFilteredTreeAcceptanceCuts.cxx:167
 AliFilteredTreeAcceptanceCuts.cxx:168
 AliFilteredTreeAcceptanceCuts.cxx:169
 AliFilteredTreeAcceptanceCuts.cxx:170
 AliFilteredTreeAcceptanceCuts.cxx:171
 AliFilteredTreeAcceptanceCuts.cxx:172
 AliFilteredTreeAcceptanceCuts.cxx:173
 AliFilteredTreeAcceptanceCuts.cxx:174
 AliFilteredTreeAcceptanceCuts.cxx:175
 AliFilteredTreeAcceptanceCuts.cxx:176
 AliFilteredTreeAcceptanceCuts.cxx:177