#include <TNamed.h>
#include <TVectorDfwd.h>
+#include <TBits.h>
#include "AliDielectronVarManager.h"
class AliAnalysisCuts;
void SetStepsForCutsIncreasing(Bool_t steps=kTRUE) { fStepsForCutsIncreasing=steps; }
void SetStepsForSignal(Bool_t steps=kTRUE) { fStepsForSignal=steps; }
void SetStepsForBackground(Bool_t steps=kTRUE) { fStepsForBackground=steps; }
+ void SetStepsForMCtruthOnly(Bool_t steps=kTRUE) { fStepsForMCtruthOnly=steps; }
void SetPdgMother(Int_t pdg) { fPdgMother=pdg; }
void SetSignalsMC(TObjArray* array) {fSignalsMC = array;}
void AddVariable(AliDielectronVarManager::ValueTypes type, TVectorD *binLimits, Bool_t leg=kFALSE);
void InitialiseContainer(const AliAnalysisFilter& filter);
-
+
+ Int_t GetNvarsPair() const {return fNVars;}
+ Int_t GetNvarsLeg() const {return fNVarsLeg;}
+
+ UInt_t GetVariablePair(UInt_t var) const {return (var>=(UInt_t)AliDielectronVarManager::kNMaxValues)? (UInt_t)AliDielectronVarManager::kNMaxValues+1:fVariables[var];}
+ UInt_t GetVariableLeg(UInt_t var) const {return (var>=(UInt_t)AliDielectronVarManager::kNMaxValues)? (UInt_t)AliDielectronVarManager::kNMaxValues+1:fVariablesLeg[var];}
+
// void Fill(UInt_t mask, const TObject *particle);
void Fill(UInt_t mask, const AliDielectronPair *particle);
void FillMC(const TObject *particle);
AliCFContainer* GetContainer() const { return fCfContainer; }
private:
+ TBits *fUsedVars; // list of used variables
+
UInt_t fVariables[AliDielectronVarManager::kNMaxValues]; //configured variables
UInt_t fVariablesLeg[AliDielectronVarManager::kNMaxValues]; //configured variables for the legs
Int_t fNVarsLeg; // number of variables for the legs
TObjArray *fVarBinLimitsLeg; // array of bin limits of the legs
- Int_t fNCuts; // Number of cuts in the filter concerned
+ Int_t fNCuts; // Number of cuts in the filter concerned
- Double_t *fValues; //! Value array for filling the container
+ Double_t *fValues; //! Value array for filling the container
+ Bool_t *fIsMCTruth; //! Buffer array for MC truth information
Bool_t fStepForMCtruth; //create a step for the MC truth
Bool_t fStepForNoCutsMCmotherPid; //create a step for before cuts, but with MC truth of the mother
//e.g. cut1&cut2, cut1&cut2&cut3 ...
Bool_t fStepsForSignal; //steps for pure signal
Bool_t fStepsForBackground; //steps for pure background
+ Bool_t fStepsForMCtruthOnly; //Switch off all pair steps, allow only MC truth Class
UInt_t fStepMasks[kNmaxAddSteps]; //steps for additional cut combinatons
UInt_t fNStepMasks; //number of configured step masks
AliDielectronCF(const AliDielectronCF &c);
AliDielectronCF &operator=(const AliDielectronCF &c);
- ClassDef(AliDielectronCF,4) //Dielectron Correction Framework handler
+ ClassDef(AliDielectronCF,5) //Dielectron Correction Framework handler
};
#endif