]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliMuonsHFHeader.h
adding new sample component for RAW data analysis
[u/mrichter/AliRoot.git] / PWG3 / muon / AliMuonsHFHeader.h
1 #ifndef ALIMUONSHFHEADER_H
2 #define ALIMUONSHFHEADER_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 AliMuonsHFHeader
9 // class used to extract and store info at event level
10 // Author: X-M. Zhang, zhang@clermont.in2p3.fr
11 //                     zhangxm@iopp.ccnu.edu.cn
12 //***********************************************************
13
14 #include <TNamed.h>
15 #include <TString.h>
16
17 class TList;
18 class AliAODEvent;
19 class AliESDEvent;
20
21 class AliMuonInfoStoreRD;
22 class AliDimuInfoStoreRD;
23 class AliMuonInfoStoreMC;
24 class AliDimuInfoStoreMC;
25
26 class AliMuonsHFHeader : public TNamed {
27  public :
28
29   AliMuonsHFHeader();
30   AliMuonsHFHeader(const AliMuonsHFHeader &src);
31   AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
32   ~AliMuonsHFHeader();
33
34   void GetXYZ(Double_t *vtx)  const { for (Int_t i=3; i--;) vtx[i]=fVtx[i]; }
35   Double_t Vx()               const { return fVtx[0]; }
36   Double_t Vy()               const { return fVtx[1]; }
37   Double_t Vz()               const { return fVtx[2]; }
38   Double_t Vt()               const { return TMath::Sqrt(fVtx[0]*fVtx[0] + fVtx[1]*fVtx[1]); }
39   Int_t VtxContrsN()          const { return fVtxContrsN; }
40   TString FiredTriggerClass() const { return fFiredTriggerClass; }
41   Double_t Centrality()       const { return fCentrality; }
42
43   void SetEvent(AliVVertex *vertex);
44   void SetFiredTriggerClass(TString trigger) { fFiredTriggerClass=trigger; }
45   Bool_t EventSelection();
46
47   void CreateHistograms(TList *list);
48   void FillHistosEvnH(TList *list);
49   void FillHistosMuon(TList *list, AliMuonInfoStoreRD* infoStore, Int_t src=-1);
50   void FillHistosDimu(TList *list, AliDimuInfoStoreRD* infoStore, Int_t src=-1);
51
52   static const char* StdBranchName()             { return fgkStdBranchName.Data();          }
53   static void SetAnaMode(Int_t anaMode=0)        { fgAnaMode=anaMode;                       }
54   static void SetIsMC(Int_t isMC=kFALSE)         { fgIsMC   =isMC;                          }
55   static void SetSelectionCuts(Double_t cuts[3]) { for (Int_t i=3; i--;) fgCuts[i]=cuts[i]; }
56
57  private :
58
59   void CreateHistosEvnH(TList *list);
60   void CreateHistosMuon(TList *list, TString sName="");
61   void CreateHistosDimu(TList *list, TString sName="");
62
63   static const TString fgkStdBranchName;  // Standard branch name
64   static Int_t  fgAnaMode;                // analysis mode
65   static Bool_t fgIsMC;                   // flag to use MC
66   static Double_t fgCuts[3];  // 0, low limit of num. of vtx contributors
67                               // 1, up limit of vz
68                               // 2, up limit of vt
69
70   Double_t fVtx[3];   // position of vtx
71   Int_t fVtxContrsN;  // num. of contributors of vtx rec
72
73   TString fFiredTriggerClass; // trigger class
74
75   Double_t fCentrality;  // event centrality class
76
77   ClassDef(AliMuonsHFHeader, 3)
78 };
79
80 #endif