#include "TF1.h"
#include "TFile.h"
#include "TH1D.h"
#include "TH2D.h"
#include "THnSparse.h"
#include "TMath.h"
#include "TMatrixD.h"
#include "TMinuit.h"
#include "TObjArray.h"
#include "TRandom3.h"
#include "TStopwatch.h"
#include "TVectorD.h"
#include "TTreeStream.h"
#include "AliCDBId.h"
#include "AliCDBMetaData.h"
#include "AliCDBStorage.h"
#include "AliESDEvent.h"
#include "AliESDfriendTrack.h"
#include "AliESDtrack.h"
#include "AliTRDcalibDB.h"
#include "AliTRDCalROC.h"
#include "AliTRDtrackV1.h"
#include "AliTRDdEdxBaseUtils.h"
#include "AliTRDdEdxReconUtils.h"
#define EPSILON 1e-8
Int_t AliTRDdEdxReconUtils::ApplyCalib(const Int_t nc0, TVectorD *arrayQ, TVectorD *arrayX, const TObjArray *cobj)
{
if(!cobj){ printf("AliTRDdEdxReconUtils::ApplyCalib error gain array null!!\n"); exit(1);}
TVectorD tmpq(arrayQ->GetNrows());
TVectorD tmpx(arrayX->GetNrows());
Int_t ncls = 0;
const TVectorD * gain = (TVectorD*) cobj->At(0);
for(Int_t ii=0; ii<nc0; ii++){
const Double_t dq = (*arrayQ)[ii];
const Int_t xx = (Int_t)(*arrayX)[ii];
const Double_t gg = (*gain)[xx];
if(gg<EPSILON){
continue;
}
tmpq[ncls] = dq*gg;
tmpx[ncls] = xx;
ncls++;
}
(*arrayQ)=tmpq;
(*arrayX)=tmpx;
return ncls;
}
Double_t AliTRDdEdxReconUtils::ToyCook(const Bool_t kinvq, Int_t &ncluster, TVectorD *arrayQ, TVectorD *arrayX, const TObjArray *cobj)
{
if(cobj){
if(arrayQ && arrayX){
ncluster = ApplyCalib(ncluster, arrayQ, arrayX, cobj);
}
else{
printf("AliTRDdEdxReconUtils::ToyCook arrayQ arrayX null, applycalib can not be applied!\n"); exit(1);
}
}
Double_t lowFrac =-999, highFrac = -999;
if(kinvq){
lowFrac = AliTRDdEdxBaseUtils::Q1Frac(); highFrac = 0.99;
}
else{
lowFrac = 0.01; highFrac = AliTRDdEdxBaseUtils::Q0Frac();
}
Double_t meanQ = AliTRDdEdxBaseUtils::TruncatedMean(ncluster, arrayQ->GetMatrixArray(), lowFrac, highFrac);
if(kinvq){
if(meanQ>EPSILON){
meanQ = 1/meanQ;
}
}
return meanQ;
}
Double_t AliTRDdEdxReconUtils::CombineddEdx(const Bool_t kinvq, Int_t &concls, TVectorD *coarrayQ, TVectorD *coarrayX, const Int_t tpcncls, const TVectorD *tpcarrayQ, const TVectorD *tpcarrayX, const Int_t trdncls, const TVectorD *trdarrayQ, const TVectorD *trdarrayX)
{
for(Int_t iq=0; iq<tpcncls; iq++){
(*coarrayQ)[iq]=(*tpcarrayQ)[iq];
if(tpcarrayX && trdarrayX && coarrayX){
(*coarrayX)[iq]=(*tpcarrayX)[iq];
}
}
for(Int_t iq=0; iq<trdncls; iq++){
(*coarrayQ)[tpcncls+iq]=(*trdarrayQ)[iq];
if(tpcarrayX && trdarrayX && coarrayX){
(*coarrayX)[tpcncls+iq]=159+(*trdarrayX)[iq];
}
}
concls=trdncls+tpcncls;
const Double_t coQ = ToyCook(kinvq, concls, coarrayQ, coarrayX);
return coQ;
}
Double_t AliTRDdEdxReconUtils::GetPadGain(const Int_t det, const Int_t icol, const Int_t irow)
{
AliTRDcalibDB* calibration = AliTRDcalibDB::Instance();
if (!calibration) {
printf("AliTRDdEdxReconUtils::GetPadCalib No AliTRDcalibDB instance available\n"); exit(1);
}
AliTRDCalROC * calGainFactorROC = calibration->GetGainFactorROC(det);
if(!calGainFactorROC){
printf("AliTRDdEdxReconUtils::GetPadCalib no calGainFactorROC!\n"); exit(1);
}
Double_t padgain = -999;
if( icol >= 0 &&
icol < calGainFactorROC->GetNcols() &&
irow >=0 &&
irow < calGainFactorROC->GetNrows()){
padgain = calGainFactorROC->GetValue(icol, irow);
if(padgain<EPSILON){
printf("AliTRDdEdxReconUtils::GetPadGain padgain 0! %f %f -- %d %d %d -- %d %d\n", padgain, EPSILON, det, icol, irow, calGainFactorROC->GetNcols(), calGainFactorROC->GetNrows()); exit(1);
}
}
else{
}
return padgain;
}
Double_t AliTRDdEdxReconUtils::GetRNDClusterQ(AliTRDcluster *cl, const Double_t baseline)
{
const Int_t det = cl->GetDetector();
const Int_t pad3col = cl->GetPadCol();
const Int_t padrow = cl->GetPadRow();
Double_t rndqsum = 0;
for(Int_t ii=0; ii<7; ii++){
if(cl->GetSignals()[ii] < EPSILON){
continue;
}
const Int_t icol = pad3col+(ii-3);
const Double_t padgain = GetPadGain(det, icol, padrow);
if(padgain<0){
continue;
}
const Double_t rndsignal = (cl->GetSignals()[ii] - baseline )/(AliTRDdEdxBaseUtils::IsPadGainOn()? padgain : 1);
rndqsum += rndsignal;
}
return rndqsum;
}
Double_t AliTRDdEdxReconUtils::GetClusterQ(const Bool_t kinvq, const AliTRDseedV1 * seed, const Int_t itb)
{
Double_t dq = 0;
AliTRDcluster *cl = 0x0;
const Double_t baseline = 10;
cl = seed->GetClusters(itb); if(cl && GetRNDClusterQ(cl, baseline)>0 ) dq+= GetRNDClusterQ(cl, baseline);
cl = seed->GetClusters(itb+AliTRDseedV1::kNtb); if(cl && GetRNDClusterQ(cl, baseline)>0 ) dq+= GetRNDClusterQ(cl, baseline);
dq /= AliTRDdEdxBaseUtils::Getdldx(seed);
dq /= AliTRDdEdxBaseUtils::QScale();
if(kinvq){
if(dq>EPSILON){
dq = 1/dq;
}
}
return dq;
}
Int_t AliTRDdEdxReconUtils::GetArrayClusterQ(const Bool_t kinvq, TVectorD *arrayQ, TVectorD *arrayX, const AliTRDtrackV1 *trdtrack, Int_t timeBin0, Int_t timeBin1, Int_t tstep)
{
if(!arrayQ || arrayQ->GetNrows()< (AliTRDseedV1::kNtb*AliTRDtrackV1::kNplane)){
printf("AliTRDdEdxReconUtils::GetArrayClusterQ error arrayQ null or size too small! %d\n", arrayQ? arrayQ->GetNrows() : -999); exit(1);
}
if(!arrayX || arrayX->GetNrows()< (AliTRDseedV1::kNtb*AliTRDtrackV1::kNplane)){
printf("AliTRDdEdxReconUtils::GetArrayClusterQ error arrayX null or size too small! %d\n", arrayX? arrayX->GetNrows() : -999); exit(1);
}
const Int_t mintb = 0;
const Int_t maxtb = AliTRDseedV1::kNtb-1;
if(timeBin0<mintb) timeBin0=mintb;
if(timeBin1>maxtb) timeBin1=maxtb;
if(tstep<=0) tstep=1;
Int_t tbN=0;
Double_t tbQ[200];
Int_t tbBin[200];
for(Int_t ichamber=0; ichamber < AliTRDtrackV1::kNplane; ichamber++){
const AliTRDseedV1 * seed = trdtrack->GetTracklet(ichamber);
if(!seed)
continue;
const Int_t det = seed->GetDetector();
for(Int_t itb=timeBin0; itb<=timeBin1; itb+=tstep){
const Double_t dq = GetClusterQ(kinvq, seed, itb);
if(dq<EPSILON)
continue;
const Int_t gtb = det * AliTRDseedV1::kNtb + itb;
tbQ[tbN]=dq;
tbBin[tbN]=gtb;
tbN++;
}
}
Int_t ncls = 0;
for(Int_t iq=0; iq<tbN; iq++){
if(tbQ[iq]<EPSILON)
continue;
(*arrayQ)[ncls] = tbQ[iq];
(*arrayX)[ncls] = tbBin[iq];
ncls++;
}
static Int_t kprint = 100;
if(kprint<0){
printf("\nAliTRDdEdxReconUtils::GetArrayClusterQ raw cluster-Q\n");
for(Int_t iq=0; iq<ncls; iq++){
const Int_t ichamber = AliTRDdEdxBaseUtils::ToLayer((*arrayX)[iq]);
const AliTRDseedV1 * seed = trdtrack->GetTracklet(ichamber);
if(!seed){
printf("error seed null!!\n"); exit(1);
}
const Double_t rawq = (*arrayQ)[iq] * 45. * AliTRDdEdxBaseUtils::Getdldx(seed);
printf("esdid=%d; chamber=%d; timebin=%d; rawq= %.3f; myq[%d]= %e;\n", trdtrack->GetESDid(), ichamber, AliTRDdEdxBaseUtils::ToTimeBin((*arrayX)[iq]), rawq, iq, (*arrayQ)[iq]);
}
printf("\n");
}
kprint++;
return ncls;
}
Int_t AliTRDdEdxReconUtils::UpdateArrayX(const Int_t ncls, TVectorD* arrayX)
{
TVectorD countChamber(6);
for(Int_t ii = 0; ii<ncls; ii++){
const Int_t xx = (Int_t)(*arrayX)[ii];
const Int_t idet = AliTRDdEdxBaseUtils::ToDetector(xx);
const Double_t ich = AliTRDgeometry::GetLayer(idet);
const Double_t itb = AliTRDdEdxBaseUtils::ToTimeBin(xx);
(*arrayX)[ii] = ich*AliTRDseedV1::kNtb+itb;
countChamber[ich] = 1;
}
const Double_t nch = countChamber.Sum();
return (Int_t) nch;
}
AliTRDdEdxReconUtils.cxx:1 AliTRDdEdxReconUtils.cxx:2 AliTRDdEdxReconUtils.cxx:3 AliTRDdEdxReconUtils.cxx:4 AliTRDdEdxReconUtils.cxx:5 AliTRDdEdxReconUtils.cxx:6 AliTRDdEdxReconUtils.cxx:7 AliTRDdEdxReconUtils.cxx:8 AliTRDdEdxReconUtils.cxx:9 AliTRDdEdxReconUtils.cxx:10 AliTRDdEdxReconUtils.cxx:11 AliTRDdEdxReconUtils.cxx:12 AliTRDdEdxReconUtils.cxx:13 AliTRDdEdxReconUtils.cxx:14 AliTRDdEdxReconUtils.cxx:15 AliTRDdEdxReconUtils.cxx:16 AliTRDdEdxReconUtils.cxx:17 AliTRDdEdxReconUtils.cxx:18 AliTRDdEdxReconUtils.cxx:19 AliTRDdEdxReconUtils.cxx:20 AliTRDdEdxReconUtils.cxx:21 AliTRDdEdxReconUtils.cxx:22 AliTRDdEdxReconUtils.cxx:23 AliTRDdEdxReconUtils.cxx:24 AliTRDdEdxReconUtils.cxx:25 AliTRDdEdxReconUtils.cxx:26 AliTRDdEdxReconUtils.cxx:27 AliTRDdEdxReconUtils.cxx:28 AliTRDdEdxReconUtils.cxx:29 AliTRDdEdxReconUtils.cxx:30 AliTRDdEdxReconUtils.cxx:31 AliTRDdEdxReconUtils.cxx:32 AliTRDdEdxReconUtils.cxx:33 AliTRDdEdxReconUtils.cxx:34 AliTRDdEdxReconUtils.cxx:35 AliTRDdEdxReconUtils.cxx:36 AliTRDdEdxReconUtils.cxx:37 AliTRDdEdxReconUtils.cxx:38 AliTRDdEdxReconUtils.cxx:39 AliTRDdEdxReconUtils.cxx:40 AliTRDdEdxReconUtils.cxx:41 AliTRDdEdxReconUtils.cxx:42 AliTRDdEdxReconUtils.cxx:43 AliTRDdEdxReconUtils.cxx:44 AliTRDdEdxReconUtils.cxx:45 AliTRDdEdxReconUtils.cxx:46 AliTRDdEdxReconUtils.cxx:47 AliTRDdEdxReconUtils.cxx:48 AliTRDdEdxReconUtils.cxx:49 AliTRDdEdxReconUtils.cxx:50 AliTRDdEdxReconUtils.cxx:51 AliTRDdEdxReconUtils.cxx:52 AliTRDdEdxReconUtils.cxx:53 AliTRDdEdxReconUtils.cxx:54 AliTRDdEdxReconUtils.cxx:55 AliTRDdEdxReconUtils.cxx:56 AliTRDdEdxReconUtils.cxx:57 AliTRDdEdxReconUtils.cxx:58 AliTRDdEdxReconUtils.cxx:59 AliTRDdEdxReconUtils.cxx:60 AliTRDdEdxReconUtils.cxx:61 AliTRDdEdxReconUtils.cxx:62 AliTRDdEdxReconUtils.cxx:63 AliTRDdEdxReconUtils.cxx:64 AliTRDdEdxReconUtils.cxx:65 AliTRDdEdxReconUtils.cxx:66 AliTRDdEdxReconUtils.cxx:67 AliTRDdEdxReconUtils.cxx:68 AliTRDdEdxReconUtils.cxx:69 AliTRDdEdxReconUtils.cxx:70 AliTRDdEdxReconUtils.cxx:71 AliTRDdEdxReconUtils.cxx:72 AliTRDdEdxReconUtils.cxx:73 AliTRDdEdxReconUtils.cxx:74 AliTRDdEdxReconUtils.cxx:75 AliTRDdEdxReconUtils.cxx:76 AliTRDdEdxReconUtils.cxx:77 AliTRDdEdxReconUtils.cxx:78 AliTRDdEdxReconUtils.cxx:79 AliTRDdEdxReconUtils.cxx:80 AliTRDdEdxReconUtils.cxx:81 AliTRDdEdxReconUtils.cxx:82 AliTRDdEdxReconUtils.cxx:83 AliTRDdEdxReconUtils.cxx:84 AliTRDdEdxReconUtils.cxx:85 AliTRDdEdxReconUtils.cxx:86 AliTRDdEdxReconUtils.cxx:87 AliTRDdEdxReconUtils.cxx:88 AliTRDdEdxReconUtils.cxx:89 AliTRDdEdxReconUtils.cxx:90 AliTRDdEdxReconUtils.cxx:91 AliTRDdEdxReconUtils.cxx:92 AliTRDdEdxReconUtils.cxx:93 AliTRDdEdxReconUtils.cxx:94 AliTRDdEdxReconUtils.cxx:95 AliTRDdEdxReconUtils.cxx:96 AliTRDdEdxReconUtils.cxx:97 AliTRDdEdxReconUtils.cxx:98 AliTRDdEdxReconUtils.cxx:99 AliTRDdEdxReconUtils.cxx:100 AliTRDdEdxReconUtils.cxx:101 AliTRDdEdxReconUtils.cxx:102 AliTRDdEdxReconUtils.cxx:103 AliTRDdEdxReconUtils.cxx:104 AliTRDdEdxReconUtils.cxx:105 AliTRDdEdxReconUtils.cxx:106 AliTRDdEdxReconUtils.cxx:107 AliTRDdEdxReconUtils.cxx:108 AliTRDdEdxReconUtils.cxx:109 AliTRDdEdxReconUtils.cxx:110 AliTRDdEdxReconUtils.cxx:111 AliTRDdEdxReconUtils.cxx:112 AliTRDdEdxReconUtils.cxx:113 AliTRDdEdxReconUtils.cxx:114 AliTRDdEdxReconUtils.cxx:115 AliTRDdEdxReconUtils.cxx:116 AliTRDdEdxReconUtils.cxx:117 AliTRDdEdxReconUtils.cxx:118 AliTRDdEdxReconUtils.cxx:119 AliTRDdEdxReconUtils.cxx:120 AliTRDdEdxReconUtils.cxx:121 AliTRDdEdxReconUtils.cxx:122 AliTRDdEdxReconUtils.cxx:123 AliTRDdEdxReconUtils.cxx:124 AliTRDdEdxReconUtils.cxx:125 AliTRDdEdxReconUtils.cxx:126 AliTRDdEdxReconUtils.cxx:127 AliTRDdEdxReconUtils.cxx:128 AliTRDdEdxReconUtils.cxx:129 AliTRDdEdxReconUtils.cxx:130 AliTRDdEdxReconUtils.cxx:131 AliTRDdEdxReconUtils.cxx:132 AliTRDdEdxReconUtils.cxx:133 AliTRDdEdxReconUtils.cxx:134 AliTRDdEdxReconUtils.cxx:135 AliTRDdEdxReconUtils.cxx:136 AliTRDdEdxReconUtils.cxx:137 AliTRDdEdxReconUtils.cxx:138 AliTRDdEdxReconUtils.cxx:139 AliTRDdEdxReconUtils.cxx:140 AliTRDdEdxReconUtils.cxx:141 AliTRDdEdxReconUtils.cxx:142 AliTRDdEdxReconUtils.cxx:143 AliTRDdEdxReconUtils.cxx:144 AliTRDdEdxReconUtils.cxx:145 AliTRDdEdxReconUtils.cxx:146 AliTRDdEdxReconUtils.cxx:147 AliTRDdEdxReconUtils.cxx:148 AliTRDdEdxReconUtils.cxx:149 AliTRDdEdxReconUtils.cxx:150 AliTRDdEdxReconUtils.cxx:151 AliTRDdEdxReconUtils.cxx:152 AliTRDdEdxReconUtils.cxx:153 AliTRDdEdxReconUtils.cxx:154 AliTRDdEdxReconUtils.cxx:155 AliTRDdEdxReconUtils.cxx:156 AliTRDdEdxReconUtils.cxx:157 AliTRDdEdxReconUtils.cxx:158 AliTRDdEdxReconUtils.cxx:159 AliTRDdEdxReconUtils.cxx:160 AliTRDdEdxReconUtils.cxx:161 AliTRDdEdxReconUtils.cxx:162 AliTRDdEdxReconUtils.cxx:163 AliTRDdEdxReconUtils.cxx:164 AliTRDdEdxReconUtils.cxx:165 AliTRDdEdxReconUtils.cxx:166 AliTRDdEdxReconUtils.cxx:167 AliTRDdEdxReconUtils.cxx:168 AliTRDdEdxReconUtils.cxx:169 AliTRDdEdxReconUtils.cxx:170 AliTRDdEdxReconUtils.cxx:171 AliTRDdEdxReconUtils.cxx:172 AliTRDdEdxReconUtils.cxx:173 AliTRDdEdxReconUtils.cxx:174 AliTRDdEdxReconUtils.cxx:175 AliTRDdEdxReconUtils.cxx:176 AliTRDdEdxReconUtils.cxx:177 AliTRDdEdxReconUtils.cxx:178 AliTRDdEdxReconUtils.cxx:179 AliTRDdEdxReconUtils.cxx:180 AliTRDdEdxReconUtils.cxx:181 AliTRDdEdxReconUtils.cxx:182 AliTRDdEdxReconUtils.cxx:183 AliTRDdEdxReconUtils.cxx:184 AliTRDdEdxReconUtils.cxx:185 AliTRDdEdxReconUtils.cxx:186 AliTRDdEdxReconUtils.cxx:187 AliTRDdEdxReconUtils.cxx:188 AliTRDdEdxReconUtils.cxx:189 AliTRDdEdxReconUtils.cxx:190 AliTRDdEdxReconUtils.cxx:191 AliTRDdEdxReconUtils.cxx:192 AliTRDdEdxReconUtils.cxx:193 AliTRDdEdxReconUtils.cxx:194 AliTRDdEdxReconUtils.cxx:195 AliTRDdEdxReconUtils.cxx:196 AliTRDdEdxReconUtils.cxx:197 AliTRDdEdxReconUtils.cxx:198 AliTRDdEdxReconUtils.cxx:199 AliTRDdEdxReconUtils.cxx:200 AliTRDdEdxReconUtils.cxx:201 AliTRDdEdxReconUtils.cxx:202 AliTRDdEdxReconUtils.cxx:203 AliTRDdEdxReconUtils.cxx:204 AliTRDdEdxReconUtils.cxx:205 AliTRDdEdxReconUtils.cxx:206 AliTRDdEdxReconUtils.cxx:207 AliTRDdEdxReconUtils.cxx:208 AliTRDdEdxReconUtils.cxx:209 AliTRDdEdxReconUtils.cxx:210 AliTRDdEdxReconUtils.cxx:211 AliTRDdEdxReconUtils.cxx:212 AliTRDdEdxReconUtils.cxx:213 AliTRDdEdxReconUtils.cxx:214 AliTRDdEdxReconUtils.cxx:215 AliTRDdEdxReconUtils.cxx:216 AliTRDdEdxReconUtils.cxx:217 AliTRDdEdxReconUtils.cxx:218 AliTRDdEdxReconUtils.cxx:219 AliTRDdEdxReconUtils.cxx:220 AliTRDdEdxReconUtils.cxx:221 AliTRDdEdxReconUtils.cxx:222 AliTRDdEdxReconUtils.cxx:223 AliTRDdEdxReconUtils.cxx:224 AliTRDdEdxReconUtils.cxx:225 AliTRDdEdxReconUtils.cxx:226 AliTRDdEdxReconUtils.cxx:227 AliTRDdEdxReconUtils.cxx:228 AliTRDdEdxReconUtils.cxx:229 AliTRDdEdxReconUtils.cxx:230 AliTRDdEdxReconUtils.cxx:231 AliTRDdEdxReconUtils.cxx:232 AliTRDdEdxReconUtils.cxx:233 AliTRDdEdxReconUtils.cxx:234 AliTRDdEdxReconUtils.cxx:235 AliTRDdEdxReconUtils.cxx:236 AliTRDdEdxReconUtils.cxx:237 AliTRDdEdxReconUtils.cxx:238 AliTRDdEdxReconUtils.cxx:239 AliTRDdEdxReconUtils.cxx:240 AliTRDdEdxReconUtils.cxx:241 AliTRDdEdxReconUtils.cxx:242 AliTRDdEdxReconUtils.cxx:243 AliTRDdEdxReconUtils.cxx:244 AliTRDdEdxReconUtils.cxx:245 AliTRDdEdxReconUtils.cxx:246 AliTRDdEdxReconUtils.cxx:247 AliTRDdEdxReconUtils.cxx:248 AliTRDdEdxReconUtils.cxx:249 AliTRDdEdxReconUtils.cxx:250 AliTRDdEdxReconUtils.cxx:251 AliTRDdEdxReconUtils.cxx:252 AliTRDdEdxReconUtils.cxx:253 AliTRDdEdxReconUtils.cxx:254 AliTRDdEdxReconUtils.cxx:255 AliTRDdEdxReconUtils.cxx:256 AliTRDdEdxReconUtils.cxx:257 AliTRDdEdxReconUtils.cxx:258 AliTRDdEdxReconUtils.cxx:259 AliTRDdEdxReconUtils.cxx:260 AliTRDdEdxReconUtils.cxx:261 AliTRDdEdxReconUtils.cxx:262 AliTRDdEdxReconUtils.cxx:263 AliTRDdEdxReconUtils.cxx:264 AliTRDdEdxReconUtils.cxx:265 AliTRDdEdxReconUtils.cxx:266 AliTRDdEdxReconUtils.cxx:267 AliTRDdEdxReconUtils.cxx:268 AliTRDdEdxReconUtils.cxx:269 AliTRDdEdxReconUtils.cxx:270 AliTRDdEdxReconUtils.cxx:271 AliTRDdEdxReconUtils.cxx:272 AliTRDdEdxReconUtils.cxx:273 AliTRDdEdxReconUtils.cxx:274 AliTRDdEdxReconUtils.cxx:275 AliTRDdEdxReconUtils.cxx:276 AliTRDdEdxReconUtils.cxx:277 AliTRDdEdxReconUtils.cxx:278 AliTRDdEdxReconUtils.cxx:279 AliTRDdEdxReconUtils.cxx:280 AliTRDdEdxReconUtils.cxx:281 AliTRDdEdxReconUtils.cxx:282 AliTRDdEdxReconUtils.cxx:283 AliTRDdEdxReconUtils.cxx:284 AliTRDdEdxReconUtils.cxx:285 AliTRDdEdxReconUtils.cxx:286 AliTRDdEdxReconUtils.cxx:287 AliTRDdEdxReconUtils.cxx:288 AliTRDdEdxReconUtils.cxx:289 AliTRDdEdxReconUtils.cxx:290 AliTRDdEdxReconUtils.cxx:291 AliTRDdEdxReconUtils.cxx:292 AliTRDdEdxReconUtils.cxx:293 AliTRDdEdxReconUtils.cxx:294 AliTRDdEdxReconUtils.cxx:295 AliTRDdEdxReconUtils.cxx:296 AliTRDdEdxReconUtils.cxx:297 AliTRDdEdxReconUtils.cxx:298 AliTRDdEdxReconUtils.cxx:299 AliTRDdEdxReconUtils.cxx:300 AliTRDdEdxReconUtils.cxx:301 AliTRDdEdxReconUtils.cxx:302 AliTRDdEdxReconUtils.cxx:303 AliTRDdEdxReconUtils.cxx:304 AliTRDdEdxReconUtils.cxx:305 AliTRDdEdxReconUtils.cxx:306 AliTRDdEdxReconUtils.cxx:307 AliTRDdEdxReconUtils.cxx:308 AliTRDdEdxReconUtils.cxx:309 AliTRDdEdxReconUtils.cxx:310 AliTRDdEdxReconUtils.cxx:311 AliTRDdEdxReconUtils.cxx:312 AliTRDdEdxReconUtils.cxx:313 AliTRDdEdxReconUtils.cxx:314 AliTRDdEdxReconUtils.cxx:315 AliTRDdEdxReconUtils.cxx:316 AliTRDdEdxReconUtils.cxx:317 AliTRDdEdxReconUtils.cxx:318 AliTRDdEdxReconUtils.cxx:319 AliTRDdEdxReconUtils.cxx:320 AliTRDdEdxReconUtils.cxx:321 AliTRDdEdxReconUtils.cxx:322 AliTRDdEdxReconUtils.cxx:323 AliTRDdEdxReconUtils.cxx:324 AliTRDdEdxReconUtils.cxx:325 AliTRDdEdxReconUtils.cxx:326 AliTRDdEdxReconUtils.cxx:327 AliTRDdEdxReconUtils.cxx:328 AliTRDdEdxReconUtils.cxx:329 AliTRDdEdxReconUtils.cxx:330 AliTRDdEdxReconUtils.cxx:331 AliTRDdEdxReconUtils.cxx:332 AliTRDdEdxReconUtils.cxx:333 AliTRDdEdxReconUtils.cxx:334