#ifndef ALIRSNMINIANALYSISTASK_H
#define ALIRSNMINIANALYSISTASK_H
#include <TString.h>
#include <TClonesArray.h>
#include "AliAnalysisTaskSE.h"
#include "AliRsnEvent.h"
#include "AliRsnMiniValue.h"
#include "AliRsnMiniOutput.h"
class TList;
class AliTriggerAnalysis;
class AliRsnMiniEvent;
class AliRsnCutSet;
class AliRsnMiniAnalysisTask : public AliAnalysisTaskSE {
public:
AliRsnMiniAnalysisTask();
AliRsnMiniAnalysisTask(const char *name, Bool_t isMC = kFALSE);
AliRsnMiniAnalysisTask(const AliRsnMiniAnalysisTask ©);
AliRsnMiniAnalysisTask &operator=(const AliRsnMiniAnalysisTask ©);
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 SetUseCentralityPatchPbPb2011(Int_t centralityPatchPbPb2011) {fUseCentralityPatchPbPb2011 = centralityPatchPbPb2011;}
void UseMultiplicity(const char *type) {fUseCentrality = kFALSE; fCentralityType = type; fCentralityType.ToUpper();}
void UseContinuousMix() {fContinuousMix = kTRUE;}
void UseBinnedMix() {fContinuousMix = kFALSE;}
void SetNMix(Int_t nmix) {fNMix = nmix;}
void SetMaxDiffMult (Double_t val) {fMaxDiffMult = val;}
void SetMaxDiffVz (Double_t val) {fMaxDiffVz = val;}
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;}
void SetMotherAcceptanceCutMinPt(Float_t minPt) {fMotherAcceptanceCutMinPt = minPt;}
void SetMotherAcceptanceCutMaxEta(Float_t maxEta){fMotherAcceptanceCutMaxEta = maxEta;}
void KeepMotherInAcceptance(Bool_t keepMotherInAcceptance) {fKeepMotherInAcceptance = keepMotherInAcceptance;}
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; }
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *);
virtual void Terminate(Option_t *);
virtual void FinishTaskOutput();
Int_t ValueID(AliRsnMiniValue::EType type, Bool_t useMC = kFALSE);
Int_t CreateValue(AliRsnMiniValue::EType type, Bool_t useMC = kFALSE);
AliRsnMiniOutput *CreateOutput(const char *name, AliRsnMiniOutput::EOutputType type, AliRsnMiniOutput::EComputation src);
AliRsnMiniOutput *CreateOutput(const char *name, const char *outType, const char *compType);
private:
Char_t CheckCurrentEvent();
void FillMiniEvent(Char_t evType);
Double_t ComputeAngle();
Double_t ComputeCentrality(Bool_t isESD);
Double_t ComputeMultiplicity(Bool_t isESD,TString type);
Double_t ComputeTracklets();
Double_t ApplyCentralityPatchAOD049();
Double_t ApplyCentralityPatchPbPb2011();
void FillTrueMotherESD(AliRsnMiniEvent *event);
void FillTrueMotherAOD(AliRsnMiniEvent *event);
void StoreTrueMother(AliRsnMiniPair *pair, AliRsnMiniEvent *event);
Bool_t EventsMatch(AliRsnMiniEvent *event1, AliRsnMiniEvent *event2);
Bool_t fUseMC;
Int_t fEvNum;
UInt_t fTriggerMask;
Bool_t fUseCentrality;
TString fCentralityType;
Bool_t fUseAOD049CentralityPatch;
Int_t fUseCentralityPatchPbPb2011;
Bool_t fContinuousMix;
Int_t fNMix;
Double_t fMaxDiffMult;
Double_t fMaxDiffVz;
Double_t fMaxDiffAngle;
TList *fOutput;
TClonesArray fHistograms;
TClonesArray fValues;
TH1F *fHEventStat;
TH1F *fHAEventsVsMulti;
TH1F *fHAEventsVsTracklets;
TH2F *fHAEventVz;
TH2F *fHAEventMultiCent;
TH2F *fHAEventPlane;
AliRsnCutSet *fEventCuts;
TObjArray fTrackCuts;
AliRsnEvent fRsnEvent;
TTree *fEvBuffer;
AliTriggerAnalysis *fTriggerAna;
AliESDtrackCuts *fESDtrackCuts;
AliRsnMiniEvent *fMiniEvent;
Bool_t fBigOutput;
Int_t fMixPrintRefresh;
Short_t fMaxNDaughters;
Bool_t fCheckP;
Bool_t fCheckFeedDown;
UShort_t fOriginDselection;
Bool_t fKeepDfromB;
Bool_t fKeepDfromBOnly;
Bool_t fRejectIfNoQuark;
Float_t fMotherAcceptanceCutMinPt;
Float_t fMotherAcceptanceCutMaxEta;
Bool_t fKeepMotherInAcceptance;
ClassDef(AliRsnMiniAnalysisTask, 11);
};
#endif
AliRsnMiniAnalysisTask.h:1 AliRsnMiniAnalysisTask.h:2 AliRsnMiniAnalysisTask.h:3 AliRsnMiniAnalysisTask.h:4 AliRsnMiniAnalysisTask.h:5 AliRsnMiniAnalysisTask.h:6 AliRsnMiniAnalysisTask.h:7 AliRsnMiniAnalysisTask.h:8 AliRsnMiniAnalysisTask.h:9 AliRsnMiniAnalysisTask.h:10 AliRsnMiniAnalysisTask.h:11 AliRsnMiniAnalysisTask.h:12 AliRsnMiniAnalysisTask.h:13 AliRsnMiniAnalysisTask.h:14 AliRsnMiniAnalysisTask.h:15 AliRsnMiniAnalysisTask.h:16 AliRsnMiniAnalysisTask.h:17 AliRsnMiniAnalysisTask.h:18 AliRsnMiniAnalysisTask.h:19 AliRsnMiniAnalysisTask.h:20 AliRsnMiniAnalysisTask.h:21 AliRsnMiniAnalysisTask.h:22 AliRsnMiniAnalysisTask.h:23 AliRsnMiniAnalysisTask.h:24 AliRsnMiniAnalysisTask.h:25 AliRsnMiniAnalysisTask.h:26 AliRsnMiniAnalysisTask.h:27 AliRsnMiniAnalysisTask.h:28 AliRsnMiniAnalysisTask.h:29 AliRsnMiniAnalysisTask.h:30 AliRsnMiniAnalysisTask.h:31 AliRsnMiniAnalysisTask.h:32 AliRsnMiniAnalysisTask.h:33 AliRsnMiniAnalysisTask.h:34 AliRsnMiniAnalysisTask.h:35 AliRsnMiniAnalysisTask.h:36 AliRsnMiniAnalysisTask.h:37 AliRsnMiniAnalysisTask.h:38 AliRsnMiniAnalysisTask.h:39 AliRsnMiniAnalysisTask.h:40 AliRsnMiniAnalysisTask.h:41 AliRsnMiniAnalysisTask.h:42 AliRsnMiniAnalysisTask.h:43 AliRsnMiniAnalysisTask.h:44 AliRsnMiniAnalysisTask.h:45 AliRsnMiniAnalysisTask.h:46 AliRsnMiniAnalysisTask.h:47 AliRsnMiniAnalysisTask.h:48 AliRsnMiniAnalysisTask.h:49 AliRsnMiniAnalysisTask.h:50 AliRsnMiniAnalysisTask.h:51 AliRsnMiniAnalysisTask.h:52 AliRsnMiniAnalysisTask.h:53 AliRsnMiniAnalysisTask.h:54 AliRsnMiniAnalysisTask.h:55 AliRsnMiniAnalysisTask.h:56 AliRsnMiniAnalysisTask.h:57 AliRsnMiniAnalysisTask.h:58 AliRsnMiniAnalysisTask.h:59 AliRsnMiniAnalysisTask.h:60 AliRsnMiniAnalysisTask.h:61 AliRsnMiniAnalysisTask.h:62 AliRsnMiniAnalysisTask.h:63 AliRsnMiniAnalysisTask.h:64 AliRsnMiniAnalysisTask.h:65 AliRsnMiniAnalysisTask.h:66 AliRsnMiniAnalysisTask.h:67 AliRsnMiniAnalysisTask.h:68 AliRsnMiniAnalysisTask.h:69 AliRsnMiniAnalysisTask.h:70 AliRsnMiniAnalysisTask.h:71 AliRsnMiniAnalysisTask.h:72 AliRsnMiniAnalysisTask.h:73 AliRsnMiniAnalysisTask.h:74 AliRsnMiniAnalysisTask.h:75 AliRsnMiniAnalysisTask.h:76 AliRsnMiniAnalysisTask.h:77 AliRsnMiniAnalysisTask.h:78 AliRsnMiniAnalysisTask.h:79 AliRsnMiniAnalysisTask.h:80 AliRsnMiniAnalysisTask.h:81 AliRsnMiniAnalysisTask.h:82 AliRsnMiniAnalysisTask.h:83 AliRsnMiniAnalysisTask.h:84 AliRsnMiniAnalysisTask.h:85 AliRsnMiniAnalysisTask.h:86 AliRsnMiniAnalysisTask.h:87 AliRsnMiniAnalysisTask.h:88 AliRsnMiniAnalysisTask.h:89 AliRsnMiniAnalysisTask.h:90 AliRsnMiniAnalysisTask.h:91 AliRsnMiniAnalysisTask.h:92 AliRsnMiniAnalysisTask.h:93 AliRsnMiniAnalysisTask.h:94 AliRsnMiniAnalysisTask.h:95 AliRsnMiniAnalysisTask.h:96 AliRsnMiniAnalysisTask.h:97 AliRsnMiniAnalysisTask.h:98 AliRsnMiniAnalysisTask.h:99 AliRsnMiniAnalysisTask.h:100 AliRsnMiniAnalysisTask.h:101 AliRsnMiniAnalysisTask.h:102 AliRsnMiniAnalysisTask.h:103 AliRsnMiniAnalysisTask.h:104 AliRsnMiniAnalysisTask.h:105 AliRsnMiniAnalysisTask.h:106 AliRsnMiniAnalysisTask.h:107 AliRsnMiniAnalysisTask.h:108 AliRsnMiniAnalysisTask.h:109 AliRsnMiniAnalysisTask.h:110 AliRsnMiniAnalysisTask.h:111 AliRsnMiniAnalysisTask.h:112 AliRsnMiniAnalysisTask.h:113 AliRsnMiniAnalysisTask.h:114 AliRsnMiniAnalysisTask.h:115 AliRsnMiniAnalysisTask.h:116 AliRsnMiniAnalysisTask.h:117 AliRsnMiniAnalysisTask.h:118 AliRsnMiniAnalysisTask.h:119 AliRsnMiniAnalysisTask.h:120 AliRsnMiniAnalysisTask.h:121 AliRsnMiniAnalysisTask.h:122 AliRsnMiniAnalysisTask.h:123 AliRsnMiniAnalysisTask.h:124 AliRsnMiniAnalysisTask.h:125 AliRsnMiniAnalysisTask.h:126 AliRsnMiniAnalysisTask.h:127 AliRsnMiniAnalysisTask.h:128 AliRsnMiniAnalysisTask.h:129 AliRsnMiniAnalysisTask.h:130 AliRsnMiniAnalysisTask.h:131 AliRsnMiniAnalysisTask.h:132 AliRsnMiniAnalysisTask.h:133 AliRsnMiniAnalysisTask.h:134 AliRsnMiniAnalysisTask.h:135 AliRsnMiniAnalysisTask.h:136 AliRsnMiniAnalysisTask.h:137 AliRsnMiniAnalysisTask.h:138 AliRsnMiniAnalysisTask.h:139 AliRsnMiniAnalysisTask.h:140 AliRsnMiniAnalysisTask.h:141