]>
Commit | Line | Data |
---|---|---|
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 | ||
11 | class TH1I; | |
12 | class TParticle ; | |
13 | class TLorentzVector ; | |
9fe33e0b | 14 | class TFile ; |
15 | class AliStack ; | |
16 | class AliESDtrack; | |
17 | class AliVParticle; | |
18 | class AliMCParticle; | |
19 | class AliMCEvent; | |
20 | ||
21 | ||
22 | class 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 |