]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliMuonsHFHeader.h
Add a new variable, that is the radial position of the track at the end
[u/mrichter/AliRoot.git] / PWG3 / muon / AliMuonsHFHeader.h
1 #ifndef ALIMUONSHFHEADER_H
2 #define ALIMUONSHFHEADER_H
3
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
14 #include <TNamed.h>
15 #include <TString.h>
16
17 class TList;
18 class AliAODEvent;
19 class AliESDEvent;
20
21 class AliMuonInfoStoreRD;
22 class AliDimuInfoStoreRD;
23 class AliMuonInfoStoreMC;
24 class AliDimuInfoStoreMC;
25
26 class AliMuonsHFHeader : public TNamed {
27  public :
28
29   AliMuonsHFHeader();
30   AliMuonsHFHeader(const AliMuonsHFHeader &src);
31   AliMuonsHFHeader& operator=(const AliMuonsHFHeader &src);
32   ~AliMuonsHFHeader();
33
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   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]; }
83
84  private :
85
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)
117 };
118
119 #endif