]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisTaskESDMuonFilter.h
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskESDMuonFilter.h
1 #ifndef ALIANALYSISTASKESDMUONFILTER_H\r
2 #define ALIANALYSISTASKESDMUONFILTER_H\r
3  \r
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
5  * See cxx source for full Copyright notice                               */\r
6 \r
7 /* $Id$ */ \r
8 \r
9 //\r
10 // Add the muon tracks to the generic AOD track branch during the \r
11 // filtering of the ESD. \r
12 //\r
13 // Authors: R. Arnaldi 5/5/08 and L. Aphecetche January 2011\r
14 \r
15 #ifndef ALIANALYSISTASKSE_H\r
16 #  include "AliAnalysisTaskSE.h"\r
17 #endif\r
18 #ifndef ALIANALYSISCUTS_H\r
19 #  include "AliAnalysisCuts.h"\r
20 #endif\r
21 \r
22 class AliAnalysisFilter;\r
23 \r
24 class AliAnalysisTaskESDMuonFilter : public AliAnalysisTaskSE\r
25 {\r
26  public:\r
27     AliAnalysisTaskESDMuonFilter(Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE, Int_t mcMode=0);\r
28     AliAnalysisTaskESDMuonFilter(const char* name, Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE, Int_t mcMode=0);\r
29     virtual ~AliAnalysisTaskESDMuonFilter() {;}\r
30     // Implementation of interface methods\r
31     virtual void UserCreateOutputObjects();\r
32     virtual void Init();\r
33     virtual void LocalInit() {Init();}\r
34     virtual void UserExec(Option_t *option);\r
35     virtual void Terminate(Option_t *option);\r
36 \r
37     virtual void ConvertESDtoAOD();\r
38 \r
39     // Setters\r
40     virtual void SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}\r
41     void SetWriteMuonAOD(Bool_t enableMuonAOD){fEnableMuonAOD = enableMuonAOD;}\r
42     void SetWriteDimuonAOD(Bool_t enableDimuonAOD){fEnableDimuonAOD = enableDimuonAOD;}\r
43 \r
44   void PrintTask(Option_t *option="", Int_t indent=0) const;\r
45 \r
46  private:\r
47     AliAnalysisTaskESDMuonFilter(const AliAnalysisTaskESDMuonFilter&);\r
48     AliAnalysisTaskESDMuonFilter& operator=(const AliAnalysisTaskESDMuonFilter&);\r
49   void AddFilteredAOD(const char* aodfilename, const char* title);\r
50 \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
57   \r
58   ClassDef(AliAnalysisTaskESDMuonFilter, 5); // Analysis task for standard ESD filtering\r
59 };\r
60  \r
61 class AliAnalysisNonMuonTrackCuts : public AliAnalysisCuts\r
62 {\r
63 public:\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
68 \r
69   ClassDef(AliAnalysisNonMuonTrackCuts,1); // Select muon spectrometer tracks\r
70 };\r
71 \r
72 class AliAnalysisNonPrimaryVertices : public AliAnalysisCuts\r
73 {\r
74 public:\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
79   \r
80   ClassDef(AliAnalysisNonPrimaryVertices,1); // Select primary vertices\r
81 };\r
82 \r
83 #endif\r