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 */
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 //***********************************************************
21 class AliMuonInfoStoreRD;
22 class AliDimuInfoStoreRD;
23 class AliMuonInfoStoreMC;
24 class AliDimuInfoStoreMC;
26 class AliMuonsHFHeader : public TNamed {
30 AliMuonsHFHeader(const AliMuonsHFHeader &src);
31 AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
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);
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; }
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; }
59 Double_t Centrality() const { return fCentrality; }
61 void SetEvent(AliAODEvent *event);
62 void SetEvent(AliESDEvent *event);
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);
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);
78 static const char* StdBranchName() { return fgkStdBranchName.Data(); }
79 const static 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]; }
86 void SetFiredTrigger(TString str);
87 void PhysicsTriggerAna(const AliESDEvent *esd);
88 void EventSelection();
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
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
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
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
114 Double_t fCentrality; // event centrality class
116 ClassDef(AliMuonsHFHeader, 2)