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

/* $Id$ */ 

// AliStarEventCuts:
// An event cut class for the AliStarEvent
//
// origin: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch)

#include <limits.h>
#include <float.h>
#include "TNamed.h"
#include "AliStarEvent.h"
#include "AliStarEventCuts.h"

ClassImp(AliStarEventCuts)

//-----------------------------------------------------------------------
AliStarEventCuts::AliStarEventCuts():
  TNamed(),
  fCutRunID(kFALSE),
  fRunIDMax(INT_MAX),
  fRunIDMin(INT_MIN),
  fCutEventNumber(kFALSE),
  fEventNumberMax(INT_MAX),
  fEventNumberMin(INT_MIN),
  fCutVtxX(kFALSE),
  fVtxXMax(FLT_MAX),
  fVtxXMin(-FLT_MAX),
  fCutVtxY(kFALSE),
  fVtxYMax(FLT_MAX),
  fVtxYMin(-FLT_MAX),
  fCutVtxZ(kFALSE),
  fVtxZMax(FLT_MAX),
  fVtxZMin(-FLT_MAX),
  fCutBField(kFALSE),
  fBFieldMax(FLT_MAX),
  fBFieldMin(-FLT_MAX),
  fCutRefMult(kFALSE),
  fRefMultMax(INT_MAX),
  fRefMultMin(INT_MIN),
  fCutCentralityID(kFALSE),
  fCentralityIDMax(INT_MAX),
  fCentralityIDMin(INT_MIN),
  fCutNumberOfPrimaryTracks(kFALSE),
  fNumberOfPrimaryTracksMax(INT_MAX),
  fNumberOfPrimaryTracksMin(INT_MIN),
  fCutNumberOfTracks(kFALSE),
  fNumberOfTracksMax(INT_MAX),
  fNumberOfTracksMin(INT_MIN)
{
  //constructor 
}

////-----------------------------------------------------------------------
//AliStarEventCuts::AliStarEventCuts(const AliStarEventCuts& someCuts):
//  TNamed(),
//  fCutID(that.fCutID),
//  fIDMax(that.fIDMax),
//  fIDMin(that.fIDMin),
//{
//  //copy constructor 
//}
//
////-----------------------------------------------------------------------
//AliStarEventCuts& AliStarEventCuts::operator=(const AliStarEventCuts& someCuts)
//{
//  //assignment
//  fCutID=that.fCutID;
//  fIDMax=that.fIDMax;
//  fIDMin=that.fIDMin;
//
//  return *this;
//}

//----------------------------------------------------------------------- 
Bool_t AliStarEventCuts::PassesCuts(const AliStarEvent *event) const
{
  ///check if event passes cuts
  if(fCutRunID) {if (event->GetRunID() < fRunIDMin || event->GetRunID() > fRunIDMax ) return kFALSE;} //integer value: non inclusive bounds!
  if(fCutEventNumber) {if (event->GetEventNumber() < fEventNumberMin || event->GetEventNumber() > fEventNumberMax ) return kFALSE;}
  if(fCutVtxX) {if (event->GetVtxX() < fVtxXMin || event->GetVtxX() >= fVtxXMax ) return kFALSE;}
  if(fCutVtxY) {if (event->GetVtxY() < fVtxYMin || event->GetVtxY() >= fVtxYMax ) return kFALSE;}
  if(fCutVtxZ) {if (event->GetVtxZ() < fVtxZMin || event->GetVtxZ() >= fVtxZMax ) return kFALSE;}
  if(fCutBField) {if (event->GetBField() < fBFieldMin || event->GetBField() >= fBFieldMax ) return kFALSE;}
  if(fCutRefMult) {if (event->GetRefMult() < fRefMultMin || event->GetRefMult() > fRefMultMax ) return kFALSE;}
  if(fCutCentralityID) {if (event->GetCentralityID() < fCentralityIDMin || event->GetCentralityID() > fCentralityIDMax ) return kFALSE;}
  if(fCutNumberOfPrimaryTracks) {if (event->GetNumberOfPrimaryTracks() < fNumberOfPrimaryTracksMin || event->GetNumberOfPrimaryTracks() > fNumberOfPrimaryTracksMax ) return kFALSE;}
  if(fCutNumberOfTracks) {if (event->GetNumberOfTracks() < fNumberOfTracksMin || event->GetNumberOfTracks() > fNumberOfTracksMax ) return kFALSE;}
  return kTRUE;
}

