]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muon/AliAnalysisTaskMuonTreeBuilder.h
some fixes wrt to the AliAODExtension behavior (Laurent)
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAnalysisTaskMuonTreeBuilder.h
CommitLineData
9fe33e0b 1#ifndef ALIANALYSISTASKMUONTREEBUILDER_H
2#define ALIANALYSISTASKMUONTREEBUILDER_H
3
4#include "AliAnalysisTaskSE.h"
5#include "TMath.h"
6
7// Analysis task for muon-dimuon analysis
8// Works for real and MC events
9// author: L. Bianchi - Universita' & INFN Torino
10
11class TH1I;
12class TParticle ;
13class TLorentzVector ;
9fe33e0b 14class TFile ;
15class AliStack ;
16class AliESDtrack;
17class AliVParticle;
18class AliMCParticle;
19class AliMCEvent;
20
21
22class AliAnalysisTaskMuonTreeBuilder : public AliAnalysisTaskSE {
23 public:
24
25 AliAnalysisTaskMuonTreeBuilder();
26 AliAnalysisTaskMuonTreeBuilder(const Char_t* name);
27 AliAnalysisTaskMuonTreeBuilder& operator= (const AliAnalysisTaskMuonTreeBuilder& c);
28 AliAnalysisTaskMuonTreeBuilder(const AliAnalysisTaskMuonTreeBuilder& c);
29 virtual ~AliAnalysisTaskMuonTreeBuilder();
30
31 // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
32 void UserExec(Option_t *option);
33 void Terminate(Option_t *);
34 void UserCreateOutputObjects();
35
36
37 // Data types
38 void SetIsMC (Bool_t flagMC) {fIsMC=flagMC;}
39 void SetBeamEnergy (Double_t en) {fBeamEnergy=en;}
40
41 protected:
42
c9726e00 43 Double_t fNevt ; // event counter
44 Double_t fBeamEnergy ; // Energy of the beam (required for the CS angle)
45 TList *fOutput ; // output
46 TTree *fOutputTree ; //! tree output
9fe33e0b 47
c9726e00 48 Bool_t fIsMC; // if MC truth has to be read
9fe33e0b 49
c9726e00 50 Bool_t fIsSelected; // physics selection flag
51 char fTrigClass[100]; // fired trigger classes
9fe33e0b 52
c9726e00 53 Int_t fNumMuonTracks ; // muon tracks in the event
54 Int_t fNumSPDTracklets; // spd tracklets
55 Int_t fNumContributors; // n contributors
56 Double_t fVertex[3]; // x,y,z vertex
57 Double_t fpT[10]; // single mu pT
58 Double_t fE[10]; // single mu E
59 Double_t fpx[10]; // single mu px
60 Double_t fpy[10]; // single mu py
61 Double_t fpz[10]; // single mu pz
62 Double_t fpxUncorr[10]; // single mu px uncorrected
63 Double_t fpyUncorr[10]; // single mu py uncorrected
64 Double_t fpzUncorr[10]; // single mu pz uncorrected
65 Double_t fy[10]; // single mu y
66 Double_t feta[10]; // single mu eta
67 Double_t fphi[10]; // single mu phi
68 Int_t fMatchTrig[10]; // single mu match trigger
69 Double_t fTrackChi2[10]; // single mu chi2 track
70 Double_t fMatchTrigChi2[10]; // single mu chi2 of match trigger
71 Double_t fDCA[10]; // single mu DCA
72 Short_t fCharge[10]; // single mu charge
73 Int_t fMuFamily[10]; // single mu provenience
74 Double_t fRAtAbsEnd[10]; // single mu distance from beam center at end abs
9fe33e0b 75
c9726e00 76 Int_t fNumDimuons; // dimuons in the event
77 Int_t fDimuonConstituent[45][2]; // reference to single mus
78 Double_t fpTdimuon[45]; // dimuon pT
79 Double_t fpxdimuon[45]; // dimuon px
80 Double_t fpydimuon[45]; // dimuon py
81 Double_t fpzdimuon[45]; // dimuon pz
82 Double_t fydimuon[45]; // dimuon y
83 Double_t fiMassdimuon[45]; // dimuon invariant mass
84 Double_t fcostCS[45]; // dimuon cos theta Collins-Soper
85 Double_t fcostHE[45]; // dimuon cos theta Helicity
86 Double_t fphiCS[45]; // dimuon phi Collins-Soper
87 Double_t fphiHE[45]; // dimuon phi Helicity
9fe33e0b 88
89 //Int_t fIsPrimary[10];
c9726e00 90 Int_t fPDG[10]; // PDG single mu
91 Int_t fPDGmother[10]; // PDG mother single mu
92 Int_t fPDGdimu[45]; // PDG dimu
9fe33e0b 93
94
95
96
97
98 Int_t FindDimuFamily(AliMCParticle* mcTrack1,AliMCParticle* mcTrack2, AliMCEvent* mcEvent) const;
99 Int_t FindMuFamily(AliMCParticle* mcTrack, AliMCEvent* mcEvent) const;
100 Double_t Imass (Double_t e1, Double_t px1, Double_t py1, Double_t pz1, Double_t e2, Double_t px2, Double_t py2, Double_t pz2) const;
101 Double_t Rap (Double_t e, Double_t pz) const;
9fe33e0b 102 Double_t Phideg(Double_t phi) const;
103
9fe33e0b 104 Double_t CostCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
105 Double_t CostHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
106 Double_t PhiCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
107 Double_t PhiHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
108
109 ClassDef(AliAnalysisTaskMuonTreeBuilder,1);
110};
111
112#endif