1 #ifndef ALIANALYSISTASKMUONTREEBUILDER_H
2 #define ALIANALYSISTASKMUONTREEBUILDER_H
4 #include "AliAnalysisTaskSE.h"
7 // Analysis task for muon-dimuon analysis
8 // Works for real and MC events
9 // author: L. Bianchi - Universita' & INFN Torino
13 class TLorentzVector ;
23 class AliAnalysisTaskMuonTreeBuilder : public AliAnalysisTaskSE {
26 AliAnalysisTaskMuonTreeBuilder();
27 AliAnalysisTaskMuonTreeBuilder(const Char_t* name);
28 AliAnalysisTaskMuonTreeBuilder& operator= (const AliAnalysisTaskMuonTreeBuilder& c);
29 AliAnalysisTaskMuonTreeBuilder(const AliAnalysisTaskMuonTreeBuilder& c);
30 virtual ~AliAnalysisTaskMuonTreeBuilder();
32 // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
33 void UserExec(Option_t *option);
34 void Terminate(Option_t *);
35 void UserCreateOutputObjects();
39 void SetIsMC (Bool_t flagMC) {fIsMC=flagMC;}
40 void SetBeamEnergy (Double_t en) {fBeamEnergy=en;}
44 Double_t fNevt ; // event counter
45 Double_t fBeamEnergy ; // Energy of the beam (required for the CS angle)
46 TList *fOutput ; // output
47 TTree *fOutputTree ; //! tree output
54 Int_t fNumMuonTracks ; // variables for single mu
55 Int_t fNumSPDTracklets;
56 Int_t fNumContributors;
63 Double_t fpxUncorr[10];
64 Double_t fpyUncorr[10];
65 Double_t fpzUncorr[10];
70 Double_t fTrackChi2[10];
71 Double_t fMatchTrigChi2[10];
75 Double_t fRAtAbsEnd[10];
77 Int_t fNumDimuons; // variables for dimuons
78 Int_t fDimuonConstituent[45][2];
79 Double_t fpTdimuon[45];
80 Double_t fpxdimuon[45];
81 Double_t fpydimuon[45];
82 Double_t fpzdimuon[45];
83 Double_t fydimuon[45];
84 Double_t fiMassdimuon[45];
90 //Int_t fIsPrimary[10];
99 Int_t FindDimuFamily(AliMCParticle* mcTrack1,AliMCParticle* mcTrack2, AliMCEvent* mcEvent) const;
100 Int_t FindMuFamily(AliMCParticle* mcTrack, AliMCEvent* mcEvent) const;
101 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;
102 Double_t Rap (Double_t e, Double_t pz) const;
103 // Double_t Imass(Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t) const;
104 // Double_t Rap(Double_t, Double_t) const;
105 Double_t Phideg(Double_t phi) const;
107 // Double_t CostCS (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t);
108 // Double_t CostHE (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t);
109 // Double_t PhiCS (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t);
110 // Double_t PhiHE (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t);
111 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);
112 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);
113 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);
114 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);
116 ClassDef(AliAnalysisTaskMuonTreeBuilder,1);