]>
Commit | Line | Data |
---|---|---|
3a9a3487 | 1 | #ifndef AliD0toKpiAnalysis_H |
2 | #define AliD0toKpiAnalysis_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | //------------------------------------------------------------------------- | |
7 | // Class AliD0toKpiAnalysis | |
8 | // Reconstruction and analysis D0 -> K^- pi^+ | |
9 | // | |
10 | // Origin: A. Dainese andrea.dainese@pd.infn.it | |
11 | //------------------------------------------------------------------------- | |
12 | ||
13 | #include <Riostream.h> | |
14 | #include <TString.h> | |
15 | #include <TNamed.h> | |
16 | #include "AliESD.h" | |
17 | #include "AliITStrackV2.h" | |
18 | #include "AliITSVertexerTracks.h" | |
d681bb2d | 19 | #include "AliESDVertex.h" |
3a9a3487 | 20 | #include "AliV0vertexer.h" |
21 | #include "AliV0vertex.h" | |
22 | #include "AliD0toKpi.h" | |
23 | ||
24 | //----------------------------------------------------------------------------- | |
25 | class AliD0toKpiAnalysis : public TNamed { | |
26 | public: | |
27 | // | |
28 | AliD0toKpiAnalysis(); | |
29 | virtual ~AliD0toKpiAnalysis(); | |
30 | ||
31 | void ApplySelection(const Char_t *inName="AliD0toKpi.root", | |
32 | const Char_t *outName="AliD0toKpi_sele.root") const; | |
33 | void FindCandidates(Int_t evFirst=0,Int_t evLast=0, | |
34 | const Char_t *outName="AliD0toKpi.root"); | |
35 | void FindCandidatesESD(Int_t evFirst=0,Int_t evLast=0, | |
36 | const Char_t *outName="AliD0toKpi.root"); | |
37 | void PrintStatus() const; | |
38 | void SetBz(Double_t bz=-9999.) { fBz=bz; return; } | |
39 | void SetVertexOnTheFly() { fVertexOnTheFly=kTRUE; return; } | |
40 | void SetSimulation() { fSim=kTRUE; return; } | |
41 | void SetOnlySignal() { fOnlySignal=kTRUE; return; } | |
42 | void SetPtCut(Double_t pt=0.) { fPtCut=pt; return; } | |
43 | void Setd0Cut(Double_t d0=0.) { fd0Cut=d0; return; } | |
44 | void SetMassCut(Double_t deltaM=1000.) { fMassCut=deltaM; return; } | |
45 | void SetD0Cuts(Double_t cut0=1000.,Double_t cut1=100000., | |
46 | Double_t cut2=1.1,Double_t cut3=0.,Double_t cut4=0., | |
47 | Double_t cut5=100000.,Double_t cut6=100000., | |
48 | Double_t cut7=100000000.,Double_t cut8=-1.1); | |
49 | void SetD0Cuts(const Double_t cuts[9]); | |
50 | void SetPID(TString pid="TOFparam_PbPb") { fPID=pid; return; } | |
51 | void SetDebug() { fDebug=kTRUE; return; } | |
52 | // | |
53 | private: | |
54 | // | |
55 | Double_t fBz; // value of the magnetic field | |
56 | Bool_t fVertexOnTheFly; // flag for primary vertex reco on the fly | |
57 | Bool_t fSim; // flag for the analysis of simulated events | |
58 | Bool_t fOnlySignal; // write to file only signal candidates (for sim) | |
59 | TString fPID; // PID scheme | |
60 | ||
61 | Double_t fV1[3]; // primary vertex position (in cm) | |
62 | Double_t fPtCut; // minimum track pt (in GeV/c) | |
63 | Double_t fd0Cut; // minimum track |rphi impact parameter| (in micron) | |
64 | Double_t fMassCut; // maximum of |InvMass-MD0| (in GeV) | |
65 | Double_t fD0Cuts[9]; // cuts on D0 candidates (see SetD0Cuts()) | |
66 | // (to be passed to function AliD0toKpi::Select()) | |
67 | // 0 = inv. mass half width [GeV] | |
68 | // 1 = dca [micron] | |
69 | // 2 = cosThetaStar | |
70 | // 3 = pTK [GeV/c] | |
71 | // 4 = pTPi [GeV/c] | |
72 | // 5 = d0K [micron] upper limit! | |
73 | // 6 = d0Pi [micron] upper limit! | |
74 | // 7 = d0d0 [micron^2] | |
75 | // 8 = cosThetaPoint | |
76 | ||
77 | Bool_t fDebug; // debug option | |
78 | // | |
79 | Double_t CalculateTOFmass(Double_t mom,Double_t length,Double_t time) const; | |
80 | void MakeTracksRefFile(Int_t evFirst=0,Int_t evLast=0) const; | |
81 | void MakeTracksRefFileESD() const; | |
82 | Bool_t SelectInvMass(const Double_t p[6]) const; | |
83 | void SelectTracks(TTree &trkTree, | |
84 | TObjArray &trksP,Int_t *trkEntryP,Int_t &nTrksP, | |
85 | TObjArray &trksN,Int_t *trkEntryN,Int_t &nTrksN) const; | |
86 | void SelectTracksESD(AliESD &event, | |
87 | TObjArray &trksP,Int_t *trkEntryP,Int_t &nTrksP, | |
88 | TObjArray &trksN,Int_t *trkEntryN,Int_t &nTrksN) const; | |
89 | void SelectTracksESDvtx(AliESD &event,TTree *trkTree, | |
90 | TObjArray &trksP,Int_t *trkEntryP,Int_t &nTrksP, | |
91 | TObjArray &trksN,Int_t *trkEntryN,Int_t &nTrksN) const; | |
92 | void SetVertex1(Double_t x=0.,Double_t y=0.,Double_t z=0.) | |
93 | { fV1[0]=x;fV1[1]=y;fV1[2]=z; return; } | |
94 | void SimulationInfo(TTree *treeD0in,TTree *treeD0out) const; | |
95 | Bool_t SingleTrkCuts(const AliITStrackV2& trk) const; | |
96 | // | |
97 | ClassDef(AliD0toKpiAnalysis,1) // Reconstruction of D0 candidates class | |
98 | }; | |
99 | ||
100 | ||
101 | #endif | |
102 | ||
103 | ||
104 | ||
105 | ||
106 | ||
107 | ||
108 | ||
109 |