]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEsecVtx.h
Update of ACORDE-QA-Raw data histograms (now they go from -0.5 to 59.5)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEsecVtx.h
CommitLineData
259c3296 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
50685501 15//
16// Secondary vertexing construction Class
17// Construct secondary vertex from Beauty hadron with electron and
18// hadrons, then apply selection criteria
19//
259c3296 20
dbe3abbe 21#ifndef ALIHFESECVTX_H
22#define ALIHFESECVTX_H
259c3296 23
24#ifndef ROOT_TObject
75d81601 25//#include <TObject.h>
259c3296 26#endif
27
9bcfd1ab 28#ifndef ROOT_THnSparse
29#include <THnSparse.h>
30#endif
31
259c3296 32class TH1F;
33class TH2F;
34class TString;
35class AliESDEvent;
9bcfd1ab 36class AliAODEvent;
37class AliVTrack;
259c3296 38class AliESDtrack;
9bcfd1ab 39class AliAODTrack;
259c3296 40class AliStack;
9bcfd1ab 41class AliHFEpairs;
42class AliHFEsecVtxs;
259c3296 43
44//________________________________________________________________
45class AliHFEsecVtx : public TObject {
46
47 public:
48 AliHFEsecVtx();
49 AliHFEsecVtx(const AliHFEsecVtx &p); // copy constructor
50 AliHFEsecVtx &operator=(const AliHFEsecVtx &); // assignment operator
51 virtual ~AliHFEsecVtx();
52
9bcfd1ab 53 void CreateHistograms(TList *qaList);
54
55 Bool_t HasMCData() const { return TestBit(kHasMCData); };
56 Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
57 Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); };
58
59 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData,hasMCdata); };
60 void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
61 void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
62 void SetEvent(AliESDEvent* const ESD){fESD1=ESD;}; // set ESD pointer
63 void SetEventAOD(AliAODEvent* const AOD){fAOD1=AOD;}; // set ESD pointer
64 void SetStack(AliStack* const stack){fStack=stack;}; // set stack pointer
65 void SetMCArray(TClonesArray* const mcarry){fMCArray=mcarry;} // set mcarray pointer
66 void SetUseMCPID(Bool_t usemcpid){fUseMCPID=usemcpid;};
259c3296 67
dbe3abbe 68
69 Int_t GetMCPID(AliESDtrack *track); // return MC pid
9bcfd1ab 70 Int_t GetMCPDG(AliVTrack *track); // return MC pid
71 Int_t GetPairOriginESD(AliESDtrack* track1, AliESDtrack* track2); // return pair origin as a pdg code
72 Int_t GetPairOriginAOD(AliAODTrack* track1, AliAODTrack* track2); // return pair origin as a pdg code
73 Int_t GetPairCode(const AliVTrack* const track1, const AliVTrack* const track2); // return corresponding pair code to pdg code
dbe3abbe 74 Int_t GetElectronSource(Int_t mclabel); // return origin of the electron
9bcfd1ab 75 Int_t GetPDG(AliVTrack *track); // return pdg
76 void GetESDPID(AliESDtrack *track, Int_t &recpid, Double_t &recprob); //return esd pid likelihood
77 void GetPrimaryCondition();
dbe3abbe 78
9bcfd1ab 79 TClonesArray *HFEpairs();
80 TClonesArray *HFEsecvtxs();
dbe3abbe 81
9bcfd1ab 82 void AddHFEpairToArray(const AliHFEpairs* const pair);
83 void AddHFEsecvtxToArray(const AliHFEsecVtxs* const secvtx);
dbe3abbe 84
9bcfd1ab 85 void InitHFEpairs();
86 void InitHFEsecvtxs();
259c3296 87
9bcfd1ab 88 void DeleteHFEpairs();
89 void DeleteHFEsecvtxs();
90
91 Bool_t SingleTrackCut(AliESDtrack* track1) const; // single track cut
92 void PairAnalysis(AliVTrack* ESDtrack1, AliVTrack* ESDtrack2, Int_t index2); // do e-h analysis
93 void RunSECVTX(AliVTrack *track); // run secondary vertexing algorithm
259c3296 94
9bcfd1ab 95 void MakeContainer(); // make containers
259c3296 96
9bcfd1ab 97 protected:
98 void Init();
99 void FindSECVTXCandid(AliVTrack *track);
100 void CalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3); // calculated distinctive variables
259c3296 101
102
103 private:
9bcfd1ab 104 enum{
105 kHasMCData = BIT(15), // bitset for mc data usage
106 kAODanalysis = BIT(16) // bitset for aod analysis
107 };
108 enum {kAll, kDirectCharm, kDirectBeauty, kBeautyCharm, kGamma, kPi0, kElse, kBeautyGamma, kBeautyPi0, kBeautyElse}; // electron origin
109 enum {kCharm=4, kBeauty=5}; // quark flavor
259c3296 110
111 AliESDEvent* fESD1; // ESD pointer
9bcfd1ab 112 AliAODEvent* fAOD1; // AOD pointer
113 AliStack* fStack; // stack pointer
259c3296 114
9bcfd1ab 115 Bool_t fUseMCPID; // if use MC pid
259c3296 116
dbe3abbe 117 TString fkSourceLabel[10]; // electron source label
259c3296 118
9bcfd1ab 119 Int_t fNparents; // number of heavy hadrons to be considered
120 Int_t fParentSelect[2][7]; // heavy hadron species
259c3296 121
9bcfd1ab 122 Int_t fNoOfHFEpairs; // number of e-h pairs
123 Int_t fNoOfHFEsecvtxs; // number of secondary vertexes
259c3296 124
9bcfd1ab 125 TClonesArray *fHFEpairs; //! Array of pair
126 TClonesArray *fHFEsecvtxs; //! Array of secondary vertexes
127 TClonesArray *fMCArray; //! mc array pointer
259c3296 128
9bcfd1ab 129 Double_t fPVx; // primary vertex copy x
130 Double_t fPVy; // primary vertex copy y
131 Double_t fCosPhi; // cos of opening angle of two pair vertex
132 Double_t fSignedLxy; // signed Lxy of secondary vertex
133 Double_t fKFchi2; // chi2 of secondary vertex
134 Double_t fInvmass; // invariant mass of secondary vertex
135 Double_t fInvmassSigma; // invariant mass sigma of secondary vertex
136 Double_t fKFip; // impact parameter of secondary vertex track
259c3296 137
9bcfd1ab 138 THnSparseF *fPairQA; // qa histos for pair analysis
139 THnSparseF *fSecvtxQA; // qa histos for secvtx
140 TList *fSecVtxList; // list for secondary vertexing outputs
259c3296 141
9bcfd1ab 142 ClassDef(AliHFEsecVtx,0);
259c3296 143};
144
145#endif