]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliAnalysisTaskMuonCollisionMultiplicity.h
set arrays to 0 after delete to avoid crash in Pb reconstruction - Ruben
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAnalysisTaskMuonCollisionMultiplicity.h
1 #ifndef ALIANALYSISTASKMUONCOLLISIONMULTIPLICITY_H
2 #define ALIANALYSISTASKMUONCOLLISIONMULTIPLICITY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /// \ingroup base
7 /// \class AliAnalysisTaskMultiplicity
8 /// \compute the number of Muons tracks as a function of the SPD tracklets multiplicity
9 /// Author Matthieu LENHARDT - SUBATECH, Nantes
10
11 #include "AliAnalysisTaskSE.h"
12
13 class AliAODEvent;
14 class AliESDEvent;
15 class AliAODTrack;
16 class AliESDMuonTrack;
17 class AliAODDimuon;
18 class TList;
19 class TArrayD;
20
21 class AliAnalysisTaskMuonCollisionMultiplicity : public AliAnalysisTaskSE
22 {
23  public:
24   AliAnalysisTaskMuonCollisionMultiplicity();
25   AliAnalysisTaskMuonCollisionMultiplicity(const AliAnalysisTaskMuonCollisionMultiplicity& rhs);
26   AliAnalysisTaskMuonCollisionMultiplicity& operator=(const AliAnalysisTaskMuonCollisionMultiplicity&);
27   AliAnalysisTaskMuonCollisionMultiplicity(const Char_t* name);
28   virtual ~AliAnalysisTaskMuonCollisionMultiplicity();
29   
30   // Implementation of interface methods
31   virtual void UserCreateOutputObjects();
32   virtual void UserExec(Option_t *option);
33   virtual void Terminate(Option_t *option);
34   virtual void NotifyRun();
35   virtual void FinishTaskOutput();
36   
37   
38   Double_t GetZCut()              {return fZCut;};
39   Double_t GetEtaCut()            {return fEtaCut;};
40   void SetZCut(Double_t zCut)     {fZCut = zCut;};
41   void SetEtaCut(Double_t etaCut) {fEtaCut = etaCut;};
42   
43  private:
44   
45   Bool_t fIsInit;              //< Is the class initialized?
46   
47   AliAODEvent *fAOD;                  //!< AOD Event
48   AliESDEvent *fESD;                  //!< ESD Event
49
50   Double_t fZCut;                    //< Cut on the |z| of the primary vertex
51   Double_t fEtaCut;                  //< Cut on the eta cut of the SPD tracklets
52
53   Int_t fTrackletMultiplicity;       //< SPD tracklets multiplicity in the current event
54
55   TList *fTriggerList;               //< list of all trigger histos
56   TList *fSingleMuonList;            //< List of all single muons histos 
57   TList *fDimuonList;                //< List of all dimuons histos
58   TList *fMonteCarloList;            //< List of all histos containing MC info
59
60
61   void Init();
62   Bool_t CheckEventAOD();
63   Bool_t CheckEventESD();
64   void ComputeMultiplicity();
65   Bool_t IsUsableMuon(AliAODTrack *track);
66   Bool_t IsUsableMuon(AliESDMuonTrack *track);
67   void FillHistosAOD(Int_t triggerClass);
68   void FillHistosESD(Int_t triggerClass);
69   void FillHistosMC();
70
71   ClassDef(AliAnalysisTaskMuonCollisionMultiplicity, 1);
72 };
73     
74 #endif
75