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 | // |
ef0182f7 |
10 | // Origin: A. Dainese andrea.dainese@lnl.infn.it |
3a9a3487 |
11 | //------------------------------------------------------------------------- |
12 | |
3a9a3487 |
13 | #include <TString.h> |
14 | #include <TNamed.h> |
15 | #include "AliESD.h" |
ef0182f7 |
16 | #include "AliRun.h" |
3a9a3487 |
17 | |
18 | //----------------------------------------------------------------------------- |
19 | class AliD0toKpiAnalysis : public TNamed { |
20 | public: |
21 | // |
22 | AliD0toKpiAnalysis(); |
23 | virtual ~AliD0toKpiAnalysis(); |
24 | |
25 | void ApplySelection(const Char_t *inName="AliD0toKpi.root", |
26 | const Char_t *outName="AliD0toKpi_sele.root") const; |
ef0182f7 |
27 | void FindCandidates(Int_t evFirst=0,Int_t evLast=0, |
28 | const Char_t *outName="AliD0toKpi.root"); |
29 | void MakeTracksRefFile(AliRun *gAlice,Int_t evFirst=0,Int_t evLast=0) const; |
3a9a3487 |
30 | void PrintStatus() const; |
7b84ea57 |
31 | void SetVertexOnTheFly() { fVertexOnTheFly=kTRUE; } |
32 | void SetSimulation() { fSim=kTRUE; } |
33 | void SetOnlySignal() { fOnlySignal=kTRUE; } |
34 | void SetPtCut(Double_t pt=0.) { fPtCut=pt; } |
35 | void Setd0Cut(Double_t d0=0.) { fd0Cut=d0; } |
36 | void SetMassCut(Double_t deltaM=1000.) { fMassCut=deltaM; } |
3a9a3487 |
37 | void SetD0Cuts(Double_t cut0=1000.,Double_t cut1=100000., |
38 | Double_t cut2=1.1,Double_t cut3=0.,Double_t cut4=0., |
39 | Double_t cut5=100000.,Double_t cut6=100000., |
40 | Double_t cut7=100000000.,Double_t cut8=-1.1); |
41 | void SetD0Cuts(const Double_t cuts[9]); |
7b84ea57 |
42 | void SetPID(const Char_t * pid="TOFparam_PbPb") { fPID=pid; } |
3a9a3487 |
43 | // |
44 | private: |
45 | // |
3a9a3487 |
46 | Bool_t fVertexOnTheFly; // flag for primary vertex reco on the fly |
47 | Bool_t fSim; // flag for the analysis of simulated events |
48 | Bool_t fOnlySignal; // write to file only signal candidates (for sim) |
49 | TString fPID; // PID scheme |
50 | |
51 | Double_t fV1[3]; // primary vertex position (in cm) |
52 | Double_t fPtCut; // minimum track pt (in GeV/c) |
53 | Double_t fd0Cut; // minimum track |rphi impact parameter| (in micron) |
54 | Double_t fMassCut; // maximum of |InvMass-MD0| (in GeV) |
55 | Double_t fD0Cuts[9]; // cuts on D0 candidates (see SetD0Cuts()) |
56 | // (to be passed to function AliD0toKpi::Select()) |
57 | // 0 = inv. mass half width [GeV] |
58 | // 1 = dca [micron] |
59 | // 2 = cosThetaStar |
60 | // 3 = pTK [GeV/c] |
61 | // 4 = pTPi [GeV/c] |
62 | // 5 = d0K [micron] upper limit! |
63 | // 6 = d0Pi [micron] upper limit! |
64 | // 7 = d0d0 [micron^2] |
65 | // 8 = cosThetaPoint |
66 | |
3a9a3487 |
67 | // |
68 | Double_t CalculateTOFmass(Double_t mom,Double_t length,Double_t time) const; |
3a9a3487 |
69 | Bool_t SelectInvMass(const Double_t p[6]) const; |
ef0182f7 |
70 | void SelectTracks(AliESD *event, |
71 | TObjArray &trksP,Int_t *trkEntryP,Int_t &nTrksP, |
72 | TObjArray &trksN,Int_t *trkEntryN,Int_t &nTrksN) const; |
3a9a3487 |
73 | void SetVertex1(Double_t x=0.,Double_t y=0.,Double_t z=0.) |
7b84ea57 |
74 | { fV1[0]=x;fV1[1]=y;fV1[2]=z; } |
3a9a3487 |
75 | void SimulationInfo(TTree *treeD0in,TTree *treeD0out) const; |
c7bafca9 |
76 | Bool_t SingleTrkCuts(const AliESDtrack& trk, Double_t b) const; |
3a9a3487 |
77 | // |
ef0182f7 |
78 | ClassDef(AliD0toKpiAnalysis,3) // Reconstruction of D0 candidates class |
3a9a3487 |
79 | }; |
80 | |
81 | |
82 | #endif |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |