virtual ~AliRsnMiniAnalysisTask();
void UseMC(Bool_t yn = kTRUE) {fUseMC = yn;}
+ void UseESDTriggerMask(UInt_t trgMask) {fTriggerMask = trgMask;}
void UseCentrality(const char *type) {fUseCentrality = kTRUE; fCentralityType = type; fCentralityType.ToUpper();}
void SetUseCentralityPatch(Bool_t isAOD049) {fUseAOD049CentralityPatch = isAOD049;}
void UseMultiplicity(const char *type) {fUseCentrality = kFALSE; fCentralityType = type; fCentralityType.ToUpper();}
void SetMaxDiffAngle(Double_t val) {fMaxDiffAngle = val;}
void SetEventCuts(AliRsnCutSet *cuts) {fEventCuts = cuts;}
void SetMixPrintRefresh(Int_t n) {fMixPrintRefresh = n;}
+ void SetMaxNDaughters(Short_t n) {fMaxNDaughters = n;}
+ void SetCheckMomentumConservation(Bool_t checkP) {fCheckP = checkP;}
+ void SetCheckFeedDown(Bool_t checkFeedDown) {fCheckFeedDown = checkFeedDown;}
+ void SetDselection(UShort_t originDselection);
+ void SetRejectCandidateIfNotFromQuark(Bool_t opt){fRejectIfNoQuark=opt;}
Int_t AddTrackCuts(AliRsnCutSet *cuts);
TClonesArray *Outputs() {return &fHistograms;}
TClonesArray *Values() {return &fValues;}
+ Short_t GetMaxNDaughters() {return fMaxNDaughters;}
void SetEventQAHist(TString type,TH2F *histo);
void UseBigOutput(Bool_t b=kTRUE) { fBigOutput = b; }
Bool_t fUseMC; // use or not MC info
Int_t fEvNum; //! absolute event counter
+ UInt_t fTriggerMask; //trigger mask
Bool_t fUseCentrality; // if true, use centrality for event, otherwise use multiplicity
TString fCentralityType; // definition used to choose what centrality or multiplicity to use
Bool_t fUseAOD049CentralityPatch; //flag to enable AOD049 centrality patch
AliRsnMiniEvent *fMiniEvent; //! mini-event cursor
Bool_t fBigOutput; // flag if open file for output list
Int_t fMixPrintRefresh; // how often info in mixing part is printed
-
- ClassDef(AliRsnMiniAnalysisTask, 5); // AliRsnMiniAnalysisTask
+ Short_t fMaxNDaughters; // maximum number of allowed mother's daughter
+ Bool_t fCheckP; // flag to set in order to check the momentum conservation for mothers
+
+ Bool_t fCheckFeedDown; // flag to set in order to check the particle feed down (specific for D meson analysis)
+ UShort_t fOriginDselection; // flag to select D0 origins. 0 Only from charm 1 only from beauty 2 both from charm and beauty (specific for D meson analysis)
+ Bool_t fKeepDfromB; // flag for the feed down from b quark decay (specific for D meson analysis)
+ Bool_t fKeepDfromBOnly; // flag to keep only the charm particles that comes from beauty decays (specific for D meson analysis)
+ Bool_t fRejectIfNoQuark; // flag to remove events not generated with PYTHIA
+
+ ClassDef(AliRsnMiniAnalysisTask, 8); // AliRsnMiniAnalysisTask
};
-inline Int_t AliRsnMiniAnalysisTask::CreateValue(AliRsnMiniValue::EType type, Bool_t useMC)
-{
-//
-// Create a new value in the task,
-// and returns its ID, which is needed for setting up histograms.
-// If that value was already initialized, returns its ID and does not recreate it.
-//
-
- Int_t valID = ValueID(type, useMC);
- if (valID >= 0 && valID < fValues.GetEntries()) {
- AliInfo(Form("Value '%s' is already created in slot #%d", AliRsnMiniValue::ValueName(type, useMC), valID));
- } else {
- valID = fValues.GetEntries();
- AliInfo(Form("Creating value '%s' in slot #%d", AliRsnMiniValue::ValueName(type, useMC), valID));
- new (fValues[valID]) AliRsnMiniValue(type, useMC);
- }
-
- return valID;
-}
-
-inline Int_t AliRsnMiniAnalysisTask::ValueID(AliRsnMiniValue::EType type, Bool_t useMC)
-{
-//
-// Searches if a value computation is initialized
-//
-
- const char *name = AliRsnMiniValue::ValueName(type, useMC);
- TObject *obj = fValues.FindObject(name);
- if (obj)
- return fValues.IndexOf(obj);
- else
- return -1;
-}
-
-inline AliRsnMiniOutput *AliRsnMiniAnalysisTask::CreateOutput
-(const char *name, AliRsnMiniOutput::EOutputType type, AliRsnMiniOutput::EComputation src)
-{
-//
-// Create a new histogram definition in the task,
-// which is then returned to the user for its configuration
-//
-
- Int_t n = fHistograms.GetEntries();
- AliRsnMiniOutput *newDef = new (fHistograms[n]) AliRsnMiniOutput(name, type, src);
-
- return newDef;
-}
-
-inline AliRsnMiniOutput *AliRsnMiniAnalysisTask::CreateOutput
-(const char *name, const char *outType, const char *compType)
-{
-//
-// Create a new histogram definition in the task,
-// which is then returned to the user for its configuration
-//
-
- Int_t n = fHistograms.GetEntries();
- AliRsnMiniOutput *newDef = new (fHistograms[n]) AliRsnMiniOutput(name, outType, compType);
- return newDef;
-}
#endif