]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonsHFHeader.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonsHFHeader.h
CommitLineData
4292b3b6 1#ifndef ALIMUONSHFHEADER_H
2#define ALIMUONSHFHEADER_H
3
fd1d0cb9 4/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
27de2dfb 7/* $Id$ */
8
fd1d0cb9 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
4292b3b6 16#include <TNamed.h>
fd1d0cb9 17#include <TString.h>
18
19class TList;
9bbc42ca 20class AliMCEvent;
21class AliInputEventHandler;
4292b3b6 22
fd1d0cb9 23class AliMuonInfoStoreRD;
24class AliDimuInfoStoreRD;
25class AliMuonInfoStoreMC;
26class AliDimuInfoStoreMC;
4292b3b6 27
28class AliMuonsHFHeader : public TNamed {
d387f518 29 public:
4292b3b6 30
31 AliMuonsHFHeader();
fd1d0cb9 32 AliMuonsHFHeader(const AliMuonsHFHeader &src);
33 AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
4292b3b6 34 ~AliMuonsHFHeader();
35
d387f518 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 Int_t CentQA() const { return fCentQA;}
48 Double32_t EventPlane() const { return fEventPlane; }
49 Bool_t IsSelected();
50
51 void SetEventInfo(AliInputEventHandler* const handler);
1195bb6f 52
53 void CreateHistograms(TList *list);
54 void FillHistosEvnH(TList *list);
326edc3a 55 void FillHistosMuon(TList *list, AliMuonInfoStoreRD* infoStore, Int_t src=0);
56 void FillHistosDimu(TList *list, AliDimuInfoStoreRD* infoStore, Int_t src=0);
1195bb6f 57
58 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
9bcac085 59 static void SetSelectionCuts(Double_t cuts[5]) { for (Int_t i=5; i--;) fgCuts[i]=cuts[i]; }
4292b3b6 60
d387f518 61 void SetAnaMode(Int_t anaMode) { fAnaMode = anaMode; }
62 void SetIsMC(Int_t isMC) { fIsMC = isMC; }
63 Int_t GetAnaMode() const { return fAnaMode; }
64 Int_t GetNumOfTracklets() const { return fNumOfTrklets; }
65 UInt_t GetTrgInpts() const { return fTrgInpts; }
66 Float_t GetImpParam() const { return fImpParam; }
67
68 Bool_t IsMC() const { return fIsMC; }
69 Bool_t IsEvtInChunk() const { return fIsEvtInChunk; }
70 Bool_t IsVtxSeled2013pA() const { return fIsVtxSeled2013pA; }
71
72 enum { kV0M=0, kV0A, kV0C, kCL1, kZNA, kZNC };
73 Float_t Centrality(Int_t centEstor=0);
74
75 enum {
76 kPUc1z1 = BIT(0), // (minContributor=3, minZdis=0.5)
77 kPUc1z2 = BIT(1), // (3, 0.6)
78 kPUc1z3 = BIT(2), // (3, 0.8)
79 kPUc1z4 = BIT(3), // (3, 0.9)
80 kPUc2z1 = BIT(4), // (minContributor=4, minZdis=0.5)
81 kPUc2z2 = BIT(5), // (4, 0.6)
82 kPUc2z3 = BIT(6), // (4, 0.8)
83 kPUc2z4 = BIT(7), // (4, 0.9)
84 kPUc3z1 = BIT(8), // (minContributor=5, minZdis=0.5)
85 kPUc3z2 = BIT(9), // (5, 0.6)
86 kPUc3z3 = BIT(10), // (5, 0.8)
87 kPUc3z4 = BIT(11), // (5, 0.9)
88 kPUc4z1 = BIT(12), // (minContributor=6, minZdis=0.5)
89 kPUc4z2 = BIT(13), // (6, 0.6)
90 kPUc4z3 = BIT(14), // (6, 0.8)
91 kPUc4z4 = BIT(15) // (6, 0.9)
92 };
93 UInt_t GetPUMask() const { return fPUMask; }
94
4292b3b6 95 private :
96
b46f66fc 97 void CreateHistosEvnH(TList *list, TString sName="");
1195bb6f 98 void CreateHistosMuon(TList *list, TString sName="");
99 void CreateHistosDimu(TList *list, TString sName="");
fd1d0cb9 100
d387f518 101 UInt_t CollectPUMask(AliVEvent *event); // collect the mask for the plie-up identification
102
103 static const TString fgkStdBranchName; // Standard branch name
104 static Double_t fgCuts[5]; // 0, low limit of num. of vtx contributors
105 // 1, up limit of vz
106 // 2, up limit of vt
107 // 3, centrality max
108 // 4, centrality min
109
110 Int_t fAnaMode; // analysis mode
111 Bool_t fIsMC; // flag to use MC
112 UInt_t fSelMask; // mask of physics selection
113 Bool_t fIsMB; // is min. bias triggered event (for real data)
114 Bool_t fIsMU; // is MUON triggered event (for real data)
115 Double_t fVtx[3]; // position of vtx
116 Double_t fVMC[3]; // position of vtx in MC
117 Int_t fVtxContrsN; // num. of contributors of vtx rec
118 TString fFiredTriggerClass; // trigger class
119 Int_t fCentQA; // quality of centrality determination
120 Double32_t fEventPlane; // event plane angle
121 Bool_t fIsEvtInChunk; // flag denotes whether the event is in the chunk
122 Bool_t fIsVtxSeled2013pA; // vertex selection based on 2013pA criteria
123 Int_t fNumOfTrklets; // num. of tracklets
124 UInt_t fTrgInpts; // trigger inputs (ID)
125 Float_t fImpParam; // impact parameter
126
127 Float_t fCentralityV0M; //centrality determinated via employed estimators
128 Float_t fCentralityV0A;
129 Float_t fCentralityV0C;
130 Float_t fCentralityCL1;
131 Float_t fCentralityZNA;
132 Float_t fCentralityZNC;
133
134 UInt_t fPUMask; // mask for tagging pile-up event
135
136 ClassDef(AliMuonsHFHeader, 8)
4292b3b6 137};
138
139#endif