Update of the Xiaoming code for pp900 first muon analysis. Fixing wanirngs and violti...
[u/mrichter/AliRoot.git] / PWG3 / muon / AliDimuInfoStoreRD.h
1 #ifndef ALIDIMUINFOSTORERD_H
2 #define ALIDIMUINFOSTORERD_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 AliDimuInfoStoreRD
9 // class used to extract and store reco info of dimu candidate
10 // Author: X-M. Zhang, zhang@clermont.in2p3.fr
11 //                     zhangxm@iopp.ccnu.edu.cn
12 //***********************************************************
13
14 #include <TObject.h>
15 #include <TRef.h>
16 #include <TVector3.h>
17 #include <TString.h>
18
19 #include "AliMuonInfoStoreRD.h"
20
21 class AliDimuInfoStoreRD : public TObject {
22  public:
23
24   AliDimuInfoStoreRD();
25   AliDimuInfoStoreRD(AliMuonInfoStoreRD* const trk0, AliMuonInfoStoreRD* const trk1);
26   AliDimuInfoStoreRD(const AliDimuInfoStoreRD &src);
27   AliDimuInfoStoreRD& operator=(const AliDimuInfoStoreRD &src);
28   virtual ~AliDimuInfoStoreRD();
29
30   AliMuonInfoStoreRD* Muon(Int_t i) const { return (i<2 ? (AliMuonInfoStoreRD*)(fMuonRef[i].GetObject()) : 0x0); }
31
32   TVector3 Momentum() const { return fMomentum; }
33   Short_t  Charge()   const { return fCharge;   }
34   Double_t InvM()     const { return fInvM;     }
35
36   Bool_t DimuSelection();
37
38   static const char* StdBranchName() { return fgkStdBranchName.Data(); }
39   static void SetSelectionCuts(Double_t cuts[10]) { for (Int_t i=10; i--;) fgCutd[i]=cuts[i]; }
40
41  protected:
42
43   void FillDimuInfo();
44   TRef fMuonRef[2];  // ref to the two corresponding muon tracks
45
46  private:
47
48   static const TString fgkStdBranchName;  // Standard branch name
49   static Double_t fgCutd[10];             // single muon cuts for dimuon selection
50
51   TVector3 fMomentum;  // 3-momentum of dimuon
52   Short_t  fCharge;    // charge of dimuon
53   Double_t fInvM;      // invariance mass of dimuon
54
55   ClassDef(AliDimuInfoStoreRD, 3);
56 };
57
58 #endif