// -- values to be computed.
//
-#include "AliAnalysisTaskSE.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;
public:
AliRsnMiniAnalysisTask();
- AliRsnMiniAnalysisTask(const char *name);
+ AliRsnMiniAnalysisTask(const char *name, Bool_t isMC = kFALSE);
AliRsnMiniAnalysisTask(const AliRsnMiniAnalysisTask ©);
AliRsnMiniAnalysisTask& operator=(const AliRsnMiniAnalysisTask ©);
virtual ~AliRsnMiniAnalysisTask();
- virtual void UserCreateOutputObjects();
- virtual void UserExec(Option_t *option);
- virtual void Terminate(Option_t *);
- virtual void FinishTaskOutput();
-
+ void UseMC(Bool_t yn = kTRUE) {fUseMC = yn;}
+ void UseCentrality(const char *type) {fUseCentrality = kTRUE; fCentralityType = type; fCentralityType.ToUpper();}
+ 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 UseCentrality(const char *type) {fUseCentrality = kTRUE; fCentralityType = type; fCentralityType.ToUpper();}
- void UseMultiplicity(const char *type) {fUseCentrality = kFALSE; fCentralityType = type; fCentralityType.ToUpper();}
Int_t AddTrackCuts(AliRsnCutSet *cuts);
+ TClonesArray *Outputs() {return &fHistograms;}
+ TClonesArray *Values() {return &fValues;}
- TClonesArray *Outputs() {return &fHistograms;}
- TClonesArray *Values() {return &fValues;}
+ 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);
-
- void ProcessEvents(AliRsnMiniEvent *evMain, AliRsnMiniEvent *evMix = 0x0);
private:
- void InitHistograms(TClonesArray *array);
Char_t CheckCurrentEvent();
+ void FillMiniEvent(Char_t evType);
+ Double_t ComputeAngle();
Double_t ComputeCentrality(Bool_t isESD);
void FillTrueMotherESD(AliRsnMiniEvent *event);
void FillTrueMotherAOD(AliRsnMiniEvent *event);
void StoreTrueMother(AliRsnMiniPair *pair, AliRsnMiniEvent *event);
+ Bool_t EventsMatch(AliRsnMiniEvent *event1, AliRsnMiniEvent *event2);
+ Bool_t fUseMC; // use or not MC info
Int_t fEvNum; //! absolute event counter
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 fContinuousMix; // mixing --> technique chosen (continuous or binned)
Int_t fNMix; // mixing --> required number of mixes
Double_t fMaxDiffMult; // mixing --> max difference in multiplicity
Double_t fMaxDiffVz; // mixing --> max difference in Vz of prim vert
AliRsnCutSet *fEventCuts; // cuts on events
TObjArray fTrackCuts; // list of single track cuts
AliRsnEvent fRsnEvent; //! interface object to the event
- TTree *fTempTree; //! tree to contain converted events (temporary)
- TArrayI fNMixed; //! array to keep trace of how many times an event was mixed
+ TTree *fEvBuffer; //! mini-event buffer
AliTriggerAnalysis *fTriggerAna; //! trigger analysis
+ AliESDtrackCuts *fESDtrackCuts; //! quality cut for ESD tracks
+ AliRsnMiniEvent *fMiniEvent; //! mini-event cursor
+ Bool_t fBigOutput; // flag if open file for output list
- ClassDef(AliRsnMiniAnalysisTask, 1); // AliRsnMiniAnalysisTask
+ ClassDef(AliRsnMiniAnalysisTask, 2); // AliRsnMiniAnalysisTask
};
inline Int_t AliRsnMiniAnalysisTask::CreateValue(AliRsnMiniValue::EType type, Bool_t useMC)