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 //***********************************************************
21 class AliInputEventHandler;
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 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; }
53 void SetEventInfo(AliInputEventHandler* const handler, AliMCEvent* const eventMC);
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);
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]; }
67 void CreateHistosEvnH(TList *list, TString sName="");
68 void CreateHistosMuon(TList *list, TString sName="");
69 void CreateHistosDimu(TList *list, TString sName="");
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
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
88 TString fFiredTriggerClass; // trigger class
90 Float_t fCentrality; // event centrality class
91 Int_t fCentQA; // quality of centrality determination
92 Double32_t fEventPlane; // event plane angle
94 ClassDef(AliMuonsHFHeader, 7)