ROOT logo
/**************************************************************************
 * Author: Panos Christakoglou.                                           *
 * 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$ */

//-----------------------------------------------------------------
//                   AliLHCTagCuts class
//   This is the class to deal with the LHC tag level cuts
//   Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
//-----------------------------------------------------------------

class AliLog;

#include "AliLHCTag.h"
#include "AliLHCTagCuts.h"

ClassImp(AliLHCTagCuts)


//___________________________________________________________________________
AliLHCTagCuts::AliLHCTagCuts() :
  TObject(),
  fLHCState(0),
  fLHCStateFlag(kFALSE),
  fLHCLuminosityMin(0),
  fLHCLuminosityMax(0),
  fLHCLuminosityFlag(kFALSE),
  fNBunchesRange(), 
  fNBunchesFlag(kFALSE),     
  fFillingScheme(""),        
  fFillingSchemeFlag(kFALSE),          
  fFillNoRange(),       
  fFillNoFlag(kFALSE),           
  fBeamEnergyRange(),   
  fBeamEnergyFlag(kFALSE),       
  fBunchIntensityRange(),
  fBunchIntensityFlag(kFALSE)  
{
  //Default constructor which calls the Reset method.
  Reset();
}

//___________________________________________________________________________
AliLHCTagCuts::~AliLHCTagCuts() {  
  //Defaut destructor.
}

//___________________________________________________________________________
void AliLHCTagCuts::Reset() {
  //Sets dummy values to every private member.
  fLHCState = "init";
  fLHCStateFlag = kFALSE;
  fLHCLuminosityMin = -1.0;
  fLHCLuminosityMax = 0.0;
  fLHCLuminosityFlag = kFALSE;
  fNBunchesRange[0] = 0; 
  fNBunchesRange[1] = 10000; 
  fNBunchesFlag = kFALSE;
  fFillingScheme = "";        
  fFillingSchemeFlag = kFALSE;          
  fFillNoRange[0] = 0;       
  fFillNoRange[1] = 10000000;       
  fFillNoFlag = kFALSE;           
  fBeamEnergyRange[0] = 0.0;
  fBeamEnergyRange[1] = 10000;   
  fBeamEnergyFlag = kFALSE;       
  fBunchIntensityRange[0] = 0.0;
  fBunchIntensityRange[1] = 1e30;
  fBunchIntensityFlag = kFALSE;  
}

//___________________________________________________________________________
Bool_t AliLHCTagCuts::IsAccepted(AliLHCTag *lhcTag) const {
  //Returns true if the event is accepted otherwise false.
  if(fLHCStateFlag)
    if((lhcTag->GetLHCState() != fLHCState))
      return kFALSE;
  if(fLHCLuminosityFlag)
    if((lhcTag->GetLuminosity() < fLHCLuminosityMin)||(lhcTag->GetLuminosity() > fLHCLuminosityMax))
      return kFALSE;
  if (fNBunchesFlag) 
    if ((lhcTag->GetNBunches() < fNBunchesRange[0]) || (lhcTag->GetNBunches() > fNBunchesRange[1]))
      return kFALSE;
  if (fFillingSchemeFlag) 
    if (!(lhcTag->GetFillingScheme().Contains(fFillingScheme)))
      return kFALSE;
  if (fFillNoFlag) 
    if ((lhcTag->GetFillNo() < fFillNoRange[0]) || (lhcTag->GetFillNo() > fFillNoRange[1]))
      return kFALSE;
  if (fBeamEnergyFlag) 
    if ((lhcTag->GetBeamEnergy() < fBeamEnergyRange[0]) || (lhcTag->GetBeamEnergy() > fBeamEnergyRange[1]))
      return kFALSE;
  if (fBunchIntensityFlag) 
    if ((lhcTag->GetBunchIntensity() < fBunchIntensityRange[0]) || (lhcTag->GetBunchIntensity() > fBunchIntensityRange[1]))
      return kFALSE;

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