]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEelecbackground.h
New classes (Markus)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEelecbackground.h
CommitLineData
02524e30 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 **************************************************************************/
15//
16// Secondary vertexing construction Class
17// Construct secondary vertex from Beauty hadron with electron and
18// hadrons, then apply selection criteria
19//
20
21#ifndef ALIHFEELECBACKGROUND_H
22#define ALIHFEELECBACKGROUND_H
23
24#ifndef ROOT_TObject
25//#include <TObject.h>
26#endif
27
28class AliESDEvent;
29class AliESDVertex;
30class AliAODEvent;
31class AliESDtrack;
32class AliAODTrack;
33class AliMCEvent;
34
35//________________________________________________________________
36class AliHFEelecbackground : public TObject {
37
38 public:
39 AliHFEelecbackground();
40 AliHFEelecbackground(const AliHFEelecbackground &p);
41 AliHFEelecbackground &operator=(const AliHFEelecbackground &);
42 virtual ~AliHFEelecbackground();
43 virtual Bool_t Load(const Char_t *filename);
44
45 void CreateHistograms(TList* const qaList);
46
47 Bool_t HasMCData() const { return TestBit(kHasMCData); };
48 Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
49 Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); };
50
51 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData,hasMCdata); };
52 void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
53 void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
54 void SetEvent(AliESDEvent* const ESD);
55 void SetEventAOD(AliAODEvent* const AOD){fAOD1=AOD;};
56 void SetMCEvent(AliMCEvent* const mcEvent){fMCEvent=mcEvent;};
57 void SetUseMCPID(Bool_t usemcpid){fUseMCPID=usemcpid;};
58
59 TList *GetList() const { return fList; };
60 TList *GetListPostProcess() const { return fListPostProcess; };
61
62 Bool_t SingleTrackCut(AliESDtrack* const track1) const;
63 void PairAnalysis(AliESDtrack* const track, AliESDtrack* const trackpart);
64 void FillOutput(Double_t *results, Double_t *resultsr, Int_t sign);
65 void PostProcess();
66 void Plot() const;
67
68 private:
69
70 enum{
71 kHasMCData = BIT(15), // bitset for mc data usage
72 kAODanalysis = BIT(16) // bitset for aod analysis
73 };
74 enum {kPp=0, kNn=1, kSs=2, kR=3, kOs=4};
75 enum {kOos=0, kOss=1, kOr=2, kOdiff=3}; // outputs
76 enum{
77 kElectronFromGamma = 0,
78 kElectronFromPi0 = 1,
79 kElectronFromC = 2,
80 kElectronFromB = 3,
81 kElectronFromEta = 4
82 };
83 enum {kNOutput=4, kNSignComb=5, kNMCInfo=5};
84
85 void CalculateMotherVariable(AliESDtrack* const track, AliESDtrack* const trackpart, Double_t *results);
86 void CalculateMotherVariableR(AliESDtrack* const track, AliESDtrack* const trackpart, Double_t *results);
87 Int_t IsMotherGamma(Int_t tr);
88 Int_t IsMotherPi0(Int_t tr);
89 Int_t IsMotherEta(Int_t tr);
90 Int_t IsMotherC(Int_t tr);
91 Int_t IsMotherB(Int_t tr);
92 Int_t GetPdg(Int_t tr);
93 Int_t GetLabMother(Int_t tr);
94
95
96 AliESDEvent* fESD1; // ESD pointer
97 AliAODEvent* fAOD1; // AOD pointer
98 AliMCEvent* fMCEvent; // MC event
99 Double_t fBz; // Magnetic field
100 const AliESDVertex *fkVertex; // Primary vertex
101 static const Double_t fgkMe; // Mass of the electron
102
103
104 Bool_t fUseMCPID; // if use MC pid
105
106 Double_t fPtESD; // pt of tagged electron
107 Int_t fIndexTrack; // index track
108 Int_t fIndexTrackPart; // index track part
109 Int_t fPdg; // pdg code track
110 Int_t fLabMother; // label first mother track
111 Int_t fIsFrom; // is track from
112 Int_t fMotherGamma; // Gamma, mother of track
113 Int_t fMotherPi0; // Pi0, mother of track
114 Int_t fMotherC; // C, mother of track
115 Int_t fMotherB; // B, mother of track
116 Int_t fMotherEta; // eta, mother of track
117 Bool_t fIsPartner; // Are partners
118
119
120 TList *fList; // list for outputs
121 TList *fListPostProcess; // list for postprocess
122
123
124 ClassDef(AliHFEelecbackground,0);
125};
126
127#endif