#ifndef ALIANALYSISTASKREDUCEDTREE_H
#define ALIANALYSISTASKREDUCEDTREE_H
#include "TList.h"
#include "AliAnalysisTaskSE.h"
class AliAnalysisCuts;
class TTree;
class TFile;
class AliESDv0Cuts;
class AliESDv0KineCuts;
class AliKFVertex;
class AliReducedEvent;
class AliReducedEventFriend;
class AliReducedPair;
class AliDielectron;
class AliAnalysisTaskReducedTree : public AliAnalysisTaskSE {
public:
AliAnalysisTaskReducedTree();
AliAnalysisTaskReducedTree(const char *name);
virtual ~AliAnalysisTaskReducedTree(){ }
virtual void UserExec(Option_t *option);
virtual void UserCreateOutputObjects();
virtual void FinishTaskOutput();
void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;}
void SetTriggerMask(UInt_t mask) {fTriggerMask=mask;}
UInt_t GetTriggerMask() const { return fTriggerMask; }
void SetRejectPileup(Bool_t pileup=kTRUE) { fRejectPileup=pileup; }
void SetEventFilter(AliAnalysisCuts * const filter) {fEventFilter=filter;}
void SetTrackFilter(AliAnalysisCuts * const filter) {fTrackFilter=filter;}
void SetFlowTrackFilter(AliAnalysisCuts * const filter) {fFlowTrackFilter = filter;}
void SetK0sPionCuts(AliAnalysisCuts * const filter) {fK0sPionCuts=filter;}
void SetLambdaProtonCuts(AliAnalysisCuts * const filter) {fLambdaProtonCuts=filter;}
void SetLambdaPionCuts(AliAnalysisCuts * const filter) {fLambdaPionCuts=filter;}
void SetGammaElectronCuts(AliAnalysisCuts* const filter) {fGammaElectronCuts=filter;}
void SetK0sCuts(AliESDv0Cuts* const cuts) {fK0sCuts = cuts;}
void SetLambdaCuts(AliESDv0Cuts* const cuts) {fLambdaCuts = cuts;}
void SetGammaConvCuts(AliESDv0KineCuts* const cuts) {fGammaConvCuts = cuts;}
void SetV0OpenCuts(AliESDv0KineCuts* const cuts) {fV0OpenCuts = cuts;}
void SetV0StrongCuts(AliESDv0KineCuts* const cuts) {fV0StrongCuts = cuts;}
void SetK0sMassRange(Double_t min=0.4, Double_t max=0.6) {fK0sMassRange[0]=min; fK0sMassRange[1]=max;}
void SetLambdaMassRange(Double_t min=1.08, Double_t max=1.15) {fLambdaMassRange[0]=min; fLambdaMassRange[1]=max;}
void SetGammaConvMassRange(Double_t min=0.0, Double_t max=0.1) {fGammaMassRange[0]=min; fGammaMassRange[1]=max;}
void SetV0Histograms(AliDielectronHistos * const histos) {fV0Histos=histos;}
void SetFillTrackInfo(Bool_t flag=kTRUE) {fFillTrackInfo = flag;}
void SetFillDielectronInfo(Bool_t flag=kTRUE) {fFillDielectronInfo = flag;}
void SetFillV0Info(Bool_t flag=kTRUE) {fFillV0Info = flag;}
void SetFillGammaConversions(Bool_t flag=kTRUE) {fFillGammaConversions = flag;}
void SetFillK0s(Bool_t flag=kTRUE) {fFillK0s = flag;}
void SetFillLambda(Bool_t flag=kTRUE) {fFillLambda = flag;}
void SetFillALambda(Bool_t flag=kTRUE) {fFillALambda = flag;}
void SetFillCaloClusterInfo(Bool_t flag=kTRUE) {fFillCaloClusterInfo = flag;}
void SetFillFMDSectorInfo(Bool_t flag=kFALSE) {fFillFMDSectorInfo = flag;}
void SetFillFMDChannelInfo(Bool_t flag=kFALSE) {fFillFMDChannelInfo = flag;}
void SetFillFriendInfo(Bool_t flag=kTRUE) {fFillFriendInfo = flag;}
void AddDielectron(AliDielectron * const die) { fListDielectron.Add(die); }
private:
TList fListDielectron;
TList fListHistos;
Bool_t fSelectPhysics;
UInt_t fTriggerMask;
Bool_t fRejectPileup;
Bool_t fFillTrackInfo;
Bool_t fFillDielectronInfo;
Bool_t fFillV0Info;
Bool_t fFillGammaConversions;
Bool_t fFillK0s;
Bool_t fFillLambda;
Bool_t fFillALambda;
Bool_t fFillCaloClusterInfo;
Bool_t fFillFMDSectorInfo;
Bool_t fFillFMDChannelInfo;
Bool_t fFillFriendInfo;
AliAnalysisCuts *fEventFilter;
AliAnalysisCuts *fTrackFilter;
AliAnalysisCuts *fFlowTrackFilter;
AliESDv0Cuts *fK0sCuts;
AliESDv0Cuts *fLambdaCuts;
AliESDv0KineCuts *fGammaConvCuts;
AliAnalysisCuts *fK0sPionCuts;
AliAnalysisCuts *fLambdaProtonCuts;
AliAnalysisCuts *fLambdaPionCuts;
AliAnalysisCuts *fGammaElectronCuts;
AliESDv0KineCuts *fV0OpenCuts;
AliESDv0KineCuts *fV0StrongCuts;
Double_t fK0sMassRange[2];
Double_t fLambdaMassRange[2];
Double_t fGammaMassRange[2];
AliDielectronHistos* fV0Histos;
TFile *fTreeFile;
TTree *fTree;
TFile *fFriendTreeFile;
TTree *fFriendTree;
AliReducedEvent *fReducedEvent;
AliReducedEventFriend *fReducedEventFriend;
void FillEventInfo();
void FillFriendEventInfo();
void FillTrackInfo();
void FillDielectronPairInfo(AliDielectron* die, Short_t iDie);
void FillV0PairInfo();
AliReducedPair* FillV0PairInfo(AliESDv0* v0, Int_t id, AliESDtrack* legPos, AliESDtrack* legNeg, AliKFVertex* vtxKF, Bool_t chargesAreCorrect);
UChar_t EncodeTPCClusterMap(AliVParticle* track, Bool_t isAOD);
void FillCaloClusters();
void FillFMDInfo();
Int_t GetSPDTrackletMultiplicity(AliVEvent* event, Float_t lowEta, Float_t highEta);
AliAnalysisTaskReducedTree(const AliAnalysisTaskReducedTree &c);
AliAnalysisTaskReducedTree& operator= (const AliAnalysisTaskReducedTree &c);
ClassDef(AliAnalysisTaskReducedTree, 3);
};
#endif
AliAnalysisTaskReducedTree.h:1 AliAnalysisTaskReducedTree.h:2 AliAnalysisTaskReducedTree.h:3 AliAnalysisTaskReducedTree.h:4 AliAnalysisTaskReducedTree.h:5 AliAnalysisTaskReducedTree.h:6 AliAnalysisTaskReducedTree.h:7 AliAnalysisTaskReducedTree.h:8 AliAnalysisTaskReducedTree.h:9 AliAnalysisTaskReducedTree.h:10 AliAnalysisTaskReducedTree.h:11 AliAnalysisTaskReducedTree.h:12 AliAnalysisTaskReducedTree.h:13 AliAnalysisTaskReducedTree.h:14 AliAnalysisTaskReducedTree.h:15 AliAnalysisTaskReducedTree.h:16 AliAnalysisTaskReducedTree.h:17 AliAnalysisTaskReducedTree.h:18 AliAnalysisTaskReducedTree.h:19 AliAnalysisTaskReducedTree.h:20 AliAnalysisTaskReducedTree.h:21 AliAnalysisTaskReducedTree.h:22 AliAnalysisTaskReducedTree.h:23 AliAnalysisTaskReducedTree.h:24 AliAnalysisTaskReducedTree.h:25 AliAnalysisTaskReducedTree.h:26 AliAnalysisTaskReducedTree.h:27 AliAnalysisTaskReducedTree.h:28 AliAnalysisTaskReducedTree.h:29 AliAnalysisTaskReducedTree.h:30 AliAnalysisTaskReducedTree.h:31 AliAnalysisTaskReducedTree.h:32 AliAnalysisTaskReducedTree.h:33 AliAnalysisTaskReducedTree.h:34 AliAnalysisTaskReducedTree.h:35 AliAnalysisTaskReducedTree.h:36 AliAnalysisTaskReducedTree.h:37 AliAnalysisTaskReducedTree.h:38 AliAnalysisTaskReducedTree.h:39 AliAnalysisTaskReducedTree.h:40 AliAnalysisTaskReducedTree.h:41 AliAnalysisTaskReducedTree.h:42 AliAnalysisTaskReducedTree.h:43 AliAnalysisTaskReducedTree.h:44 AliAnalysisTaskReducedTree.h:45 AliAnalysisTaskReducedTree.h:46 AliAnalysisTaskReducedTree.h:47 AliAnalysisTaskReducedTree.h:48 AliAnalysisTaskReducedTree.h:49 AliAnalysisTaskReducedTree.h:50 AliAnalysisTaskReducedTree.h:51 AliAnalysisTaskReducedTree.h:52 AliAnalysisTaskReducedTree.h:53 AliAnalysisTaskReducedTree.h:54 AliAnalysisTaskReducedTree.h:55 AliAnalysisTaskReducedTree.h:56 AliAnalysisTaskReducedTree.h:57 AliAnalysisTaskReducedTree.h:58 AliAnalysisTaskReducedTree.h:59 AliAnalysisTaskReducedTree.h:60 AliAnalysisTaskReducedTree.h:61 AliAnalysisTaskReducedTree.h:62 AliAnalysisTaskReducedTree.h:63 AliAnalysisTaskReducedTree.h:64 AliAnalysisTaskReducedTree.h:65 AliAnalysisTaskReducedTree.h:66 AliAnalysisTaskReducedTree.h:67 AliAnalysisTaskReducedTree.h:68 AliAnalysisTaskReducedTree.h:69 AliAnalysisTaskReducedTree.h:70 AliAnalysisTaskReducedTree.h:71 AliAnalysisTaskReducedTree.h:72 AliAnalysisTaskReducedTree.h:73 AliAnalysisTaskReducedTree.h:74 AliAnalysisTaskReducedTree.h:75 AliAnalysisTaskReducedTree.h:76 AliAnalysisTaskReducedTree.h:77 AliAnalysisTaskReducedTree.h:78 AliAnalysisTaskReducedTree.h:79 AliAnalysisTaskReducedTree.h:80 AliAnalysisTaskReducedTree.h:81 AliAnalysisTaskReducedTree.h:82 AliAnalysisTaskReducedTree.h:83 AliAnalysisTaskReducedTree.h:84 AliAnalysisTaskReducedTree.h:85 AliAnalysisTaskReducedTree.h:86 AliAnalysisTaskReducedTree.h:87 AliAnalysisTaskReducedTree.h:88 AliAnalysisTaskReducedTree.h:89 AliAnalysisTaskReducedTree.h:90 AliAnalysisTaskReducedTree.h:91 AliAnalysisTaskReducedTree.h:92 AliAnalysisTaskReducedTree.h:93 AliAnalysisTaskReducedTree.h:94 AliAnalysisTaskReducedTree.h:95 AliAnalysisTaskReducedTree.h:96 AliAnalysisTaskReducedTree.h:97 AliAnalysisTaskReducedTree.h:98 AliAnalysisTaskReducedTree.h:99 AliAnalysisTaskReducedTree.h:100 AliAnalysisTaskReducedTree.h:101 AliAnalysisTaskReducedTree.h:102 AliAnalysisTaskReducedTree.h:103 AliAnalysisTaskReducedTree.h:104 AliAnalysisTaskReducedTree.h:105 AliAnalysisTaskReducedTree.h:106 AliAnalysisTaskReducedTree.h:107 AliAnalysisTaskReducedTree.h:108 AliAnalysisTaskReducedTree.h:109 AliAnalysisTaskReducedTree.h:110 AliAnalysisTaskReducedTree.h:111 AliAnalysisTaskReducedTree.h:112 AliAnalysisTaskReducedTree.h:113 AliAnalysisTaskReducedTree.h:114 AliAnalysisTaskReducedTree.h:115 AliAnalysisTaskReducedTree.h:116 AliAnalysisTaskReducedTree.h:117 AliAnalysisTaskReducedTree.h:118 AliAnalysisTaskReducedTree.h:119 AliAnalysisTaskReducedTree.h:120 AliAnalysisTaskReducedTree.h:121 AliAnalysisTaskReducedTree.h:122 AliAnalysisTaskReducedTree.h:123 AliAnalysisTaskReducedTree.h:124 AliAnalysisTaskReducedTree.h:125 AliAnalysisTaskReducedTree.h:126 AliAnalysisTaskReducedTree.h:127 AliAnalysisTaskReducedTree.h:128 AliAnalysisTaskReducedTree.h:129 AliAnalysisTaskReducedTree.h:130 AliAnalysisTaskReducedTree.h:131 AliAnalysisTaskReducedTree.h:132 AliAnalysisTaskReducedTree.h:133 AliAnalysisTaskReducedTree.h:134 AliAnalysisTaskReducedTree.h:135 AliAnalysisTaskReducedTree.h:136 AliAnalysisTaskReducedTree.h:137 AliAnalysisTaskReducedTree.h:138 AliAnalysisTaskReducedTree.h:139 AliAnalysisTaskReducedTree.h:140 AliAnalysisTaskReducedTree.h:141 AliAnalysisTaskReducedTree.h:142