1 #ifndef ALIMUONSHFHEADER_H
2 #define ALIMUONSHFHEADER_H
4 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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 //***********************************************************
23 class AliMuonInfoStoreRD;
24 class AliDimuInfoStoreRD;
25 class AliMuonInfoStoreMC;
26 class AliDimuInfoStoreMC;
28 class AliMuonsHFHeader : public TNamed {
32 AliMuonsHFHeader(const AliMuonsHFHeader &src);
33 AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
36 void GetXYZ(Double_t *vtx) const { for (Int_t i=3; i--;) vtx[i]=fVtx[i]; }
37 Double_t Vx() const { return fVtx[0]; }
38 Double_t Vy() const { return fVtx[1]; }
39 Double_t Vz() const { return fVtx[2]; }
40 Double_t Vt() const { return TMath::Sqrt(fVtx[0]*fVtx[0] + fVtx[1]*fVtx[1]); }
41 Int_t VtxContrsN() const { return fVtxContrsN; }
42 TString FiredTriggerClass() const { return fFiredTriggerClass; }
43 Float_t Centrality() const { return fCentrality; }
44 UInt_t SelectionMask() const { return fSelMask; }
45 Bool_t IsMB() const { return fIsMB; }
46 Bool_t IsMU() const { return fIsMU; }
49 void SetSelectionMask(UInt_t mask) { fSelMask=mask; }
50 void SetVertex(AliVVertex *vertex);
51 void SetFiredTriggerClass(TString trigger);
52 void SetCentrality(Float_t centr) { fCentrality=centr; }
54 void CreateHistograms(TList *list);
55 void FillHistosEvnH(TList *list);
56 void FillHistosMuon(TList *list, AliMuonInfoStoreRD* infoStore, Int_t src=-1);
57 void FillHistosDimu(TList *list, AliDimuInfoStoreRD* infoStore, Int_t src=-1);
59 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
60 static void SetAnaMode(Int_t anaMode=0) { fgAnaMode=anaMode; }
61 static void SetIsMC(Int_t isMC=kFALSE) { fgIsMC =isMC; }
62 static void SetSelectionCuts(Double_t cuts[5]) { for (Int_t i=5; i--;) fgCuts[i]=cuts[i]; }
66 void CreateHistosEvnH(TList *list, TString sName="");
67 void CreateHistosMuon(TList *list, TString sName="");
68 void CreateHistosDimu(TList *list, TString sName="");
70 static const TString fgkStdBranchName; // Standard branch name
71 static Int_t fgAnaMode; // analysis mode
72 static Bool_t fgIsMC; // flag to use MC
73 static Double_t fgCuts[5]; // 0, low limit of num. of vtx contributors
79 UInt_t fSelMask; // mask of physics selection
80 Bool_t fIsMB; // is min. bias triggered event (for real data)
81 Bool_t fIsMU; // is MUON triggered event (for real data)
82 Double_t fVtx[3]; // position of vtx
83 Int_t fVtxContrsN; // num. of contributors of vtx rec
85 TString fFiredTriggerClass; // trigger class
87 Float_t fCentrality; // event centrality class
89 ClassDef(AliMuonsHFHeader, 5)