TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGPP / TRD / macros / makeTrendingDB.C
1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TSystem.h"
3 #include "TROOT.h"
4 #include "TFile.h"
5 #include "TBranch.h"
6 #include "TIterator.h"
7 #include "TTree.h"
8 #include "TH1.h"
9 #include "TF1.h"
10 #include "TCanvas.h"
11 #include "TError.h"
12 #include "PWGPP/TRD/info/AliTRDtrendingManager.h"
13
14 #endif
15
16 void makeTrendingDB(const Char_t *fl)
17 {
18 // Make trending of variable list "tl" from trending file list "fl"
19 // The trending value list should be formated "var1:var2:var3"
20 // The trending file from the list should be found on a path formated "your path"/runId/TRD.PerformanceTrend.root 
21   gSystem->Load("libANALYSIS.so");
22   gSystem->Load("libANALYSISalice.so");
23   gSystem->Load("libTender.so");
24   gSystem->Load("libCORRFW.so");
25   gSystem->Load("libPWGPP.so");
26   gSystem->Load("libPWGmuon.so");
27
28   const Int_t nt(322);
29   const Char_t *tvn[nt][2] = {
30     {"TRDcheckDET_NTracksEvent", "<N_{track}/Event>"},
31     {"TRDcheckDET_NTracksEventRMS", "RMS(N_{track}/Event)"},
32     {"TRDcheckDET_NTracksSector", "<N_{track}/Sector>"},
33     {"TRDcheckDET_NClustersTrack", "<N_{cls}/Track>"},
34     {"TRDcheckDET_NClustersTrackRMS", "RMS(N_{cls}/Track)"},
35     {"TRDcheckDET_NClustersTracklet", "<N_{cls}/Tracklet>"},
36     {"TRDcheckDET_NClustersTrackletRMS", "RMS(N_{cls}/Tracklet)"},
37     {"TRDcheckDET_NTrackletsTrack", "<N_{tracklet}/Track>"},
38     {"TRDcheckDET_NTrackletsTrackRMS", "RMS(N_{tracklet}/Track)"},
39     {"TRDcheckDET_ChargeTracklet", "<dQdl>"},
40     {"TRDcheckDET_ChargeTrackletRMS", "RMS(dQdl)"},
41     {"TRDcheckDET_PHplateau", "Plateau(<PH>)"},
42     {"TRDcheckDET_PHslope", "Slope(<PH>)"},
43     {"TRDcheckDET_PHamplificationPeak", "Peak(<PH>)"},
44 //=======================================================
45     {"TRDefficiency_pt", "TPC-TRD efficiency"},
46     {"TRDefficiency_pt0", "Eff.| #it{p_{t}[GeV/c]<0.5}"},
47     {"TRDefficiency_pt1", "Eff.| #it{0.5<=p_{t}[GeV/c]<0.8}"},
48     {"TRDefficiency_pt2", "Eff.| #it{0.8<=p_{t}[GeV/c]<1.5}"},
49     {"TRDefficiency_pt3", "Eff.| #it{1.5<=p_{t}[GeV/c]<5.0}"},
50     {"TRDefficiency_pt4", "Eff.| #it{5.0<=p_{t}[GeV/c]}"},
51 //=======================================================
52     {"TRDresolution_ClS0", "Cl :: #sigma(#Deltay) [cm] | Ly0"},
53     {"TRDresolution_ClS1", "Cl :: #sigma(#Deltay) [cm] | Ly1"},
54     {"TRDresolution_ClS2", "Cl :: #sigma(#Deltay) [cm] | Ly2"},
55     {"TRDresolution_ClS3", "Cl :: #sigma(#Deltay) [cm] | Ly3"},
56     {"TRDresolution_ClS4", "Cl :: #sigma(#Deltay) [cm] | Ly4"},
57     {"TRDresolution_ClS5", "Cl :: #sigma(#Deltay) [cm] | Ly5"},
58 //=======================================================
59     {"TRDresolution_TrkltY0", "Trklt :: <#Deltay> [cm] | Ly0"},
60     {"TRDresolution_TrkltY1", "Trklt :: <#Deltay> [cm] | Ly1"},
61     {"TRDresolution_TrkltY2", "Trklt :: <#Deltay> [cm] | Ly2"},
62     {"TRDresolution_TrkltY3", "Trklt :: <#Deltay> [cm] | Ly3"},
63     {"TRDresolution_TrkltY4", "Trklt :: <#Deltay> [cm] | Ly4"},
64     {"TRDresolution_TrkltY5", "Trklt :: <#Deltay> [cm] | Ly5"},
65     {"TRDresolution_TrkltYS0", "Trklt :: #sigma(#Deltay) [cm] | Ly0"},
66     {"TRDresolution_TrkltYS1", "Trklt :: #sigma(#Deltay) [cm] | Ly1"},
67     {"TRDresolution_TrkltYS2", "Trklt :: #sigma(#Deltay) [cm] | Ly2"},
68     {"TRDresolution_TrkltYS3", "Trklt :: #sigma(#Deltay) [cm] | Ly3"},
69     {"TRDresolution_TrkltYS4", "Trklt :: #sigma(#Deltay) [cm] | Ly4"},
70     {"TRDresolution_TrkltYS5", "Trklt :: #sigma(#Deltay) [cm] | Ly5"},
71 //=======================================================
72     {"TRDresolution_TrkInYnL0", "TrkIn :: <#Deltay>^{e-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
73     {"TRDresolution_TrkInYnl0", "TrkIn :: <#Deltay>^{e-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
74     {"TRDresolution_TrkInYni0", "TrkIn :: <#Deltay>^{e-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
75     {"TRDresolution_TrkInYnh0", "TrkIn :: <#Deltay>^{e-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
76     {"TRDresolution_TrkInYnH0", "TrkIn :: <#Deltay>^{e-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
77     {"TRDresolution_TrkInYn0", "TrkIn :: <#Deltay>^{e-} [cm]"},
78     {"TRDresolution_TrkInYSnL0", "TrkIn :: RMS(#Deltay)^{e-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
79     {"TRDresolution_TrkInYSnl0", "TrkIn :: RMS(#Deltay)^{e-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
80     {"TRDresolution_TrkInYSni0", "TrkIn :: RMS(#Deltay)^{e-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
81     {"TRDresolution_TrkInYSnh0", "TrkIn :: RMS(#Deltay)^{e-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
82     {"TRDresolution_TrkInYSnH0", "TrkIn :: RMS(#Deltay)^{e-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
83     {"TRDresolution_TrkInYSn0", "TrkIn :: RMS(#Deltay)^{e-} [cm]"},
84     {"TRDresolution_TrkInPhnL0", "TrkIn :: <#Delta#phi>^{e-}| #it{p_{t}[GeV/c]<0.5} [deg]"},
85     {"TRDresolution_TrkInPhnl0", "TrkIn :: <#Delta#phi>^{e-}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
86     {"TRDresolution_TrkInPhni0", "TrkIn :: <#Delta#phi>^{e-}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
87     {"TRDresolution_TrkInPhnh0", "TrkIn :: <#Delta#phi>^{e-}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
88     {"TRDresolution_TrkInPhnH0", "TrkIn :: <#Delta#phi>^{e-}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
89     {"TRDresolution_TrkInPhn0", "TrkIn :: <#Delta#phi>^{e-} [deg]"},
90     {"TRDresolution_TrkInPhSnL0", "TrkIn :: RMS<#Delta#phi>^{e-}| #it{p[GeV/c]<0.5} [deg]"},
91     {"TRDresolution_TrkInPhSnl0", "TrkIn :: RMS<#Delta#phi>^{e-}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
92     {"TRDresolution_TrkInPhSni0", "TrkIn :: RMS<#Delta#phi>^{e-}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
93     {"TRDresolution_TrkInPhSnh0", "TrkIn :: RMS<#Delta#phi>^{e-}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
94     {"TRDresolution_TrkInPhSnH0", "TrkIn :: RMS<#Delta#phi>^{e-}| #it{5.0<=p[GeV/c]} [deg]"},
95     {"TRDresolution_TrkInPhSn0", "TrkIn :: RMS<#Delta#phi>^{e-} [deg]"},
96     {"TRDresolution_TrkInQnL0", "TrkIn :: MPV(dQdl)^{e-}| #it{p[GeV/c]<0.5} [a.u.]"},
97     {"TRDresolution_TrkInQnl0", "TrkIn :: MPV(dQdl)^{e-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
98     {"TRDresolution_TrkInQni0", "TrkIn :: MPV(dQdl)^{e-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
99     {"TRDresolution_TrkInQnh0", "TrkIn :: MPV(dQdl)^{e-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
100     {"TRDresolution_TrkInQnH0", "TrkIn :: MPV(dQdl)^{e-}| #it{5.0<=p[GeV/c]} [a.u.]"},
101     {"TRDresolution_TrkInQn0", "TrkIn :: MPV(dQdl)^{e-} [a.u.]"},
102     {"TRDresolution_TrkInQSnL0", "TrkIn :: <dQdl>^{e-}| #it{p[GeV/c]<0.5} [a.u.]"},
103     {"TRDresolution_TrkInQSnl0", "TrkIn :: <dQdl>^{e-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
104     {"TRDresolution_TrkInQSni0", "TrkIn :: <dQdl>^{e-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
105     {"TRDresolution_TrkInQSnh0", "TrkIn :: <dQdl>^{e-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
106     {"TRDresolution_TrkInQSnH0", "TrkIn :: <dQdl>^{e-}| #it{5.0<=p[GeV/c]} [a.u.]"},
107     {"TRDresolution_TrkInQSn0", "TrkIn :: <dQdl>^{e-} [a.u.]"},
108     {"TRDresolution_TrkInYnL1", "TrkIn :: <#Deltay>^{#mu#pi-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
109     {"TRDresolution_TrkInYnl1", "TrkIn :: <#Deltay>^{#mu#pi-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
110     {"TRDresolution_TrkInYni1", "TrkIn :: <#Deltay>^{#mu#pi-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
111     {"TRDresolution_TrkInYnh1", "TrkIn :: <#Deltay>^{#mu#pi-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
112     {"TRDresolution_TrkInYnH1", "TrkIn :: <#Deltay>^{#mu#pi-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
113     {"TRDresolution_TrkInYn1", "TrkIn :: <#Deltay>^{#mu#pi-} [cm]"},
114     {"TRDresolution_TrkInYSnL1", "TrkIn :: RMS(#Deltay)^{#mu#pi-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
115     {"TRDresolution_TrkInYSnl1", "TrkIn :: RMS(#Deltay)^{#mu#pi-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
116     {"TRDresolution_TrkInYSni1", "TrkIn :: RMS(#Deltay)^{#mu#pi-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
117     {"TRDresolution_TrkInYSnh1", "TrkIn :: RMS(#Deltay)^{#mu#pi-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
118     {"TRDresolution_TrkInYSnH1", "TrkIn :: RMS(#Deltay)^{#mu#pi-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
119     {"TRDresolution_TrkInYSn1", "TrkIn :: RMS(#Deltay)^{#mu#pi-} [cm]"},
120     {"TRDresolution_TrkInPhnL1", "TrkIn :: <#Delta#phi>^{#mu#pi-}| #it{p_{t}[GeV/c]<0.5} [deg]"},
121     {"TRDresolution_TrkInPhnl1", "TrkIn :: <#Delta#phi>^{#mu#pi-}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
122     {"TRDresolution_TrkInPhni1", "TrkIn :: <#Delta#phi>^{#mu#pi-}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
123     {"TRDresolution_TrkInPhnh1", "TrkIn :: <#Delta#phi>^{#mu#pi-}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
124     {"TRDresolution_TrkInPhnH1", "TrkIn :: <#Delta#phi>^{#mu#pi-}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
125     {"TRDresolution_TrkInPhn1", "TrkIn :: <#Delta#phi>^{#mu#pi-} [deg]"},
126     {"TRDresolution_TrkInPhSnL1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-}| #it{p[GeV/c]<0.5} [deg]"},
127     {"TRDresolution_TrkInPhSnl1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
128     {"TRDresolution_TrkInPhSni1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
129     {"TRDresolution_TrkInPhSnh1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
130     {"TRDresolution_TrkInPhSnH1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-}| #it{5.0<=p[GeV/c]} [deg]"},
131     {"TRDresolution_TrkInPhSn1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi-} [deg]"},
132     {"TRDresolution_TrkInQnL1", "TrkIn :: MPV(dQdl)^{#mu#pi-}| #it{p[GeV/c]<0.5} [a.u.]"},
133     {"TRDresolution_TrkInQnl1", "TrkIn :: MPV(dQdl)^{#mu#pi-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
134     {"TRDresolution_TrkInQni1", "TrkIn :: MPV(dQdl)^{#mu#pi-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
135     {"TRDresolution_TrkInQnh1", "TrkIn :: MPV(dQdl)^{#mu#pi-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
136     {"TRDresolution_TrkInQnH1", "TrkIn :: MPV(dQdl)^{#mu#pi-}| #it{5.0<=p[GeV/c]} [a.u.]"},
137     {"TRDresolution_TrkInQn1", "TrkIn :: MPV(dQdl)^{#mu#pi-} [a.u.]"},
138     {"TRDresolution_TrkInQSnL1", "TrkIn :: <dQdl>^{#mu#pi-}| #it{p[GeV/c]<0.5} [a.u.]"},
139     {"TRDresolution_TrkInQSnl1", "TrkIn :: <dQdl>^{#mu#pi-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
140     {"TRDresolution_TrkInQSni1", "TrkIn :: <dQdl>^{#mu#pi-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
141     {"TRDresolution_TrkInQSnh1", "TrkIn :: <dQdl>^{#mu#pi-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
142     {"TRDresolution_TrkInQSnH1", "TrkIn :: <dQdl>^{#mu#pi-}| #it{5.0<=p[GeV/c]} [a.u.]"},
143     {"TRDresolution_TrkInQSn1", "TrkIn :: <dQdl>^{#mu#pi-} [a.u.]"},
144     {"TRDresolution_TrkInYnL2", "TrkIn :: <#Deltay>^{Kp-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
145     {"TRDresolution_TrkInYnl2", "TrkIn :: <#Deltay>^{Kp-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
146     {"TRDresolution_TrkInYni2", "TrkIn :: <#Deltay>^{Kp-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
147     {"TRDresolution_TrkInYnh2", "TrkIn :: <#Deltay>^{Kp-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
148     {"TRDresolution_TrkInYnH2", "TrkIn :: <#Deltay>^{Kp-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
149     {"TRDresolution_TrkInYn2", "TrkIn :: <#Deltay>^{Kp-} [cm]"},
150     {"TRDresolution_TrkInYSnL2", "TrkIn :: RMS(#Deltay)^{Kp-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
151     {"TRDresolution_TrkInYSnl2", "TrkIn :: RMS(#Deltay)^{Kp-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
152     {"TRDresolution_TrkInYSni2", "TrkIn :: RMS(#Deltay)^{Kp-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
153     {"TRDresolution_TrkInYSnh2", "TrkIn :: RMS(#Deltay)^{Kp-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
154     {"TRDresolution_TrkInYSnH2", "TrkIn :: RMS(#Deltay)^{Kp-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
155     {"TRDresolution_TrkInYSn2", "TrkIn :: RMS(#Deltay)^{Kp-} [cm]"},
156     {"TRDresolution_TrkInPhnL2", "TrkIn :: <#Delta#phi>^{Kp-}| #it{p_{t}[GeV/c]<0.5} [deg]"},
157     {"TRDresolution_TrkInPhnl2", "TrkIn :: <#Delta#phi>^{Kp-}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
158     {"TRDresolution_TrkInPhni2", "TrkIn :: <#Delta#phi>^{Kp-}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
159     {"TRDresolution_TrkInPhnh2", "TrkIn :: <#Delta#phi>^{Kp-}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
160     {"TRDresolution_TrkInPhnH2", "TrkIn :: <#Delta#phi>^{Kp-}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
161     {"TRDresolution_TrkInPhn2", "TrkIn :: <#Delta#phi>^{Kp-} [deg]"},
162     {"TRDresolution_TrkInPhSnL2", "TrkIn :: RMS<#Delta#phi>^{Kp-}| #it{p[GeV/c]<0.5} [deg]"},
163     {"TRDresolution_TrkInPhSnl2", "TrkIn :: RMS<#Delta#phi>^{Kp-}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
164     {"TRDresolution_TrkInPhSni2", "TrkIn :: RMS<#Delta#phi>^{Kp-}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
165     {"TRDresolution_TrkInPhSnh2", "TrkIn :: RMS<#Delta#phi>^{Kp-}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
166     {"TRDresolution_TrkInPhSnH2", "TrkIn :: RMS<#Delta#phi>^{Kp-}| #it{5.0<=p[GeV/c]} [deg]"},
167     {"TRDresolution_TrkInPhSn2", "TrkIn :: RMS<#Delta#phi>^{Kp-} [deg]"},
168     {"TRDresolution_TrkInQnL2", "TrkIn :: MPV(dQdl)^{Kp-}| #it{p[GeV/c]<0.5} [a.u.]"},
169     {"TRDresolution_TrkInQnl2", "TrkIn :: MPV(dQdl)^{Kp-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
170     {"TRDresolution_TrkInQni2", "TrkIn :: MPV(dQdl)^{Kp-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
171     {"TRDresolution_TrkInQnh2", "TrkIn :: MPV(dQdl)^{Kp-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
172     {"TRDresolution_TrkInQnH2", "TrkIn :: MPV(dQdl)^{Kp-}| #it{5.0<=p[GeV/c]} [a.u.]"},
173     {"TRDresolution_TrkInQn2", "TrkIn :: MPV(dQdl)^{Kp-} [a.u.]"},
174     {"TRDresolution_TrkInQSnL2", "TrkIn :: <dQdl>^{Kp-}| #it{p[GeV/c]<0.5} [a.u.]"},
175     {"TRDresolution_TrkInQSnl2", "TrkIn :: <dQdl>^{Kp-}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
176     {"TRDresolution_TrkInQSni2", "TrkIn :: <dQdl>^{Kp-}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
177     {"TRDresolution_TrkInQSnh2", "TrkIn :: <dQdl>^{Kp-}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
178     {"TRDresolution_TrkInQSnH2", "TrkIn :: <dQdl>^{Kp-}| #it{5.0<=p[GeV/c]} [a.u.]"},
179     {"TRDresolution_TrkInQSn2", "TrkIn :: <dQdl>^{Kp-} [a.u.]"},
180     {"TRDresolution_TrkInYnL", "TrkIn :: <#Deltay>^{-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
181     {"TRDresolution_TrkInYSnL", "TrkIn :: RMS(#Deltay)^{-}| #it{p_{t}[GeV/c]<0.5} [cm]"},
182     {"TRDresolution_TrkInPhnL", "TrkIn :: <#Delta#phi>^{-}| #it{p_{t}[GeV/c]<0.5} [deg]"},
183     {"TRDresolution_TrkInPhSnL", "TrkIn :: RMS<#Delta#phi>^{-}| #it{p_{t}[GeV/c]<0.5} [deg]"},
184     {"TRDresolution_TrkInYnl", "TrkIn :: <#Deltay>^{-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
185     {"TRDresolution_TrkInYSnl", "TrkIn :: RMS(#Deltay)^{-}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
186     {"TRDresolution_TrkInPhnl", "TrkIn :: <#Delta#phi>^{-}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
187     {"TRDresolution_TrkInPhSnl", "TrkIn :: RMS<#Delta#phi>^{-}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
188     {"TRDresolution_TrkInYni", "TrkIn :: <#Deltay>^{-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
189     {"TRDresolution_TrkInYSni", "TrkIn :: RMS(#Deltay)^{-}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
190     {"TRDresolution_TrkInPhni", "TrkIn :: <#Delta#phi>^{-}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
191     {"TRDresolution_TrkInPhSni", "TrkIn :: RMS<#Delta#phi>^{-}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
192     {"TRDresolution_TrkInYnh", "TrkIn :: <#Deltay>^{-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
193     {"TRDresolution_TrkInYSnh", "TrkIn :: RMS(#Deltay)^{-}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
194     {"TRDresolution_TrkInPhnh", "TrkIn :: <#Delta#phi>^{-}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
195     {"TRDresolution_TrkInPhSnh", "TrkIn :: RMS<#Delta#phi>^{-}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
196     {"TRDresolution_TrkInYnH", "TrkIn :: <#Deltay>^{-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
197     {"TRDresolution_TrkInYSnH", "TrkIn :: RMS(#Deltay)^{-}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
198     {"TRDresolution_TrkInPhnH", "TrkIn :: <#Delta#phi>^{-}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
199     {"TRDresolution_TrkInPhSnH", "TrkIn :: RMS<#Delta#phi>^{-}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
200     {"TRDresolution_TrkInYn", "TrkIn :: <#Deltay>^{-} [cm]"},
201     {"TRDresolution_TrkInYSn", "TrkIn :: RMS(#Deltay)^{-} [cm]"},
202     {"TRDresolution_TrkInPhn", "TrkIn :: <#Delta#phi>^{-} [deg]"},
203     {"TRDresolution_TrkInPhSn", "TrkIn :: RMS<#Delta#phi>^{-} [deg]"},
204     {"TRDresolution_TrkInYpL0", "TrkIn :: <#Deltay>^{e+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
205     {"TRDresolution_TrkInYpl0", "TrkIn :: <#Deltay>^{e+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
206     {"TRDresolution_TrkInYpi0", "TrkIn :: <#Deltay>^{e+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
207     {"TRDresolution_TrkInYph0", "TrkIn :: <#Deltay>^{e+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
208     {"TRDresolution_TrkInYpH0", "TrkIn :: <#Deltay>^{e+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
209     {"TRDresolution_TrkInYp0", "TrkIn :: <#Deltay>^{e+} [cm]"},
210     {"TRDresolution_TrkInYSpL0", "TrkIn :: RMS(#Deltay)^{e+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
211     {"TRDresolution_TrkInYSpl0", "TrkIn :: RMS(#Deltay)^{e+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
212     {"TRDresolution_TrkInYSpi0", "TrkIn :: RMS(#Deltay)^{e+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
213     {"TRDresolution_TrkInYSph0", "TrkIn :: RMS(#Deltay)^{e+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
214     {"TRDresolution_TrkInYSpH0", "TrkIn :: RMS(#Deltay)^{e+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
215     {"TRDresolution_TrkInYSp0", "TrkIn :: RMS(#Deltay)^{e+} [cm]"},
216     {"TRDresolution_TrkInPhpL0", "TrkIn :: <#Delta#phi>^{e+}| #it{p_{t}[GeV/c]<0.5} [deg]"},
217     {"TRDresolution_TrkInPhpl0", "TrkIn :: <#Delta#phi>^{e+}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
218     {"TRDresolution_TrkInPhpi0", "TrkIn :: <#Delta#phi>^{e+}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
219     {"TRDresolution_TrkInPhph0", "TrkIn :: <#Delta#phi>^{e+}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
220     {"TRDresolution_TrkInPhpH0", "TrkIn :: <#Delta#phi>^{e+}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
221     {"TRDresolution_TrkInPhp0", "TrkIn :: <#Delta#phi>^{e+} [deg]"},
222     {"TRDresolution_TrkInPhSpL0", "TrkIn :: RMS<#Delta#phi>^{e+}| #it{p[GeV/c]<0.5} [deg]"},
223     {"TRDresolution_TrkInPhSpl0", "TrkIn :: RMS<#Delta#phi>^{e+}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
224     {"TRDresolution_TrkInPhSpi0", "TrkIn :: RMS<#Delta#phi>^{e+}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
225     {"TRDresolution_TrkInPhSph0", "TrkIn :: RMS<#Delta#phi>^{e+}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
226     {"TRDresolution_TrkInPhSpH0", "TrkIn :: RMS<#Delta#phi>^{e+}| #it{5.0<=p[GeV/c]} [deg]"},
227     {"TRDresolution_TrkInPhSp0", "TrkIn :: RMS<#Delta#phi>^{e+} [deg]"},
228     {"TRDresolution_TrkInQpL0", "TrkIn :: MPV(dQdl)^{e+}| #it{p[GeV/c]<0.5} [a.u.]"},
229     {"TRDresolution_TrkInQpl0", "TrkIn :: MPV(dQdl)^{e+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
230     {"TRDresolution_TrkInQpi0", "TrkIn :: MPV(dQdl)^{e+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
231     {"TRDresolution_TrkInQph0", "TrkIn :: MPV(dQdl)^{e+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
232     {"TRDresolution_TrkInQpH0", "TrkIn :: MPV(dQdl)^{e+}| #it{5.0<=p[GeV/c]} [a.u.]"},
233     {"TRDresolution_TrkInQp0", "TrkIn :: MPV(dQdl)^{e+} [a.u.]"},
234     {"TRDresolution_TrkInQSpL0", "TrkIn :: <dQdl>^{e+}| #it{p[GeV/c]<0.5} [a.u.]"},
235     {"TRDresolution_TrkInQSpl0", "TrkIn :: <dQdl>^{e+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
236     {"TRDresolution_TrkInQSpi0", "TrkIn :: <dQdl>^{e+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
237     {"TRDresolution_TrkInQSph0", "TrkIn :: <dQdl>^{e+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
238     {"TRDresolution_TrkInQSpH0", "TrkIn :: <dQdl>^{e+}| #it{5.0<=p[GeV/c]} [a.u.]"},
239     {"TRDresolution_TrkInQSp0", "TrkIn :: <dQdl>^{e+} [a.u.]"},
240     {"TRDresolution_TrkInYpL1", "TrkIn :: <#Deltay>^{#mu#pi+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
241     {"TRDresolution_TrkInYpl1", "TrkIn :: <#Deltay>^{#mu#pi+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
242     {"TRDresolution_TrkInYpi1", "TrkIn :: <#Deltay>^{#mu#pi+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
243     {"TRDresolution_TrkInYph1", "TrkIn :: <#Deltay>^{#mu#pi+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
244     {"TRDresolution_TrkInYpH1", "TrkIn :: <#Deltay>^{#mu#pi+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
245     {"TRDresolution_TrkInYp1", "TrkIn :: <#Deltay>^{#mu#pi+} [cm]"},
246     {"TRDresolution_TrkInYSpL1", "TrkIn :: RMS(#Deltay)^{#mu#pi+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
247     {"TRDresolution_TrkInYSpl1", "TrkIn :: RMS(#Deltay)^{#mu#pi+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
248     {"TRDresolution_TrkInYSpi1", "TrkIn :: RMS(#Deltay)^{#mu#pi+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
249     {"TRDresolution_TrkInYSph1", "TrkIn :: RMS(#Deltay)^{#mu#pi+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
250     {"TRDresolution_TrkInYSpH1", "TrkIn :: RMS(#Deltay)^{#mu#pi+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
251     {"TRDresolution_TrkInYSp1", "TrkIn :: RMS(#Deltay)^{#mu#pi+} [cm]"},
252     {"TRDresolution_TrkInPhpL1", "TrkIn :: <#Delta#phi>^{#mu#pi+}| #it{p_{t}[GeV/c]<0.5} [deg]"},
253     {"TRDresolution_TrkInPhpl1", "TrkIn :: <#Delta#phi>^{#mu#pi+}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
254     {"TRDresolution_TrkInPhpi1", "TrkIn :: <#Delta#phi>^{#mu#pi+}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
255     {"TRDresolution_TrkInPhph1", "TrkIn :: <#Delta#phi>^{#mu#pi+}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
256     {"TRDresolution_TrkInPhpH1", "TrkIn :: <#Delta#phi>^{#mu#pi+}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
257     {"TRDresolution_TrkInPhp1", "TrkIn :: <#Delta#phi>^{#mu#pi+} [deg]"},
258     {"TRDresolution_TrkInPhSpL1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+}| #it{p[GeV/c]<0.5} [deg]"},
259     {"TRDresolution_TrkInPhSpl1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
260     {"TRDresolution_TrkInPhSpi1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
261     {"TRDresolution_TrkInPhSph1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
262     {"TRDresolution_TrkInPhSpH1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+}| #it{5.0<=p[GeV/c]} [deg]"},
263     {"TRDresolution_TrkInPhSp1", "TrkIn :: RMS<#Delta#phi>^{#mu#pi+} [deg]"},
264     {"TRDresolution_TrkInQpL1", "TrkIn :: MPV(dQdl)^{#mu#pi+}| #it{p[GeV/c]<0.5} [a.u.]"},
265     {"TRDresolution_TrkInQpl1", "TrkIn :: MPV(dQdl)^{#mu#pi+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
266     {"TRDresolution_TrkInQpi1", "TrkIn :: MPV(dQdl)^{#mu#pi+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
267     {"TRDresolution_TrkInQph1", "TrkIn :: MPV(dQdl)^{#mu#pi+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
268     {"TRDresolution_TrkInQpH1", "TrkIn :: MPV(dQdl)^{#mu#pi+}| #it{5.0<=p[GeV/c]} [a.u.]"},
269     {"TRDresolution_TrkInQp1", "TrkIn :: MPV(dQdl)^{#mu#pi+} [a.u.]"},
270     {"TRDresolution_TrkInQSpL1", "TrkIn :: <dQdl>^{#mu#pi+}| #it{p[GeV/c]<0.5} [a.u.]"},
271     {"TRDresolution_TrkInQSpl1", "TrkIn :: <dQdl>^{#mu#pi+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
272     {"TRDresolution_TrkInQSpi1", "TrkIn :: <dQdl>^{#mu#pi+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
273     {"TRDresolution_TrkInQSph1", "TrkIn :: <dQdl>^{#mu#pi+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
274     {"TRDresolution_TrkInQSpH1", "TrkIn :: <dQdl>^{#mu#pi+}| #it{5.0<=p[GeV/c]} [a.u.]"},
275     {"TRDresolution_TrkInQSp1", "TrkIn :: <dQdl>^{#mu#pi+} [a.u.]"},
276     {"TRDresolution_TrkInYpL2", "TrkIn :: <#Deltay>^{Kp+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
277     {"TRDresolution_TrkInYpl2", "TrkIn :: <#Deltay>^{Kp+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
278     {"TRDresolution_TrkInYpi2", "TrkIn :: <#Deltay>^{Kp+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
279     {"TRDresolution_TrkInYph2", "TrkIn :: <#Deltay>^{Kp+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
280     {"TRDresolution_TrkInYpH2", "TrkIn :: <#Deltay>^{Kp+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
281     {"TRDresolution_TrkInYp2", "TrkIn :: <#Deltay>^{Kp+} [cm]"},
282     {"TRDresolution_TrkInYSpL2", "TrkIn :: RMS(#Deltay)^{Kp+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
283     {"TRDresolution_TrkInYSpl2", "TrkIn :: RMS(#Deltay)^{Kp+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
284     {"TRDresolution_TrkInYSpi2", "TrkIn :: RMS(#Deltay)^{Kp+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
285     {"TRDresolution_TrkInYSph2", "TrkIn :: RMS(#Deltay)^{Kp+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
286     {"TRDresolution_TrkInYSpH2", "TrkIn :: RMS(#Deltay)^{Kp+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
287     {"TRDresolution_TrkInYSp2", "TrkIn :: RMS(#Deltay)^{Kp+} [cm]"},
288     {"TRDresolution_TrkInPhpL2", "TrkIn :: <#Delta#phi>^{Kp+}| #it{p_{t}[GeV/c]<0.5} [deg]"},
289     {"TRDresolution_TrkInPhpl2", "TrkIn :: <#Delta#phi>^{Kp+}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
290     {"TRDresolution_TrkInPhpi2", "TrkIn :: <#Delta#phi>^{Kp+}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
291     {"TRDresolution_TrkInPhph2", "TrkIn :: <#Delta#phi>^{Kp+}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
292     {"TRDresolution_TrkInPhpH2", "TrkIn :: <#Delta#phi>^{Kp+}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
293     {"TRDresolution_TrkInPhp2", "TrkIn :: <#Delta#phi>^{Kp+} [deg]"},
294     {"TRDresolution_TrkInPhSpL2", "TrkIn :: RMS<#Delta#phi>^{Kp+}| #it{p[GeV/c]<0.5} [deg]"},
295     {"TRDresolution_TrkInPhSpl2", "TrkIn :: RMS<#Delta#phi>^{Kp+}| #it{0.5<=p[GeV/c]<0.8} [deg]"},
296     {"TRDresolution_TrkInPhSpi2", "TrkIn :: RMS<#Delta#phi>^{Kp+}| #it{0.8<=p[GeV/c]<1.5} [deg]"},
297     {"TRDresolution_TrkInPhSph2", "TrkIn :: RMS<#Delta#phi>^{Kp+}| #it{1.5<=p[GeV/c]<5.0} [deg]"},
298     {"TRDresolution_TrkInPhSpH2", "TrkIn :: RMS<#Delta#phi>^{Kp+}| #it{5.0<=p[GeV/c]} [deg]"},
299     {"TRDresolution_TrkInPhSp2", "TrkIn :: RMS<#Delta#phi>^{Kp+} [deg]"},
300     {"TRDresolution_TrkInQpL2", "TrkIn :: MPV(dQdl)^{Kp+}| #it{p[GeV/c]<0.5} [a.u.]"},
301     {"TRDresolution_TrkInQpl2", "TrkIn :: MPV(dQdl)^{Kp+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
302     {"TRDresolution_TrkInQpi2", "TrkIn :: MPV(dQdl)^{Kp+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
303     {"TRDresolution_TrkInQph2", "TrkIn :: MPV(dQdl)^{Kp+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
304     {"TRDresolution_TrkInQpH2", "TrkIn :: MPV(dQdl)^{Kp+}| #it{5.0<=p[GeV/c]} [a.u.]"},
305     {"TRDresolution_TrkInQp2", "TrkIn :: MPV(dQdl)^{Kp+} [a.u.]"},
306     {"TRDresolution_TrkInQSpL2", "TrkIn :: <dQdl>^{Kp+}| #it{p[GeV/c]<0.5} [a.u.]"},
307     {"TRDresolution_TrkInQSpl2", "TrkIn :: <dQdl>^{Kp+}| #it{0.5<=p[GeV/c]<0.8} [a.u.]"},
308     {"TRDresolution_TrkInQSpi2", "TrkIn :: <dQdl>^{Kp+}| #it{0.8<=p[GeV/c]<1.5} [a.u.]"},
309     {"TRDresolution_TrkInQSph2", "TrkIn :: <dQdl>^{Kp+}| #it{1.5<=p[GeV/c]<5.0} [a.u.]"},
310     {"TRDresolution_TrkInQSpH2", "TrkIn :: <dQdl>^{Kp+}| #it{5.0<=p[GeV/c]} [a.u.]"},
311     {"TRDresolution_TrkInQSp2", "TrkIn :: <dQdl>^{Kp+} [a.u.]"},
312     {"TRDresolution_TrkInYpL", "TrkIn :: <#Deltay>^{+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
313     {"TRDresolution_TrkInYSpL", "TrkIn :: RMS(#Deltay)^{+}| #it{p_{t}[GeV/c]<0.5} [cm]"},
314     {"TRDresolution_TrkInPhpL", "TrkIn :: <#Delta#phi>^{+}| #it{p_{t}[GeV/c]<0.5} [deg]"},
315     {"TRDresolution_TrkInPhSpL", "TrkIn :: RMS<#Delta#phi>^{+}| #it{p_{t}[GeV/c]<0.5} [deg]"},
316     {"TRDresolution_TrkInYpl", "TrkIn :: <#Deltay>^{+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
317     {"TRDresolution_TrkInYSpl", "TrkIn :: RMS(#Deltay)^{+}| #it{0.5<=p_{t}[GeV/c]<0.8} [cm]"},
318     {"TRDresolution_TrkInPhpl", "TrkIn :: <#Delta#phi>^{+}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
319     {"TRDresolution_TrkInPhSpl", "TrkIn :: RMS<#Delta#phi>^{+}| #it{0.5<=p_{t}[GeV/c]<0.8} [deg]"},
320     {"TRDresolution_TrkInYpi", "TrkIn :: <#Deltay>^{+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
321     {"TRDresolution_TrkInYSpi", "TrkIn :: RMS(#Deltay)^{+}| #it{0.8<=p_{t}[GeV/c]<1.5} [cm]"},
322     {"TRDresolution_TrkInPhpi", "TrkIn :: <#Delta#phi>^{+}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
323     {"TRDresolution_TrkInPhSpi", "TrkIn :: RMS<#Delta#phi>^{+}| #it{0.8<=p_{t}[GeV/c]<1.5} [deg]"},
324     {"TRDresolution_TrkInYph", "TrkIn :: <#Deltay>^{+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
325     {"TRDresolution_TrkInYSph", "TrkIn :: RMS(#Deltay)^{+}| #it{1.5<=p_{t}[GeV/c]<5.0} [cm]"},
326     {"TRDresolution_TrkInPhph", "TrkIn :: <#Delta#phi>^{+}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
327     {"TRDresolution_TrkInPhSph", "TrkIn :: RMS<#Delta#phi>^{+}| #it{1.5<=p_{t}[GeV/c]<5.0} [deg]"},
328     {"TRDresolution_TrkInYpH", "TrkIn :: <#Deltay>^{+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
329     {"TRDresolution_TrkInYSpH", "TrkIn :: RMS(#Deltay)^{+}| #it{5.0<=p_{t}[GeV/c]} [cm]"},
330     {"TRDresolution_TrkInPhpH", "TrkIn :: <#Delta#phi>^{+}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
331     {"TRDresolution_TrkInPhSpH", "TrkIn :: RMS<#Delta#phi>^{+}| #it{5.0<=p_{t}[GeV/c]} [deg]"},
332     {"TRDresolution_TrkInYp", "TrkIn :: <#Deltay>^{+} [cm]"},
333     {"TRDresolution_TrkInYSp", "TrkIn :: RMS(#Deltay)^{+} [cm]"},
334     {"TRDresolution_TrkInPhp", "TrkIn :: <#Delta#phi>^{+} [deg]"},
335     {"TRDresolution_TrkInPhSp", "TrkIn :: RMS<#Delta#phi>^{+} [deg]"},
336     {"TRDresolution_TrkInY0", "TrkIn :: <#Deltay>^{e} [cm]"},
337     {"TRDresolution_TrkInPh0", "TrkIn :: <#Delta#phi>^{e} [deg]"},
338     {"TRDresolution_TrkInQ0", "TrkIn :: MPV(dQdl)^{e} [a.u.]"},
339     {"TRDresolution_TrkInQS0", "TrkIn :: <dQdl>^{e} [a.u.]"},
340     {"TRDresolution_TrkInY1", "TrkIn :: <#Deltay>^{#mu#pi} [cm]"},
341     {"TRDresolution_TrkInPh1", "TrkIn :: <#Delta#phi>^{#mu#pi} [deg]"},
342     {"TRDresolution_TrkInQ1", "TrkIn :: MPV(dQdl)^{#mu#pi} [a.u.]"},
343     {"TRDresolution_TrkInQS1", "TrkIn :: <dQdl>^{#mu#pi} [a.u.]"},
344     {"TRDresolution_TrkInY2", "TrkIn :: <#Deltay>^{Kp} [cm]"},
345     {"TRDresolution_TrkInPh2", "TrkIn :: <#Delta#phi>^{Kp} [deg]"},
346     {"TRDresolution_TrkInQ2", "TrkIn :: MPV(dQdl)^{Kp} [a.u.]"},
347     {"TRDresolution_TrkInQS2", "TrkIn :: <dQdl>^{Kp} [a.u.]"},
348     {"TRDresolution_TrkInRCZ", "TrkIn :: <#Deltaz> [cm]"},
349     {"TRDresolution_TrkInRCZS", "TrkIn :: #sigma(#Deltaz) [cm]"},
350     {"TRDresolution_TrkInPtn0", "TrkIn :: <p_{t}>^{e-} [GeV/c]"},
351     {"TRDresolution_TrkInPtp0", "TrkIn :: <p_{t}>^{e+} [GeV/c]"},
352     {"TRDresolution_TrkInPtn1", "TrkIn :: <p_{t}>^{#mu#pi-} [GeV/c]"},
353     {"TRDresolution_TrkInPtp1", "TrkIn :: <p_{t}>^{#mu#pi+} [GeV/c]"},
354     {"TRDresolution_TrkInPtn2", "TrkIn :: <p_{t}>^{Kp-} [GeV/c]"},
355     {"TRDresolution_TrkInPtp2", "TrkIn :: <p_{t}>^{Kp+} [GeV/c]"}
356   };
357   const char *resName[] = {"Markus Fasel", "Alexandru Bercuci"},
358              *resMail[] = {"M.Fasel@gsi.de", "A.Bercuci@gsi.de"};
359   const char *notName[] = {"Julian Book", "Hans Beck", "Ionut Arsene", "Raphaelle Bailache", "Christoph Blume"},
360              *notMail[] = {"jbook@ikf.uni-frankfurt.de", "hbeck@ikf.uni-frankfurt.de", "I.C.Arsene@gsi.de", "R.Bailhache@gsi.de", "blume@ikf.uni-frankfurt.de"};
361   Int_t nDet(0), nEff(0), nRes(0);
362   for(Int_t jnt(0); jnt<nt; jnt++){
363     //printf("%3d %s %s\n", jnt, tvn[jnt][0], tvn[jnt][1]);
364     if(strstr(tvn[jnt][0], "TRDcheckDET")) nDet++;
365     else if(strstr(tvn[jnt][0], "TRDefficiency")) nEff++;
366     else if(strstr(tvn[jnt][0], "TRDresolution")) nRes++;
367     else {
368       Error("makeTrendingDB", "Entry \"%s\" not registered as trending task.", tvn[jnt][0]);
369       return;
370     }
371   }
372   Info("makeTrendingDB", "Trends :: %3d = %3d[DET] %3d[EFF] %3d[RES]", nt, nDet, nEff, nRes);
373
374   TFile *fDB = TFile::Open("TRD.TrendDB.root", "RECREATE");
375   TTree *tDB = new TTree("trend", "Reference Trend Values");
376   Double_t val[nt+1000]; Int_t jt(0);
377   TBranch *b(NULL);
378   for(Int_t it(0); it<nt; it++){  // ALL
379     b = tDB->Branch(tvn[it][0], &val[jt++], Form("%s/D", tvn[it][0]));
380     b->SetTitle(tvn[it][1]);
381   }
382   for(Int_t it(nDet); it<nDet+nEff; it++){ // extra EFF (MC)
383     TString stn("TRDefficiency_MC"); stn+=&tvn[it][0][14];
384     b = tDB->Branch(stn.Data(), &val[jt++], Form("%s/D", stn.Data()));
385     b->SetTitle(Form("[MC] %s", tvn[it][1]));
386   }
387   for(Int_t it(nDet+nEff); it<nDet+nEff+nRes; it++){ // extra RES (MC)
388     TString stn("TRDresolution_MC"); stn+=&tvn[it][0][14];
389     b= tDB->Branch(stn.Data(), &val[jt++], Form("%s/D", stn.Data()));
390     b->SetTitle(Form("[MC] %s", tvn[it][1]));
391   }
392   for(Int_t it(nDet+nEff); it<nDet+nEff+nRes; it++){ // extra RES (V0)
393     TString stn("TRDresolution_V0"); stn+=&tvn[it][0][14];
394     b = tDB->Branch(stn.Data(), &val[jt++], Form("%s/D", stn.Data()));
395     b->SetTitle(Form("[V0] %s", tvn[it][1]));
396   }
397   gROOT->cd();
398   Info("makeTrendingDB", "Trends :: Combined [%3d]", tDB->GetNbranches());
399   TIterator *ib = tDB->GetListOfBranches()->MakeIterator();
400   
401   AliTRDtrendValue *tv(NULL);
402   FILE *fp = fopen(fl, "rt");
403   TString sfp;
404   while(sfp.Gets(fp)){
405     if(!TFile::Open(sfp.Data())) continue;
406     Int_t nmiss(0), nbads(0), it(-1); ib->Reset();
407     while((b=(TBranch*)ib->Next())){
408       val[++it] = -999;
409       if(!(tv = (AliTRDtrendValue*)gFile->Get(b->GetName()))) {
410         //Warning("makeTrendingDB()", "Missing %s from %s", b->GetName(), sfp.Data());
411         nmiss++;
412         continue;
413       }
414       if((strstr(b->GetName(), "TRDcheckDET") ||
415           strstr(b->GetName(), "QS") ||
416           strstr(b->GetName(), "YS")) && TMath::Abs(tv->GetVal()) < 1.e-5){
417         //Info("makeTrendingDB()", "Found bad value for %s[%f] in %s", b->GetName(), tv->GetVal(), sfp.Data());
418         nbads++;
419         continue;
420       }
421       val[it] = tv->GetVal();
422     }
423     Warning("makeTrendingDB()", "%s :: Missing[%d] Bads[%d]", sfp.Data(), nmiss, nbads);
424     gFile->Close();
425     tDB->Fill();
426   }
427
428 //   TFile *fDB = TFile::Open("TRD.TrendDB.root");
429 //   TTree *tDB = (TTree*)gFile->Get("trend");
430 //   Double_t val[nt];
431 //   for(Int_t it(0); it<nt; it++) tDB->SetBranchAddress(tvn[it][0], &val[it]);
432 //   gROOT->cd();
433
434   TString res[] = {Form("%s/%s", resName[0], resMail[0]), Form("%s/%s", resName[1], resMail[1])};
435   TString notifiable;
436   for(Int_t inot(0); inot<5; inot++){
437     notifiable+=notName[inot];
438     notifiable+="/";
439     notifiable+=notMail[inot];
440     if(inot<4) notifiable+=",";
441   }
442   TF1 f("f", "gaus", -100, 100); TH1 *h(NULL);
443   AliTRDtrendingManager *tm = AliTRDtrendingManager::Instance();
444   TCanvas *c = new TCanvas("c", "Trend Distrib.", 10, 10, 500, 500);
445   Int_t ntr=tDB->GetEntries();
446   Int_t it(-1); ib->Reset();
447   while((b=(TBranch*)ib->Next())){
448     tDB->Draw(b->GetName(), "", "goff"); it++;
449     Double_t *v = tDB->GetV1(), xmin(100.), xmax(-100);
450     Int_t ntr0(0);
451     for(Int_t ir=0; ir<ntr; ir++){
452       if(v[ir]<-100) continue;
453       ntr0++;
454       if(v[ir]<xmin) xmin = v[ir];
455       if(v[ir]>xmax) xmax = v[ir];
456     }
457     Double_t m(0.), s(0.);
458     if(ntr0<10){
459       Warning("makeTrendingDB", "%s :: Couldn't create reference value out of %d entries.", b->GetName(), ntr0);
460     } else {
461       if((h =(TH1F*)gROOT->FindObject("hp"))){delete h; h = NULL;}
462       h = new TH1F("hp", Form("%s;%s;entries", b->GetTitle(), b->GetName()), 25, 0.5*(3*xmin-xmax), 0.5*(3*xmax - xmin));
463       tDB->Draw(Form("%s>>hp", b->GetName()), Form("%s>-100", b->GetName()));
464       if(h->Integral() < 1) continue;
465       f.SetParameter(0, h->Integral());
466       f.SetParameter(1, h->GetMean());
467       f.SetParameter(2, h->GetRMS());
468       h->Fit(&f, "WQ");
469       c->Modified(); c->Update(); c->SaveAs(Form("Fit_%s.gif", b->GetName()));
470
471       // write trending value to manager
472       Info("makeTrendingDB", "%s :: %f+-%f [%f - %f]", b->GetName(), f.GetParameter(1), f.GetParameter(2), xmin, xmax);
473   /*    if(strstr(tvn[it][0], "TrkInYS")) {
474         m=0.4; s=0.06;
475       } else if(strstr(tvn[it][0], "TrkInY")) {
476         m=0.; s=0.1;*/
477   /*    } else if(strstr(tvn[it][0], "TrkInPh")) {
478         m=0.; s=0.35;*/
479   /*    } else if(strstr(tvn[it][0], "TrkInQ") || strstr(tvn[it][0], "TrkInQS")) {
480         m=-2.; s=0.2;*/
481   //    } else {
482         m=f.GetParameter(1); s=h->GetRMS()/*f.GetParameter(2)*/;
483   //    }
484     }
485     tm->AddValue(b->GetName(), m, s, b->GetTitle(), res[it>13], notifiable);
486   }
487   tm->Terminate();
488
489   fDB->cd();
490   tDB->Write();
491   fDB->Close();
492 }