Go to the documentation of this file.
40 , fSelectedCutsMask(0)
49 fCutExclude[
i] = kFALSE;
62 , fSelectedCutsMask(0)
105 if ((TESTBIT((UInt_t) values[cut], (UInt_t)
fCutMin[iCut]))
111 && ((values[cut] <
fCutMin[iCut]) || (values[cut] >
fCutMax[iCut]))
114 }
else if (
fCutVar[iCut] &&
fCutVar[iCut]->IsA() == TFormula::Class()) {
116 TFormula* form =
static_cast<TFormula*
>(
fCutVar[iCut]);
145 if (!track)
return kFALSE;
160 Bool_t excludeRange) {
182 Bool_t excludeRange) {
198 TFormula* form =
new TFormula(
"varFormula", formula);
200 if (form->Compile())
return;
202 for (Int_t
i = 0;
i < form->GetNpar();
i++) {
205 fUsedVars->SetBitNumber((Int_t) form->GetParameter(
i), kTRUE);
215 Bool_t excludeRange) {
233 printf(
"------------------------------------------\n");
234 printf(
"cut ranges for '%s'\n", GetTitle());
236 printf(
"All Cuts have to be fulfilled\n");
238 printf(
"Any Cut has to be fulfilled\n");
244 Bool_t fcut = (
fCutVar[iCut] &&
fCutVar[iCut]->IsA() == TFormula::Class());
246 if (!bitcut && !fcut) {
249 printf(
"Cut %02d: %f < %s < %f\n",
255 printf(
"Cut %02d: !(%f < %s < %f)\n",
264 printf(
"Cut %02d: %s & (1ULL<<%d) \n",
269 printf(
"Cut %02d: !(%s & (1ULL<<%d)) \n",
276 TFormula* form =
static_cast<TFormula*
>(
fCutVar[iCut]);
277 TString tit(form->GetExpFormula());
279 for (Int_t j = 0; j < form->GetNpar(); j++)
280 tit.ReplaceAll(Form(
"[%d]", j), form->GetParName(j));
282 printf(
"Cut %02d: %f < %s < %f\n",
288 printf(
"Cut %02d: !(%f < %s < %f)\n",
294 printf(
"cut class not found\n");
296 printf(
"------------------------------------------\n");
static void SetFillMap(TBits *map)
void AddCut(PairAnalysisVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t excludeRange=kFALSE)
Double_t EvalFormula(TFormula *form, const Double_t *values)
Bool_t fBitCut[PairAnalysisVarManager::kNMaxValuesMC]
Bool_t fCutExclude[PairAnalysisVarManager::kNMaxValuesMC]
TObject * fCutVar[PairAnalysisVarManager::kNMaxValuesMC]
static void Fill(const TObject *particle, Double_t *const values)
UShort_t fActiveCuts[PairAnalysisVarManager::kNMaxValuesMC]
static const char * GetValueName(Int_t i)
Double_t fCutMax[PairAnalysisVarManager::kNMaxValuesMC]
virtual void Print(const Option_t *option="") const
virtual ~PairAnalysisVarCuts()
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
static void InitFormulas()
ClassImp(PairAnalysisVarCuts) PairAnalysisVarCuts
virtual void SetSelected(Bool_t dec)
void AddBitCut(PairAnalysisVarManager::ValueTypes type, UInt_t bit, Bool_t excludeRange=kFALSE)
virtual Bool_t IsSelected(Double_t *const values)
Double_t fCutMin[PairAnalysisVarManager::kNMaxValuesMC]
static Double_t * GetData()
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)