1 #ifndef ALIMUONINFOSTORERD_H
2 #define ALIMUONINFOSTORERD_H
4 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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 //***********************************************************
19 class AliESDMuonTrack;
21 class AliMuonInfoStoreRD : public TObject {
25 AliMuonInfoStoreRD(AliAODTrack *trk);
26 AliMuonInfoStoreRD(AliESDMuonTrack *trk);
27 AliMuonInfoStoreRD(const AliMuonInfoStoreRD &src);
28 AliMuonInfoStoreRD& operator=(const AliMuonInfoStoreRD &src);
29 virtual ~AliMuonInfoStoreRD();
31 TVector3 Momentum() const { return fMomentum; }
33 void XYZAtDCA(Double_t dca[3]) const { for (Int_t i=3; i--;) dca[i]=fDCA[i]; }
34 Double_t DCA() const { return TMath::Sqrt(fDCA[0]*fDCA[0]+fDCA[1]*fDCA[1]); }
36 Short_t Charge() const { return fCharge; }
37 Int_t MatchTrigger() const { return fMatchTrigger; }
38 Double_t Chi2FitMomentum() const { return fChi2FitMomentum; }
39 Double_t Chi2MatchTrigger() const { return fChi2MatchTrigger; }
40 Double_t RabsEnd() const { return fRabsEnd; }
44 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
45 static void SelectionCust(Double_t cuts[12]) { for (Int_t i=12; i--;) cuts[i]=fgCuts[i]; }
46 static void SetSelectionCuts(Double_t cuts[12]) { for (Int_t i=12; i--;) fgCuts[i]=cuts[i]; }
50 void FillMuonInfo(AliAODTrack *trk);
51 void FillMuonInfo(AliESDMuonTrack *trk);
53 void SetMomentum(Double_t p[3]) { fMomentum.SetXYZ(p[0],p[1],p[2]); }
55 void SetDCA(Double_t dca[3]) { for (Int_t i=3; i--;) fDCA[i]=dca[i]; }
56 void SetCharge(Short_t charge) { fCharge = charge; }
57 void SetMatchTrigger(Int_t trigger) { fMatchTrigger = trigger; }
58 void SetChi2FitMomentum(Double_t chi2) { fChi2FitMomentum = chi2; }
59 void SetChi2MatchTrigger(Double_t chi2) { fChi2MatchTrigger = chi2; }
60 void SetRabsEnd(Double_t rAbsEnd) { fRabsEnd = rAbsEnd; }
62 static const TString fgkStdBranchName; // Standard branch name
63 static Double_t fgCuts[12]; // 0, min of 3-momentum
64 // 1, max of 3-momentum
71 // 8, about trigger matching
72 // 9, about trigger matching
76 TVector3 fMomentum; // momentum corrected w vtx
78 Double_t fDCA[3]; // distance of closet approach
79 Short_t fCharge; // track charge
80 Int_t fMatchTrigger; // type of match trigger
81 Double_t fChi2FitMomentum; // chi2/NDF of momentum fit
82 Double_t fChi2MatchTrigger; // chi2 of trigger matching
83 Double_t fRabsEnd; // position at the end of front absorber
85 ClassDef(AliMuonInfoStoreRD, 4);