ROOT logo
#ifndef ALILHCTAGCUTS_H
#define ALILHCTAGCUTS_H
/*  See cxx source for full Copyright notice */


/* $Id$ */

//-------------------------------------------------------------------------
//                       Class AliLHCTagCuts
//              This is the class for the cuts in run tags
//
//    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
//-------------------------------------------------------------------------

#include <TObject.h>

class AliLHCTag;

//___________________________________________________________________________
class AliLHCTagCuts : public TObject {
 public:
  AliLHCTagCuts();
  ~AliLHCTagCuts();
  void Reset();
  
 //____________________________________________________//
  void SetLHCState(TString state) {fLHCState = state; fLHCStateFlag = kTRUE;}
  void SetLHCLuminosityRange(Float_t low, Float_t high) {fLHCLuminosityMin = low; fLHCLuminosityMax = high; fLHCLuminosityFlag = kTRUE;}

  void SetNBunchesRange(UShort_t nbm, UShort_t nbx) { fNBunchesFlag = kTRUE; fNBunchesRange[0] = nbm; fNBunchesRange[1] = nbx; }
  void SetFillingScheme(TString sch) { fFillingSchemeFlag = kTRUE; fFillingScheme = sch; }
  void SetFillNoRange(Int_t fmin, Int_t fmax) { fFillNoFlag = kTRUE; fFillNoRange[0] = fmin; fFillNoRange[1] = fmax; }
  void SetBeamEnergyRange(Float_t bemin, Float_t bemax) { fBeamEnergyFlag = kTRUE; fBeamEnergyRange[0] = bemin; fBeamEnergyRange[1] = bemax; }
  void SetBunchIntensityRange(Float_t bimin, Float_t bimax) { fBunchIntensityFlag = kTRUE; fBunchIntensityRange[0] = bimin; fBunchIntensityRange[1] = bimax; }

  Bool_t IsAccepted(AliLHCTag *lhcTag) const;

  //____________________________________________________//
 private:
  TString fLHCState;              //LHC State
  Bool_t  fLHCStateFlag;          //Shows whether this cut is used or
  Float_t fLHCLuminosityMin;      //LHC luminosity - min
  Float_t fLHCLuminosityMax;      //LHC luminosity - max
  Bool_t  fLHCLuminosityFlag;     //Shows whether this cut is used or
  UShort_t fNBunchesRange[2];     //Number of bunches in beam
  Bool_t   fNBunchesFlag;         //Shows whether this cut is used or
  TString  fFillingScheme;        //Rquired filling scheme name
  Bool_t   fFillingSchemeFlag;    //Shows whether this cut is used or
  Int_t    fFillNoRange[2];       //Required Fill no range
  Bool_t   fFillNoFlag;           //Shows whether this cut is used or
  Float_t  fBeamEnergyRange[2];   //Beam energy range
  Bool_t   fBeamEnergyFlag;       //Shows whether this cut is used or
  Float_t  fBunchIntensityRange[2];//Intensity per bunch range
  Bool_t   fBunchIntensityFlag;   //Shows whether this cut is used or

  ClassDef(AliLHCTagCuts, 2)
};

#endif
 AliLHCTagCuts.h:1
 AliLHCTagCuts.h:2
 AliLHCTagCuts.h:3
 AliLHCTagCuts.h:4
 AliLHCTagCuts.h:5
 AliLHCTagCuts.h:6
 AliLHCTagCuts.h:7
 AliLHCTagCuts.h:8
 AliLHCTagCuts.h:9
 AliLHCTagCuts.h:10
 AliLHCTagCuts.h:11
 AliLHCTagCuts.h:12
 AliLHCTagCuts.h:13
 AliLHCTagCuts.h:14
 AliLHCTagCuts.h:15
 AliLHCTagCuts.h:16
 AliLHCTagCuts.h:17
 AliLHCTagCuts.h:18
 AliLHCTagCuts.h:19
 AliLHCTagCuts.h:20
 AliLHCTagCuts.h:21
 AliLHCTagCuts.h:22
 AliLHCTagCuts.h:23
 AliLHCTagCuts.h:24
 AliLHCTagCuts.h:25
 AliLHCTagCuts.h:26
 AliLHCTagCuts.h:27
 AliLHCTagCuts.h:28
 AliLHCTagCuts.h:29
 AliLHCTagCuts.h:30
 AliLHCTagCuts.h:31
 AliLHCTagCuts.h:32
 AliLHCTagCuts.h:33
 AliLHCTagCuts.h:34
 AliLHCTagCuts.h:35
 AliLHCTagCuts.h:36
 AliLHCTagCuts.h:37
 AliLHCTagCuts.h:38
 AliLHCTagCuts.h:39
 AliLHCTagCuts.h:40
 AliLHCTagCuts.h:41
 AliLHCTagCuts.h:42
 AliLHCTagCuts.h:43
 AliLHCTagCuts.h:44
 AliLHCTagCuts.h:45
 AliLHCTagCuts.h:46
 AliLHCTagCuts.h:47
 AliLHCTagCuts.h:48
 AliLHCTagCuts.h:49
 AliLHCTagCuts.h:50
 AliLHCTagCuts.h:51
 AliLHCTagCuts.h:52
 AliLHCTagCuts.h:53
 AliLHCTagCuts.h:54
 AliLHCTagCuts.h:55
 AliLHCTagCuts.h:56
 AliLHCTagCuts.h:57
 AliLHCTagCuts.h:58
 AliLHCTagCuts.h:59