1 #ifndef ALIANALYSISTASKESDMUONFILTER_H
\r
2 #define ALIANALYSISTASKESDMUONFILTER_H
\r
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
5 * See cxx source for full Copyright notice */
\r
8 // Add the muon tracks to the generic AOD track branch during the
\r
9 // filtering of the ESD.
\r
11 // Authors: R. Arnaldi 5/5/08 and L. Aphecetche January 2011
\r
13 #ifndef ALIANALYSISTASKSE_H
\r
14 # include "AliAnalysisTaskSE.h"
\r
16 #ifndef ALIANALYSISCUTS_H
\r
17 # include "AliAnalysisCuts.h"
\r
20 class AliAnalysisFilter;
\r
23 class AliAnalysisTaskESDMuonFilter : public AliAnalysisTaskSE
\r
26 AliAnalysisTaskESDMuonFilter(Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE, Int_t mcMode=0);
\r
27 AliAnalysisTaskESDMuonFilter(const char* name, Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE, Int_t mcMode=0);
\r
28 virtual ~AliAnalysisTaskESDMuonFilter() {;}
\r
29 // Implementation of interface methods
\r
30 virtual void UserCreateOutputObjects();
\r
31 virtual void Init();
\r
32 virtual void LocalInit() {Init();}
\r
33 virtual void UserExec(Option_t *option);
\r
34 virtual void Terminate(Option_t *option);
\r
36 virtual void ConvertESDtoAOD();
\r
39 virtual void SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
\r
40 void SetWriteMuonAOD(Bool_t enableMuonAOD){fEnableMuonAOD = enableMuonAOD;}
\r
41 void SetWriteDimuonAOD(Bool_t enableDimuonAOD){fEnableDimuonAOD = enableDimuonAOD;}
\r
43 void PrintTask(Option_t *option="", Int_t indent=0) const;
\r
46 AliAnalysisTaskESDMuonFilter(const AliAnalysisTaskESDMuonFilter&);
\r
47 AliAnalysisTaskESDMuonFilter& operator=(const AliAnalysisTaskESDMuonFilter&);
\r
48 void PrintMCInfo(AliStack *pStack,Int_t label); // for debugging
\r
49 void AddFilteredAOD(const char* aodfilename, const char* title);
\r
51 AliAnalysisFilter* fTrackFilter; // Track Filter
\r
52 Bool_t fEnableMuonAOD; // flag for enabling Muon AOD production
\r
53 Bool_t fEnableDimuonAOD; // flag for enabling Dimuon AOD production
\r
54 Bool_t fOnlyMuon; // flag for disabling branches irrelevant for (most) muon analyses
\r
55 Bool_t fKeepAllEvents; // keep even events where there's no muons (to get e.g. unbiased vertex distribution)
\r
56 Int_t fMCMode; // whether and how we're filtering MC data
\r
58 ClassDef(AliAnalysisTaskESDMuonFilter, 5); // Analysis task for standard ESD filtering
\r
61 class AliAnalysisNonMuonTrackCuts : public AliAnalysisCuts
\r
64 AliAnalysisNonMuonTrackCuts();
\r
65 virtual ~AliAnalysisNonMuonTrackCuts() {}
\r
66 virtual Bool_t IsSelected(TObject* obj);
\r
67 virtual Bool_t IsSelected(TList* /* list */ ) { return kTRUE; }
\r
69 ClassDef(AliAnalysisNonMuonTrackCuts,1); // Select muon spectrometer tracks
\r
72 class AliAnalysisNonPrimaryVertices : public AliAnalysisCuts
\r
75 AliAnalysisNonPrimaryVertices();
\r
76 virtual ~AliAnalysisNonPrimaryVertices() {}
\r
77 virtual Bool_t IsSelected(TObject* obj);
\r
78 virtual Bool_t IsSelected(TList* /* list */ ) { return kTRUE; }
\r
80 ClassDef(AliAnalysisNonPrimaryVertices,1); // Select primary vertices
\r