//----------------------------------------------------------------------- 
AliStarEventCuts* AliStarEventCuts::StandardCuts()
{
  //make a set of standard event cuts, caller becomes owner
  AliStarEventCuts* cuts = new AliStarEventCuts();
  cuts->SetVtxXMin(-1.0);
  cuts->SetVtxXMax(1.0);
  cuts->SetVtxYMin(-1.0);
  cuts->SetVtxYMax(1.0);
  cuts->SetVtxZMin(-30.0);
  cuts->SetVtxZMax(30.0);
  cuts->SetRefMultMin(10);
  cuts->SetRefMultMax(1000);
  cuts->SetNumberOfPrimaryTracksMin(0);
  cuts->SetNumberOfPrimaryTracksMax(3000);
  return cuts;
}
 AliStarEventCuts.cxx:1
 AliStarEventCuts.cxx:2
 AliStarEventCuts.cxx:3
 AliStarEventCuts.cxx:4
 AliStarEventCuts.cxx:5
 AliStarEventCuts.cxx:6
 AliStarEventCuts.cxx:7
 AliStarEventCuts.cxx:8
 AliStarEventCuts.cxx:9
 AliStarEventCuts.cxx:10
 AliStarEventCuts.cxx:11
 AliStarEventCuts.cxx:12
 AliStarEventCuts.cxx:13
 AliStarEventCuts.cxx:14
 AliStarEventCuts.cxx:15
 AliStarEventCuts.cxx:16
 AliStarEventCuts.cxx:17
 AliStarEventCuts.cxx:18
 AliStarEventCuts.cxx:19
 AliStarEventCuts.cxx:20
 AliStarEventCuts.cxx:21
 AliStarEventCuts.cxx:22
 AliStarEventCuts.cxx:23
 AliStarEventCuts.cxx:24
 AliStarEventCuts.cxx:25
 AliStarEventCuts.cxx:26
 AliStarEventCuts.cxx:27
 AliStarEventCuts.cxx:28
 AliStarEventCuts.cxx:29
 AliStarEventCuts.cxx:30
 AliStarEventCuts.cxx:31
 AliStarEventCuts.cxx:32
 AliStarEventCuts.cxx:33
 AliStarEventCuts.cxx:34
 AliStarEventCuts.cxx:35
 AliStarEventCuts.cxx:36
 AliStarEventCuts.cxx:37
 AliStarEventCuts.cxx:38
 AliStarEventCuts.cxx:39
 AliStarEventCuts.cxx:40
 AliStarEventCuts.cxx:41
 AliStarEventCuts.cxx:42
 AliStarEventCuts.cxx:43
 AliStarEventCuts.cxx:44
 AliStarEventCuts.cxx:45
 AliStarEventCuts.cxx:46
 AliStarEventCuts.cxx:47
 AliStarEventCuts.cxx:48
 AliStarEventCuts.cxx:49
 AliStarEventCuts.cxx:50
 AliStarEventCuts.cxx:51
 AliStarEventCuts.cxx:52
 AliStarEventCuts.cxx:53
 AliStarEventCuts.cxx:54
 AliStarEventCuts.cxx:55
 AliStarEventCuts.cxx:56
 AliStarEventCuts.cxx:57
 AliStarEventCuts.cxx:58
 AliStarEventCuts.cxx:59
 AliStarEventCuts.cxx:60
 AliStarEventCuts.cxx:61
 AliStarEventCuts.cxx:62
 AliStarEventCuts.cxx:63
 AliStarEventCuts.cxx:64
 AliStarEventCuts.cxx:65
 AliStarEventCuts.cxx:66
 AliStarEventCuts.cxx:67
 AliStarEventCuts.cxx:68
 AliStarEventCuts.cxx:69
 AliStarEventCuts.cxx:70
 AliStarEventCuts.cxx:71
 AliStarEventCuts.cxx:72
 AliStarEventCuts.cxx:73
 AliStarEventCuts.cxx:74
 AliStarEventCuts.cxx:75
 AliStarEventCuts.cxx:76
 AliStarEventCuts.cxx:77
 AliStarEventCuts.cxx:78
 AliStarEventCuts.cxx:79
 AliStarEventCuts.cxx:80
 AliStarEventCuts.cxx:81
 AliStarEventCuts.cxx:82
 AliStarEventCuts.cxx:83
 AliStarEventCuts.cxx:84
 AliStarEventCuts.cxx:85
 AliStarEventCuts.cxx:86
 AliStarEventCuts.cxx:87
 AliStarEventCuts.cxx:88
 AliStarEventCuts.cxx:89
 AliStarEventCuts.cxx:90
 AliStarEventCuts.cxx:91
 AliStarEventCuts.cxx:92
 AliStarEventCuts.cxx:93
 AliStarEventCuts.cxx:94
 AliStarEventCuts.cxx:95
 AliStarEventCuts.cxx:96
 AliStarEventCuts.cxx:97
 AliStarEventCuts.cxx:98
 AliStarEventCuts.cxx:99
 AliStarEventCuts.cxx:100
 AliStarEventCuts.cxx:101
 AliStarEventCuts.cxx:102
 AliStarEventCuts.cxx:103
 AliStarEventCuts.cxx:104
 AliStarEventCuts.cxx:105
 AliStarEventCuts.cxx:106
 AliStarEventCuts.cxx:107
 AliStarEventCuts.cxx:108
 AliStarEventCuts.cxx:109
 AliStarEventCuts.cxx:110
 AliStarEventCuts.cxx:111
 AliStarEventCuts.cxx:112
 AliStarEventCuts.cxx:113
 AliStarEventCuts.cxx:114
 AliStarEventCuts.cxx:115
 AliStarEventCuts.cxx:116
 AliStarEventCuts.cxx:117
 AliStarEventCuts.cxx:118
 AliStarEventCuts.cxx:119
 AliStarEventCuts.cxx:120
 AliStarEventCuts.cxx:121
 AliStarEventCuts.cxx:122