#ifndef ALIDIELECTRONVARCUTS_H
#define ALIDIELECTRONVARCUTS_H
#include <Rtypes.h>
#include <TBits.h>
#include <AliAnalysisCuts.h>
#include "AliDielectronVarManager.h"
class THnBase;
class AliDielectronVarCuts : public AliAnalysisCuts {
public:
enum CutType { kAll=0, kAny };
AliDielectronVarCuts();
AliDielectronVarCuts(const char* name, const char* title);
virtual ~AliDielectronVarCuts();
void AddCut(AliDielectronVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t excludeRange=kFALSE);
void AddCut(AliDielectronVarManager::ValueTypes type, Double_t value, Bool_t excludeRange=kFALSE);
void AddBitCut(AliDielectronVarManager::ValueTypes type, UInt_t bit, Bool_t excludeRange=kFALSE);
void AddCut(AliDielectronVarManager::ValueTypes type, Double_t min, THnBase * const max, Bool_t excludeRange=kFALSE);
void SetCutOnMCtruth(Bool_t mc=kTRUE) { fCutOnMCtruth=mc; }
void SetCutType(CutType type) { fCutType=type; }
Bool_t GetCutOnMCtruth() const { return fCutOnMCtruth; }
CutType GetCutType() const { return fCutType; }
Int_t GetNCuts() { return fNActiveCuts; }
virtual Bool_t IsSelected(TObject* track);
virtual Bool_t IsSelected(TList* ) {return kFALSE;}
virtual UInt_t GetSelectedCutsMask() const { return fSelectedCutsMask; }
virtual void Print(const Option_t* option = "") const;
private:
TBits *fUsedVars;
UShort_t fActiveCuts[AliDielectronVarManager::kNMaxValues];
UShort_t fNActiveCuts;
UInt_t fActiveCutsMask;
UInt_t fSelectedCutsMask;
Bool_t fCutOnMCtruth;
CutType fCutType;
Double_t fCutMin[AliDielectronVarManager::kNMaxValues];
Double_t fCutMax[AliDielectronVarManager::kNMaxValues];
Bool_t fCutExclude[AliDielectronVarManager::kNMaxValues];
Bool_t fBitCut[AliDielectronVarManager::kNMaxValues];
THnBase *fUpperCut[AliDielectronVarManager::kNMaxValues];
AliDielectronVarCuts(const AliDielectronVarCuts &c);
AliDielectronVarCuts &operator=(const AliDielectronVarCuts &c);
ClassDef(AliDielectronVarCuts,6)
};
inline void AliDielectronVarCuts::AddCut(AliDielectronVarManager::ValueTypes type, Double_t value, Bool_t excludeRange)
{
const Double_t kDelta=1e-20;
AddCut(type,value-kDelta,value+kDelta, excludeRange);
}
#endif
AliDielectronVarCuts.h:10 AliDielectronVarCuts.h:11 AliDielectronVarCuts.h:12 AliDielectronVarCuts.h:13 AliDielectronVarCuts.h:14 AliDielectronVarCuts.h:15 AliDielectronVarCuts.h:16 AliDielectronVarCuts.h:17 AliDielectronVarCuts.h:18 AliDielectronVarCuts.h:19 AliDielectronVarCuts.h:20 AliDielectronVarCuts.h:21 AliDielectronVarCuts.h:22 AliDielectronVarCuts.h:23 AliDielectronVarCuts.h:24 AliDielectronVarCuts.h:25 AliDielectronVarCuts.h:26 AliDielectronVarCuts.h:27 AliDielectronVarCuts.h:28 AliDielectronVarCuts.h:29 AliDielectronVarCuts.h:30 AliDielectronVarCuts.h:31 AliDielectronVarCuts.h:32 AliDielectronVarCuts.h:33 AliDielectronVarCuts.h:34 AliDielectronVarCuts.h:35 AliDielectronVarCuts.h:36 AliDielectronVarCuts.h:37 AliDielectronVarCuts.h:38 AliDielectronVarCuts.h:39 AliDielectronVarCuts.h:40 AliDielectronVarCuts.h:41 AliDielectronVarCuts.h:42 AliDielectronVarCuts.h:43 AliDielectronVarCuts.h:44 AliDielectronVarCuts.h:45 AliDielectronVarCuts.h:46 AliDielectronVarCuts.h:47 AliDielectronVarCuts.h:48 AliDielectronVarCuts.h:49 AliDielectronVarCuts.h:50 AliDielectronVarCuts.h:51 AliDielectronVarCuts.h:52 AliDielectronVarCuts.h:53 AliDielectronVarCuts.h:54 AliDielectronVarCuts.h:55 AliDielectronVarCuts.h:56 AliDielectronVarCuts.h:57 AliDielectronVarCuts.h:58 AliDielectronVarCuts.h:59 AliDielectronVarCuts.h:60 AliDielectronVarCuts.h:61 AliDielectronVarCuts.h:62 AliDielectronVarCuts.h:63 AliDielectronVarCuts.h:64 AliDielectronVarCuts.h:65 AliDielectronVarCuts.h:66 AliDielectronVarCuts.h:67 AliDielectronVarCuts.h:68 AliDielectronVarCuts.h:69 AliDielectronVarCuts.h:70 AliDielectronVarCuts.h:71 AliDielectronVarCuts.h:72 AliDielectronVarCuts.h:73 AliDielectronVarCuts.h:74 AliDielectronVarCuts.h:75 AliDielectronVarCuts.h:76 AliDielectronVarCuts.h:77 AliDielectronVarCuts.h:78 AliDielectronVarCuts.h:79 AliDielectronVarCuts.h:80 AliDielectronVarCuts.h:81 AliDielectronVarCuts.h:82 AliDielectronVarCuts.h:83 AliDielectronVarCuts.h:84 AliDielectronVarCuts.h:85 AliDielectronVarCuts.h:86 AliDielectronVarCuts.h:87 AliDielectronVarCuts.h:88 AliDielectronVarCuts.h:89 AliDielectronVarCuts.h:90 AliDielectronVarCuts.h:91 AliDielectronVarCuts.h:92 AliDielectronVarCuts.h:93 AliDielectronVarCuts.h:94 AliDielectronVarCuts.h:95 AliDielectronVarCuts.h:96 AliDielectronVarCuts.h:97 AliDielectronVarCuts.h:98 AliDielectronVarCuts.h:99 AliDielectronVarCuts.h:100 AliDielectronVarCuts.h:101 AliDielectronVarCuts.h:102 AliDielectronVarCuts.h:103 AliDielectronVarCuts.h:104 AliDielectronVarCuts.h:105 AliDielectronVarCuts.h:106 AliDielectronVarCuts.h:107 AliDielectronVarCuts.h:108 AliDielectronVarCuts.h:109 AliDielectronVarCuts.h:110 AliDielectronVarCuts.h:111