]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliMuonsHFHeader.h
d36509612154a8c20e6c28f50bac99419f6f84fa
[u/mrichter/AliRoot.git] / PWG / 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 /* $Id$ */ 
8
9 //***********************************************************
10 // Class AliMuonsHFHeader
11 // class used to extract and store info at event level
12 // Author: X-M. Zhang, zhang@clermont.in2p3.fr
13 //                     zhangxm@iopp.ccnu.edu.cn
14 //***********************************************************
15
16 #include <TNamed.h>
17 #include <TString.h>
18
19 class TList;
20 class AliMCEvent;
21 class AliInputEventHandler;
22
23 class AliMuonInfoStoreRD;
24 class AliDimuInfoStoreRD;
25 class AliMuonInfoStoreMC;
26 class AliDimuInfoStoreMC;
27
28 class AliMuonsHFHeader : public TNamed {
29  public :
30
31   AliMuonsHFHeader();
32   AliMuonsHFHeader(const AliMuonsHFHeader &src);
33   AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
34   ~AliMuonsHFHeader();
35
36   void GetVMC(Double_t *vtx)  const { for (Int_t i=3; i--;) vtx[i]=fVMC[i]; }
37   void GetXYZ(Double_t *vtx)  const { for (Int_t i=3; i--;) vtx[i]=fVtx[i]; }
38   Double_t Vx()               const { return fVtx[0]; }
39   Double_t Vy()               const { return fVtx[1]; }
40   Double_t Vz()               const { return fVtx[2]; }
41   Double_t Vt()               const { return TMath::Sqrt(fVtx[0]*fVtx[0] + fVtx[1]*fVtx[1]); }
42   Int_t VtxContrsN()          const { return fVtxContrsN; }
43   TString FiredTriggerClass() const { return fFiredTriggerClass; }
44   UInt_t SelectionMask()      const { return fSelMask; }
45   Bool_t IsMB()               const { return fIsMB; }
46   Bool_t IsMU()               const { return fIsMU; }
47   Bool_t IsPileupSPD()        const { return fIsPileupSPD; }
48   Float_t    Centrality()     const { return fCentrality; }
49   Int_t      CentQA()         const { return fCentQA;}
50   Double32_t EventPlane()     const { return fEventPlane; }
51   Bool_t IsSelected();
52
53   void SetEventInfo(AliInputEventHandler* const handler, AliMCEvent* const eventMC);
54
55   void CreateHistograms(TList *list);
56   void FillHistosEvnH(TList *list);
57   void FillHistosMuon(TList *list, AliMuonInfoStoreRD* infoStore, Int_t src=0);
58   void FillHistosDimu(TList *list, AliDimuInfoStoreRD* infoStore, Int_t src=0);
59
60   static const char* StdBranchName()             { return fgkStdBranchName.Data();          }
61   static void SetAnaMode(Int_t anaMode=0)        { fgAnaMode=anaMode;                       }
62   static void SetIsMC(Int_t isMC=kFALSE)         { fgIsMC   =isMC;                          }
63   static void SetSelectionCuts(Double_t cuts[5]) { for (Int_t i=5; i--;) fgCuts[i]=cuts[i]; }
64
65  private :
66
67   void CreateHistosEvnH(TList *list, TString sName="");
68   void CreateHistosMuon(TList *list, TString sName="");
69   void CreateHistosDimu(TList *list, TString sName="");
70
71   static const TString fgkStdBranchName;  // Standard branch name
72   static Int_t  fgAnaMode;                // analysis mode
73   static Bool_t fgIsMC;                   // flag to use MC
74   static Double_t fgCuts[5];  // 0, low limit of num. of vtx contributors
75                               // 1, up limit of vz
76                               // 2, up limit of vt
77                               // 3, centrality max
78                               // 4, centrality min
79
80   UInt_t fSelMask;     // mask of physics selection
81   Bool_t fIsMB;        // is min. bias triggered event (for real data)
82   Bool_t fIsMU;        // is MUON triggered event (for real data)
83   Bool_t fIsPileupSPD; // is pileup from SPD
84   Double_t fVtx[3];    // position of vtx
85   Double_t fVMC[3];    // position of vtx in MC
86   Int_t fVtxContrsN;   // num. of contributors of vtx rec
87
88   TString fFiredTriggerClass; // trigger class
89
90   Float_t fCentrality;  // event centrality class
91   Int_t   fCentQA;      // quality of centrality determination
92   Double32_t fEventPlane; // event plane angle
93
94   ClassDef(AliMuonsHFHeader, 7)
95 };
96
97 #endif