]>
Commit | Line | Data |
---|---|---|
2a14a7b1 | 1 | #include <TROOT.h> |
2 | #include <TStyle.h> | |
3 | #include <TH1D.h> | |
4 | #include <TObjArray.h> | |
5 | #include <TCanvas.h> | |
6 | #include <TMath.h> | |
7 | #include <TAxis.h> | |
8 | ||
9 | #include "AliDielectronSignalExt.h" | |
10 | #include "AliDielectronCFdraw.h" | |
11 | #include "AliDielectron.h" | |
12 | ||
13 | /* | |
14 | gSystem->AddIncludePath("-I/data/Work/software/svngsi/dielectron/trunk/dielectron"); | |
15 | .L PlotDataResults.C+g | |
16 | PlotDataResuts("/data/Work/train/V005.data/2010-10-29_2144.3552/mergedPeriods/data/7TeV/LHC10c.pass2/jpsi.root"); | |
17 | PlotDataResuts("/data/Work/train/V005.data/2010-10-21_2342.3445/mergedPeriods/data/7TeV/LHC10pass2/jpsi.root") | |
18 | PlotDataResuts("/data/Work/train/V005.data/2010-10-21_2342.3445/mergedPeriods/data/7TeV/LHC10d.pass1/wiechula_jpsi.root"); | |
19 | */ | |
20 | ||
21 | AliDielectronSignalBase* GetSignalLS(AliDielectronCFdraw &d, Int_t step, const char* nameAdd); | |
22 | AliDielectronSignalBase* GetSignalRot(AliDielectronCFdraw &d, Int_t step, const char* nameAdd); | |
23 | void DrawSpectra(AliDielectronSignalBase *sig, const char* cname); | |
24 | ||
25 | //_______________________________________ | |
26 | void PlotDataResuts(const char* filename) | |
27 | { | |
28 | AliDielectronCFdraw d(filename); | |
29 | ||
30 | Int_t stepFirst=0, stepAny=1; | |
31 | ||
32 | gStyle->SetOptStat(0); | |
33 | //Set common Ranges | |
34 | // d.SetRangeUser("Leg1_Pt",1.,1000.); | |
35 | // d.SetRangeUser("Leg2_Pt",1.,1000.); | |
36 | ||
37 | //============================ | |
38 | //SPD first | |
39 | // | |
40 | ||
41 | //--- Like sign subtraction | |
42 | AliDielectronSignalBase *sigFirst=GetSignalLS(d,stepFirst,"First"); | |
43 | DrawSpectra(sigFirst,"cFirst"); | |
44 | //--- Rotation subtraction | |
45 | AliDielectronSignalBase *sigFirstRot=GetSignalRot(d,stepFirst,"FirstRot"); | |
46 | DrawSpectra(sigFirstRot,"cFirstRot"); | |
47 | ||
48 | //============================ | |
49 | //SPD any | |
50 | // | |
51 | AliDielectronSignalBase *sigAny=GetSignalLS(d,stepAny,"Any"); | |
52 | DrawSpectra(sigAny,"cAny"); | |
53 | //--- Rotation subtraction | |
54 | AliDielectronSignalBase *sigAnyRot=GetSignalRot(d,stepAny,"AnyRot"); | |
55 | DrawSpectra(sigAnyRot,"cAnyRot"); | |
56 | ||
57 | } | |
58 | ||
59 | ||
60 | //_______________________________________ | |
61 | AliDielectronSignalBase *GetSignalLS(AliDielectronCFdraw &d, Int_t step, const char* nameAdd) | |
62 | { | |
63 | // | |
64 | // Get Extracted signal from likesign method | |
65 | // | |
66 | ||
67 | TObjArray *arr=new TObjArray; | |
68 | arr->SetOwner(); | |
69 | ||
70 | for (Int_t iType=0;iType<3;++iType){ | |
71 | d.SetRangeUser("PairType",iType,iType); | |
72 | arr->AddAt(d.Project("M",step),iType); | |
73 | } | |
74 | ||
75 | AliDielectronSignalExt *sig=new AliDielectronSignalExt; | |
76 | sig->SetIntegralRange(2.9,3.15); | |
77 | sig->SetMethod(AliDielectronSignalBase::kLikeSign); | |
78 | sig->Process(arr); | |
79 | ||
80 | delete arr; | |
81 | return sig; | |
82 | } | |
83 | ||
84 | //_______________________________________ | |
85 | AliDielectronSignalBase *GetSignalRot(AliDielectronCFdraw &d, Int_t step, const char* nameAdd) | |
86 | { | |
87 | // | |
88 | // Get Extracted signal from likesign method | |
89 | // | |
90 | ||
91 | TObjArray *arr=new TObjArray; | |
92 | arr->SetOwner(); | |
93 | ||
94 | Int_t iType=AliDielectron::kEv1PM; | |
95 | d.SetRangeUser("PairType",iType,iType); | |
96 | arr->AddAt(d.Project("M",step),iType); | |
97 | ||
98 | iType=AliDielectron::kEv1PMRot; | |
99 | d.SetRangeUser("PairType",iType,iType); | |
100 | arr->AddAt(d.Project("M",step),iType); | |
101 | ||
102 | AliDielectronSignalExt *sig=new AliDielectronSignalExt; | |
103 | sig->SetIntegralRange(2.9,3.15); | |
104 | sig->SetMethod(AliDielectronSignalBase::kRotation); | |
105 | sig->Process(arr); | |
106 | ||
107 | delete arr; | |
108 | return sig; | |
109 | } | |
110 | ||
111 | //_______________________________________ | |
112 | void DrawSpectra(AliDielectronSignalBase *sig, const char* cname) | |
113 | { | |
114 | // | |
115 | // | |
116 | // | |
117 | gStyle->SetOptTitle(0); | |
118 | TCanvas *c=(TCanvas*)gROOT->FindObject(cname); | |
119 | if (!c) c=new TCanvas(cname,cname,400,600); | |
120 | c->Clear(); | |
121 | c->Divide(1,2,0,0); | |
122 | c->cd(1); | |
123 | gPad->SetTopMargin(0.01); | |
124 | gPad->SetRightMargin(0.01); | |
125 | ||
126 | gPad->SetBottomMargin(0); | |
127 | gPad->SetGridx(); | |
128 | gPad->SetGridy(); | |
129 | gPad->SetTickx(); | |
130 | gPad->SetTicky(); | |
131 | ||
132 | TH1 *hUS=sig->GetUnlikeSignHistogram(); | |
133 | hUS->SetMarkerStyle(20); | |
134 | hUS->SetMarkerSize(0.7); | |
135 | hUS->SetMarkerColor(kRed); | |
136 | hUS->SetLineColor(kRed); | |
137 | hUS->SetStats(0); | |
138 | ||
139 | TH1* hBackground=sig->GetBackgroundHistogram(); | |
140 | hBackground->SetMarkerStyle(24); | |
141 | hBackground->SetMarkerSize(0.7); | |
142 | hBackground->SetStats(0); | |
143 | hBackground->SetMarkerColor(kBlue); | |
144 | hBackground->SetLineColor(kBlue); | |
145 | ||
146 | hUS->Draw(); | |
147 | hBackground->Draw("same"); | |
148 | ||
149 | c->cd(2); | |
150 | gPad->SetRightMargin(0.01); | |
151 | gPad->SetGridx(); | |
152 | gPad->SetGridy(); | |
153 | gPad->SetTickx(); | |
154 | gPad->SetTicky(); | |
155 | gPad->SetTopMargin(0); | |
156 | ||
157 | TH1* hSignal=sig->GetSignalHistogram(); | |
158 | hSignal->SetMarkerStyle(20); | |
159 | hSignal->SetMarkerSize(0.7); | |
160 | hSignal->SetMarkerColor(kRed); | |
161 | hSignal->SetLineColor(kRed); | |
162 | hSignal->Draw(); | |
163 | } | |
164 |