]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonInfoStoreRD.h
AliAODEvent::GetHeader now return AliVHeader
[u/mrichter/AliRoot.git] / PWG / 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
27de2dfb 7/* $Id$ */
8
fd1d0cb9 9//***********************************************************
10// Class AliMuonInfoStoreRD
11// class used to extract and store reco info of muon track
12// Author: X-M. Zhang, zhang@clermont.in2p3.fr
13// zhangxm@iopp.ccnu.edu.cn
14//***********************************************************
15
16#include <TObject.h>
17#include <TVector3.h>
18#include <TString.h>
9bbc42ca 19#include <TMath.h>
fd1d0cb9 20
21class AliAODTrack;
22class AliESDMuonTrack;
23
24class AliMuonInfoStoreRD : public TObject {
25 public:
26
27 AliMuonInfoStoreRD();
9bbc42ca 28 AliMuonInfoStoreRD(AliAODTrack *trk, UInt_t selMask);
29 AliMuonInfoStoreRD(AliESDMuonTrack *trk, UInt_t selMask);
fd1d0cb9 30 AliMuonInfoStoreRD(const AliMuonInfoStoreRD &src);
31 AliMuonInfoStoreRD& operator=(const AliMuonInfoStoreRD &src);
32 virtual ~AliMuonInfoStoreRD();
33
9bbc42ca 34 TVector3 MomentumAtVtx() const { return fMomentumAtVtx; }
35 TVector3 MomentumAtDCA() const { return fMomentumAtDCA; }
36 TVector3 MomentumUncor() const { return fMomentumUncor; }
fd1d0cb9 37
38 void XYZAtDCA(Double_t dca[3]) const { for (Int_t i=3; i--;) dca[i]=fDCA[i]; }
39 Double_t DCA() const { return TMath::Sqrt(fDCA[0]*fDCA[0]+fDCA[1]*fDCA[1]); }
40
9bcac085 41 Short_t Charge() const { return fCharge; }
42 Int_t MatchTrigger() const { return fMatchTrigger; }
43 Double_t Chi2Tracker() const { return fChi2FitMomentum; }
44 Double_t Chi2Trigger() const { return fChi2MatchTrigger; }
45 Double_t RabsEnd() const { return fRabsEnd; }
9bbc42ca 46 UInt_t SelMask() const { return fSelMask; }
47 Bool_t IsSelected(const UInt_t filter) { return ((fSelMask & filter) == filter); }
48 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
fd1d0cb9 49
50 private:
51
52 void FillMuonInfo(AliAODTrack *trk);
53 void FillMuonInfo(AliESDMuonTrack *trk);
54
9bbc42ca 55 void SetMomentumAtVtx(Double_t p[3]) { fMomentumAtVtx.SetXYZ(p[0],p[1],p[2]); }
56 void SetMomentumAtDCA(Double_t p[3]) { fMomentumAtDCA.SetXYZ(p[0],p[1],p[2]); }
57 void SetMomentumUncor(Double_t p[3]) { fMomentumUncor.SetXYZ(p[0],p[1],p[2]); }
58 void SetDCA(Double_t dca[3]) { for (Int_t i=3; i--;) fDCA[i]=dca[i]; }
1195bb6f 59 void SetCharge(Short_t charge) { fCharge = charge; }
60 void SetMatchTrigger(Int_t trigger) { fMatchTrigger = trigger; }
61 void SetChi2FitMomentum(Double_t chi2) { fChi2FitMomentum = chi2; }
62 void SetChi2MatchTrigger(Double_t chi2) { fChi2MatchTrigger = chi2; }
63 void SetRabsEnd(Double_t rAbsEnd) { fRabsEnd = rAbsEnd; }
fd1d0cb9 64
65 static const TString fgkStdBranchName; // Standard branch name
9bbc42ca 66
67 TVector3 fMomentumAtVtx; // momentum corrected w vtx
68 TVector3 fMomentumAtDCA; // momentum at DCA in vtx plane
69 TVector3 fMomentumUncor; // momentum at first station
fd1d0cb9 70
71 Double_t fDCA[3]; // distance of closet approach
72 Short_t fCharge; // track charge
73 Int_t fMatchTrigger; // type of match trigger
fd1d0cb9 74 Double_t fChi2FitMomentum; // chi2/NDF of momentum fit
75 Double_t fChi2MatchTrigger; // chi2 of trigger matching
1195bb6f 76 Double_t fRabsEnd; // position at the end of front absorber
9bbc42ca 77 UInt_t fSelMask; // mask of single muon selection
fd1d0cb9 78
9bbc42ca 79 ClassDef(AliMuonInfoStoreRD, 7);
fd1d0cb9 80};
81
82#endif