]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliAnalysisTaskESDMuonFilter.h
Improved muon AOD's from Laurent
[u/mrichter/AliRoot.git] / PWG3 / 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 //\r
8 // Add the muon tracks to the generic AOD track branch during the \r
9 // filtering of the ESD. \r
10 //\r
11 // Authors: R. Arnaldi 5/5/08 and L. Aphecetche January 2011\r
12 \r
13 #ifndef ALIANALYSISTASKSE_H\r
14 #  include "AliAnalysisTaskSE.h"\r
15 #endif\r
16 #ifndef ALIANALYSISCUTS_H\r
17 #  include "AliAnalysisCuts.h"\r
18 #endif\r
19 \r
20 class AliAnalysisFilter;\r
21 class AliStack;\r
22 \r
23 class AliAnalysisTaskESDMuonFilter : public AliAnalysisTaskSE\r
24 {\r
25  public:\r
26     AliAnalysisTaskESDMuonFilter(Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE);\r
27     AliAnalysisTaskESDMuonFilter(const char* name, Bool_t onlyMuon=kTRUE, Bool_t keepAllEvents=kTRUE);\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
35 \r
36     virtual void ConvertESDtoAOD();\r
37 \r
38     // Setters\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
42 \r
43  private:\r
44     AliAnalysisTaskESDMuonFilter(const AliAnalysisTaskESDMuonFilter&);\r
45     AliAnalysisTaskESDMuonFilter& operator=(const AliAnalysisTaskESDMuonFilter&);\r
46     void PrintMCInfo(AliStack *pStack,Int_t label); // for debugging\r
47   void AddFilteredAOD(const char* aodfilename, const char* title);\r
48 \r
49   AliAnalysisFilter* fTrackFilter; //  Track Filter\r
50   Bool_t fEnableMuonAOD; // flag for enabling Muon AOD production\r
51   Bool_t fEnableDimuonAOD; // flag for enabling Dimuon AOD production\r
52   Bool_t fOnlyMuon; // flag for disabling branches irrelevant for (most) muon analyses\r
53   Bool_t fKeepAllEvents; // keep even events where there's no muons (to get e.g. unbiased vertex distribution)\r
54   \r
55   ClassDef(AliAnalysisTaskESDMuonFilter, 3); // Analysis task for standard ESD filtering\r
56 };\r
57  \r
58 class AliAnalysisNonMuonTrackCuts : public AliAnalysisCuts\r
59 {\r
60 public:\r
61   AliAnalysisNonMuonTrackCuts();\r
62   virtual ~AliAnalysisNonMuonTrackCuts() {}\r
63   virtual Bool_t IsSelected(TObject* obj);\r
64   virtual Bool_t IsSelected(TList*   /* list */ ) { return kTRUE; }\r
65 \r
66   ClassDef(AliAnalysisNonMuonTrackCuts,1); // Select muon spectrometer tracks\r
67 };\r
68 \r
69 class AliAnalysisNonPrimaryVertices : public AliAnalysisCuts\r
70 {\r
71 public:\r
72   AliAnalysisNonPrimaryVertices();\r
73   virtual ~AliAnalysisNonPrimaryVertices() {}\r
74   virtual Bool_t IsSelected(TObject* obj);\r
75   virtual Bool_t IsSelected(TList*   /* list */ ) { return kTRUE; }\r
76   \r
77   ClassDef(AliAnalysisNonPrimaryVertices,1); // Select primary vertices\r
78 };\r
79 \r
80 #endif\r