]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muon/AliMuonInfoStoreRD.h
Update of the Xiaoming code for pp900 first muon analysis. Fixing wanirngs and violti...
[u/mrichter/AliRoot.git] / PWG3 / muon / AliMuonInfoStoreRD.h
CommitLineData
fd1d0cb9 1#ifndef ALIMUONINFOSTORERD_H
2#define ALIMUONINFOSTORERD_H
3
4/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//***********************************************************
8// Class AliMuonInfoStoreRD
9// class used to extract and store reco info of muon track
10// Author: X-M. Zhang, zhang@clermont.in2p3.fr
11// zhangxm@iopp.ccnu.edu.cn
12//***********************************************************
13
14#include <TObject.h>
15#include <TVector3.h>
16#include <TString.h>
17
18class AliAODTrack;
19class AliESDMuonTrack;
20
21class AliMuonInfoStoreRD : public TObject {
22 public:
23
24 AliMuonInfoStoreRD();
25 AliMuonInfoStoreRD(AliAODTrack *trk);
26 AliMuonInfoStoreRD(AliESDMuonTrack *trk);
27 AliMuonInfoStoreRD(const AliMuonInfoStoreRD &src);
28 AliMuonInfoStoreRD& operator=(const AliMuonInfoStoreRD &src);
29 virtual ~AliMuonInfoStoreRD();
30
31 TVector3 Momentum() const { return fMomentum; }
32 TVector3 MomentumAtDCA() const { return fMomentumAtDCA; }
33
34 void XYZAtDCA(Double_t dca[3]) const { for (Int_t i=3; i--;) dca[i]=fDCA[i]; }
35 Double_t DCA() const { return TMath::Sqrt(fDCA[0]*fDCA[0]+fDCA[1]*fDCA[1]); }
36
37 Short_t Charge() const { return fCharge; }
38 Int_t MatchTrigger() const { return fMatchTrigger; }
39 Int_t NClusters() const { return fNClusters; }
40 UInt_t MUONClusterMap() const { return fMUONClusterMap; }
41 Double_t Chi2FitMomentum() const { return fChi2FitMomentum; }
42 Double_t Chi2MatchTrigger() const { return fChi2MatchTrigger; }
43
44 Bool_t MuonSelection();
45
46 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
47 static const void SelectionCust(Double_t cuts[10]) { for (Int_t i=10; i--;) cuts[i]=fgCuts[i]; }
48 static void SetSelectionCuts(Double_t cuts[10]) { for (Int_t i=10; i--;) fgCuts[i]=cuts[i]; }
49
50 private:
51
52 void FillMuonInfo(AliAODTrack *trk);
53 void FillMuonInfo(AliESDMuonTrack *trk);
54
55 void SetMomentum(Double_t p[3]) { fMomentum.SetXYZ(p[0],p[1],p[2]); }
56 void SetMomentumAtDCA(Double_t p[3]) { fMomentumAtDCA.SetXYZ(p[0],p[1],p[2]); }
57
58 void SetDCA(Double_t dca[3]) { for (Int_t i=3; i--;) fDCA[i]=dca[i]; }
59 void SetCharge(Short_t charge) { fCharge = charge; }
60 void SetNClusters(Int_t ncls) { fNClusters = ncls; }
61 void SetMatchTrigger(Int_t trigger) { fMatchTrigger = trigger; }
62 void SetMUONClusterMap(UInt_t clMap) { fMUONClusterMap = clMap; }
63 void SetChi2FitMomentum(Double_t chi2) { fChi2FitMomentum = chi2; }
64 void SetChi2MatchTrigger(Double_t chi2) { fChi2MatchTrigger = chi2; }
65
66 static const TString fgkStdBranchName; // Standard branch name
67 static Double_t fgCuts[10]; // 0, min of 3-momentum
68 // 1, max of 3-momentum
69 // 2, pt_Min
70 // 3, pt_Max
71 // 4, eta_Min
72 // 5, eta_Max
73 // 6, dca_Min
74 // 7, dca_Max
75 // 8, about trigger matching
76 // 9, about trigger matching
77
78 TVector3 fMomentum; // momentum corrected w vtx
79 TVector3 fMomentumAtDCA; // momentum at DCA in vtx plane
80
81 Double_t fDCA[3]; // distance of closet approach
82 Short_t fCharge; // track charge
83 Int_t fMatchTrigger; // type of match trigger
84 Int_t fNClusters; // number of clusters in the track
85 UInt_t fMUONClusterMap; // map of MUON clusters
86 Double_t fChi2FitMomentum; // chi2/NDF of momentum fit
87 Double_t fChi2MatchTrigger; // chi2 of trigger matching
88
89 ClassDef(AliMuonInfoStoreRD, 4);
90};
91
92#endif