Update of the Xiaoming code for pp900 first muon analysis. Fixing wanirngs and violti...
[u/mrichter/AliRoot.git] / PWG3 / 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
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
4292b3b6 14#include <TNamed.h>
fd1d0cb9 15#include <TString.h>
16
17class TList;
18class AliAODEvent;
19class AliESDEvent;
4292b3b6 20
fd1d0cb9 21class AliMuonInfoStoreRD;
22class AliDimuInfoStoreRD;
23class AliMuonInfoStoreMC;
24class AliDimuInfoStoreMC;
4292b3b6 25
26class AliMuonsHFHeader : public TNamed {
27 public :
28
29 AliMuonsHFHeader();
fd1d0cb9 30 AliMuonsHFHeader(const AliMuonsHFHeader &src);
31 AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
4292b3b6 32 ~AliMuonsHFHeader();
33
fd1d0cb9 34 ULong64_t TriggerMask() const { return fTriggerMask; }
35 TString FiredTrigger() const { return fFiredTrigger; }
36 Int_t NFiredTrigger() const { return fNFiredTrigger; }
37 Int_t EventType() const { return fEventType; }
38 Bool_t IsPhysicsTriggered() const { return fIsPhysicsTriggered; }
39 Bool_t IsPhysicsAccepted() const { return fIsPhysicsAccepted; }
40 Bool_t IsTriggerFired(TString trigger);
41
42 void GetXYZ(Double_t *vtx) const { for (Int_t i=3; i--;) vtx[i]=fVtx[i]; }
43 Double_t Vx() const { return fVtx[0]; }
44 Double_t Vy() const { return fVtx[1]; }
45 Double_t Vz() const { return fVtx[2]; }
46 Double_t Vt() const { return TMath::Sqrt(fVtx[0]*fVtx[0] + fVtx[1]*fVtx[1]); }
47 Bool_t IsUnrecoVertex() const { return fUnrecoVertex; }
48 Int_t NVtxContributors() const { return fNContributors; }
49
50 void GetXYZSPD(Double_t *vtx) const { for (Int_t i=3; i--;) vtx[i]=fVtxSPD[i]; }
51 Double_t VxSPD() const { return fVtxSPD[0]; }
52 Double_t VySPD() const { return fVtxSPD[1]; }
53 Double_t VzSPD() const { return fVtxSPD[2]; }
54 Double_t VtSPD() const { return TMath::Sqrt(fVtxSPD[0]*fVtxSPD[0] + fVtxSPD[1]*fVtxSPD[1]); }
55 Bool_t IsUnrecoVtxSPD() const { return fUnrecoVtxSPD; }
56 Int_t NVtxContributorsSPD() const { return fNContributorsSPD; }
57 Int_t NTrackletsSPD() const { return fNTrackletsSPD; }
58
59 Double_t Centrality() const { return fCentrality; }
60
61 void SetEvent(AliAODEvent *event);
62 void SetEvent(AliESDEvent *event);
63
64 void EventSelection(TString triggerName);
65 void CreateHistograms(TList *listEvent=0, TList *listMuon=0, TList *listDimu=0);
66 void CreateHistosEventH(TList *list);
67 void CreateHistosMuonRD(TList *list);
68 void CreateHistosDimuRD(TList *list);
69 void CreateHistosMuonMC(TList *list);
70 void CreateHistosDimuMC(TList *list);
71
72 void FillHistosEventH(TList *list);
73 void FillHistosMuonRD(TList *list, AliMuonInfoStoreRD* const muonStoreRD);
74 void FillHistosDimuRD(TList *list, AliDimuInfoStoreRD* const dimuStoreRD);
75 void FillHistosMuonMC(TList *list, AliMuonInfoStoreMC* const muonStoreMC);
76 void FillHistosDimuMC(TList *list, AliDimuInfoStoreMC* const dimuStoreMC);
77
78 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
79 static const Bool_t IsEventSelected() { return fgIsEventSelected; }
80 static void SetAnaMode(Int_t anaMode=0) { fgAnaMode=anaMode; }
81 static void SetIsMC(Int_t isMC=kFALSE) { fgIsMC =isMC; }
82 static void SetSelectionCuts(Double_t cuts[3]) { for (Int_t i=3; i--;) fgCuts[i]=cuts[i]; }
4292b3b6 83
84 private :
85
fd1d0cb9 86 void SetFiredTrigger(TString str);
87 void PhysicsTriggerAna(const AliESDEvent *esd);
88 void EventSelection();
89
90 static const TString fgkStdBranchName; // Standard branch name
91 static Bool_t fgIsEventSelected; // flag for event selection
92 static Int_t fgAnaMode; // analysis mode
93 static Bool_t fgIsMC; // flag to use MC
94 static Double_t fgCuts[3]; // 0, low limit of num. of vtx contributors
95 // 1, up limit of vz
96 // 2, up limit of vt
97
98 ULong64_t fTriggerMask; // trigger mask
99 TString fFiredTrigger; // fired of trigger class of event
100 Int_t fNFiredTrigger; // num. of fired trigger class
101 Bool_t fIsPhysicsTriggered; // flag of final physics trigger from AliPhysicsSelection
102 Bool_t fIsPhysicsAccepted; // flag of physiscs selection w/ BKG Id
103 Int_t fEventType; // event type
104
105 Double32_t fVtx[3]; // position of vtx
106 Bool_t fUnrecoVertex; // flag for unreco vtx
107 Int_t fNContributors; // num. of contributors of vtx rec
108
109 Double32_t fVtxSPD[3]; // position of vtx
110 Bool_t fUnrecoVtxSPD; // flag for unreco vtx
111 Int_t fNContributorsSPD; // num. of contributors of vtx rec
112 Int_t fNTrackletsSPD; // num. of SPD tracklets
113
114 Double_t fCentrality; // event centrality class
115
116 ClassDef(AliMuonsHFHeader, 2)
4292b3b6 117};
118
119#endif