#include <TList.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TChain.h>
#include <TFile.h>
#include <TString.h>
#include <TPRegexp.h>
#include <TGraphErrors.h>
#include <AliDCSSensor.h>
#include <AliGRPObject.h>
#include <AliESDpid.h>
#include <AliLog.h>
#include <AliESDEvent.h>
#include <AliExternalTrackParam.h>
#include <AliESDtrack.h>
#include <AliESDInputHandler.h>
#include <AliAnalysisManager.h>
#include <AliSplineFit.h>
#include <AliCDBId.h>
#include <AliCDBManager.h>
#include <AliCDBEntry.h>
#include <AliCDBRunRange.h>
#include <AliTender.h>
#include <AliTPCcalibDButil.h>
#include <AliPID.h>
#include "AliTPCTenderSupply.h"
ClassImp(AliTPCTenderSupply)
AliTPCTenderSupply::AliTPCTenderSupply() :
AliTenderSupply(),
fESDpid(0x0),
fGainNew(0x0),
fGainOld(0x0),
fGainAttachment(0x0),
fIsMC(kFALSE),
fGainCorrection(kTRUE),
fAttachmentCorrection(kFALSE),
fPcorrection(kFALSE),
fMultiCorrection(kFALSE),
fArrPidResponseMaster(0x0),
fMultiCorrMean(0x0),
fMultiCorrSigma(0x0),
fSpecificStorages(0x0),
fDebugLevel(0),
fMip(50),
fGRP(0x0),
fBeamType("PP"),
fLHCperiod(),
fMCperiod(),
fRecoPass(0)
{
}
AliTPCTenderSupply::AliTPCTenderSupply(const char *name, const AliTender *tender) :
AliTenderSupply(name,tender),
fESDpid(0x0),
fGainNew(0x0),
fGainOld(0x0),
fGainAttachment(0x0),
fIsMC(kFALSE),
fGainCorrection(kTRUE),
fAttachmentCorrection(kFALSE),
fPcorrection(kFALSE),
fMultiCorrection(kFALSE),
fArrPidResponseMaster(0x0),
fMultiCorrMean(0x0),
fMultiCorrSigma(0x0),
fSpecificStorages(0x0),
fDebugLevel(0),
fMip(50),
fGRP(0x0),
fBeamType("PP"),
fLHCperiod(),
fMCperiod(),
fRecoPass(0)
{
}
void AliTPCTenderSupply::Init()
{
AliLog::SetClassDebugLevel("AliTPCTenderSupply",10);
AliAnalysisManager *mgr=AliAnalysisManager::GetAnalysisManager();
fIsMC=mgr->GetMCtruthEventHandler();
fESDpid=fTender->GetESDhandler()->GetESDpid();
if (!fESDpid) {
fESDpid=new AliESDpid(fIsMC);
fTender->GetESDhandler()->SetESDpid(fESDpid);
}
if (fSpecificStorages){
TNamed *storage;
TIter nextStorage(fSpecificStorages);;
while ( (storage=(TNamed*)nextStorage()) ){
fTender->GetCDBManager()->SetSpecificStorage(storage->GetName(),storage->GetTitle());
AliInfo(Form("Setting specific storage: %s (%s)",storage->GetName(), storage->GetTitle()));
}
}
if (fIsMC){
fGainCorrection=kFALSE;
fPcorrection=kFALSE;
fAttachmentCorrection=kFALSE;
}
}
void AliTPCTenderSupply::ProcessEvent()
{
AliESDEvent *event=fTender->GetEvent();
if (!event) return;
if (fTender->RunChanged()){
SetBeamType();
SetRecoInfo();
if ( fBeamType == "PBPB" ) fMultiCorrection=kTRUE;
if (fDebugLevel>0) AliInfo(Form("Run Changed (%d)",fTender->GetRun()));
SetParametrisation();
if (fGainCorrection) SetSplines();
}
Double_t corrFactor = GetGainCorrection();
Double_t corrAttachSlope = 0;
Double_t corrGainMultiplicityPbPb=1;
if (fAttachmentCorrection && fGainAttachment) corrAttachSlope = fGainAttachment->Eval(event->GetTimeStamp());
if (fMultiCorrection&&fMultiCorrMean) corrGainMultiplicityPbPb = fMultiCorrMean->Eval(GetTPCMultiplicityBin());
Int_t ntracks=event->GetNumberOfTracks();
for(Int_t itrack = 0; itrack < ntracks; itrack++){
AliESDtrack *track=event->GetTrack(itrack);
const AliExternalTrackParam *inner=track->GetInnerParam();
if (!inner) continue;
Float_t meanDrift= 250. - 0.5*TMath::Abs(2*inner->GetZ() + (247-83)*inner->GetTgl());
Double_t corrGainTotal=corrFactor*(1 + corrAttachSlope*180.)/(1 + corrAttachSlope*meanDrift)/corrGainMultiplicityPbPb;
track->SetTPCsignal(track->GetTPCsignal()*corrGainTotal ,track->GetTPCsignalSigma(), track->GetTPCsignalN());
fESDpid->MakeTPCPID(track);
}
}
Double_t AliTPCTenderSupply::GetTPCMultiplicityBin()
{
AliESDEvent *event=fTender->GetEvent();
const AliESDVertex* vertexTPC = event->GetPrimaryVertexTPC();
Double_t tpcMulti=0.;
if(vertexTPC){
Double_t vertexContribTPC=vertexTPC->GetNContributors();
tpcMulti=vertexContribTPC/150.;
if (tpcMulti>20.) tpcMulti=20.;
}
return tpcMulti;
}
Double_t AliTPCTenderSupply::GetMultiplicityCorrectionMean(Double_t tpcMulti)
{
Double_t meancorrection;
if (fIsMC)
{
meancorrection=1.00054 + (0.00189566)*tpcMulti + (2.07777e-05)*tpcMulti*tpcMulti;
}
else
{
meancorrection=0.999509 + (-0.00271488)*tpcMulti + (-2.98873e-06)*tpcMulti*tpcMulti;
}
return meancorrection;
}
Double_t AliTPCTenderSupply::GetMultiplicityCorrectionSigma(Double_t tpcMulti)
{
Double_t sigmacorrection;
if (fIsMC)
{
sigmacorrection=0.95972 + 0.0103721*tpcMulti;
}
else
{
sigmacorrection=1.01817 + 0.0143673*tpcMulti;
}
return sigmacorrection;
}
void AliTPCTenderSupply::SetSplines()
{
AliInfo("Update Gain splines");
fPcorrection=kFALSE;
AliCDBEntry *entryGRP=fTender->GetCDBManager()->Get("GRP/GRP/Data",fTender->GetRun());
if (!entryGRP) {
AliError("No new GRP entry found");
} else {
fGRP = (AliGRPObject*)entryGRP->GetObject();
}
if (fDebugLevel>1) AliInfo(Form("GRP entry used: %s",entryGRP->GetId().ToString().Data()));
fGainNew=0x0;
fGainOld=0x0;
AliAnalysisManager*mgr = AliAnalysisManager::GetAnalysisManager();
AliAnalysisTaskSE *task = (AliAnalysisTaskSE*)mgr->GetTasks()->First();
if (!task) return;
TTree *tree=((TChain*)task->GetInputData(0))->GetTree();
if (!tree) {
AliError("Tree not found in ESDhandler");
return;
}
TList *userInfo=(TList*)tree->GetUserInfo();
if (!userInfo) {
AliError("No UserInfo found in tree");
return;
}
TList *cdbList=(TList*)userInfo->FindObject("cdbList");
if (!cdbList) {
AliError("No cdbList found in UserInfo");
if (AliLog::GetGlobalLogLevel()>=AliLog::kError) userInfo->Print();
return;
}
TIter nextCDB(cdbList);
TObjString *os=0x0;
while ( (os=(TObjString*)nextCDB()) ){
if (!(os->GetString().Contains("TPC/Calib/TimeGain"))) continue;
AliCDBId *id=AliCDBId::MakeFromString(os->GetString());
AliCDBEntry *entry=fTender->GetCDBManager()->Get(*id);
if (!entry) {
AliError("No previous gain calibration entry found");
return;
}
if (fDebugLevel>1) AliInfo(Form("Used old Gain entry: %s",entry->GetId().ToString().Data()));
TObjArray *arr=(TObjArray *)entry->GetObject();
if (!arr) {
AliError("Gain Splines array not found in calibration entry");
return;
}
AliSplineFit *fit=(AliSplineFit*)arr->At(0);
if (!fit) {
AliError("Spline fit not found in array");
return;
}
fGainOld = fit;
delete id;
break;
}
Bool_t special10cPass2=fLHCperiod=="LHC10C" && fRecoPass==2;
AliCDBEntry *entryNew=0x0;
if (special10cPass2) {
entryNew=fTender->GetCDBManager()->Get("TPC/Calib/TimeGain",fTender->GetRun(),8);
}
if (!entryNew) {
AliError("No new gain calibration entry found");
return;
}
if (fDebugLevel>1) AliInfo(Form("Used new Gain entry: %s",entryNew->GetId().ToString().Data()));
if (entryNew->GetId().GetLastRun()==AliCDBRunRange::Infinity()){
if (fDebugLevel>0) AliInfo("Use P correction");
fPcorrection=kTRUE;
}
TObjArray *arrSplines=(TObjArray *)entryNew->GetObject();
if (!arrSplines) {
AliError("Gain Splines array not found in new calibration entry");
return;
}
fGainNew = (AliSplineFit*)arrSplines->At(0);
fGainAttachment = (TGraphErrors*)arrSplines->FindObject("TGRAPHERRORS_MEAN_ATTACHMENT_BEAM_ALL");
if (!fGainNew) AliError("No recent spline fit object found");
}
Double_t AliTPCTenderSupply::GetGainCorrection()
{
AliESDEvent *event=fTender->GetEvent();
UInt_t time=event->GetTimeStamp();
Double_t gain=1;
if (fGainOld){
if ( fLHCperiod.Contains("LHC09") ||
((fLHCperiod=="LHC10B" || fLHCperiod=="LHC10C" || fLHCperiod=="LHC10D") && fRecoPass==2) ||
(fLHCperiod=="LHC10E" && fRecoPass==1) ||
(fLHCperiod=="LHC10H" && fRecoPass==1)
) {
Double_t valDefault = fGainOld->Eval(time);
Double_t valConst = AliTPCcalibDButil::EvalGraphConst(fGainOld, time);
gain = valDefault/valConst;
}
if (fGainNew){
gain *= AliTPCcalibDButil::EvalGraphConst(fGainOld,time)/AliTPCcalibDButil::EvalGraphConst(fGainNew,time);
}
}
if (fPcorrection){
if (fGRP) {
Double_t pressure=fGRP->GetCavernAtmosPressure()->GetValue(time);
gain=AliTPCcalibDButil::EvalGraphConst(fGainOld,time)/(7.03814-0.00459798*pressure)/51.51*fMip;
}
}
return gain;
}
void AliTPCTenderSupply::SetBeamType()
{
fBeamType=fTender->GetEvent()->GetBeamType();
if (fBeamType.IsNull()||fBeamType.Contains("No Beam")) fBeamType="p-p";
fBeamType.ToUpper();
fBeamType.ReplaceAll("-","");
}
void AliTPCTenderSupply::SetRecoInfo()
{
fRecoPass=0;
fLHCperiod="";
fMCperiod="";
AliESDInputHandler *esdIH = dynamic_cast<AliESDInputHandler*> (fTender->GetESDhandler());
if (!esdIH) return;
TTree *tree= (TTree*)esdIH->GetTree();
TFile *file= (TFile*)tree->GetCurrentFile();
if (!file) {
AliError("Current file not found, cannot set reconstruction information");
return;
}
TString fileName(file->GetName());
Int_t run=fTender->GetRun();
TPRegexp reg(".*(LHC11[a-z]+[0-9]+[a-z]*)/.*");
if (run>=114737&&run<=117223) { fLHCperiod="LHC10B"; fMCperiod="LHC10D1"; }
else if (run>=118503&&run<=121040) { fLHCperiod="LHC10C"; fMCperiod="LHC10D1"; }
else if (run>=122195&&run<=126437) { fLHCperiod="LHC10D"; fMCperiod="LHC10F6A"; }
else if (run>=127719&&run<=130850) { fLHCperiod="LHC10E"; fMCperiod="LHC10F6A"; }
else if (run>=133004&&run<=135029) { fLHCperiod="LHC10F"; fMCperiod="LHC10F6A"; }
else if (run>=135654&&run<=136377) { fLHCperiod="LHC10G"; fMCperiod="LHC10F6A"; }
else if (run>=136851&&run<=139517) {
fLHCperiod="LHC10H";
fMCperiod="LHC10H8";
if (reg.MatchB(fileName)) fMCperiod="LHC11A10";
}
else if ( (run>=144871 && run <=146459 ) || ( run >=146686 && run<= 146860) ) {
fLHCperiod="LHC11A"; fMCperiod="LHC10F6A";
}
else if ( run>=148541 ){
fLHCperiod="LHC11B"; fMCperiod="LHC10F6A";
}
if (fBeamType=="PP" && reg.MatchB(fileName)) fMCperiod="LHC11B2";
if (fileName.Contains("/pass1")) {
fRecoPass=1;
} else if (fileName.Contains("/pass2")) {
fRecoPass=2;
} else if (fileName.Contains("/pass3")) {
fRecoPass=3;
}
}
void AliTPCTenderSupply::SetParametrisation()
{
if (fLHCperiod.IsNull()) {
AliError("No period set, not changing parametrisation");
return;
}
AliCDBEntry *pidCDB=fTender->GetCDBManager()->Get("TPC/Calib/PidResponse",fTender->GetRun());
if (!fArrPidResponseMaster && pidCDB){
fArrPidResponseMaster=dynamic_cast<TObjArray*>(pidCDB->GetObject());
AliInfo(Form("Using pid response objects: %s",pidCDB->GetId().ToString().Data()));
}
if (!fArrPidResponseMaster){
AliError("No valid PidResponse master found in OCDB");
return;
}
TString datatype="DATA";
TString period=fLHCperiod;
if (fIsMC) {
datatype="MC";
fRecoPass=1;
period=fMCperiod;
}
fMultiCorrMean=(TF1*)fArrPidResponseMaster->FindObject(Form("TF1_%s_ALL_%s_PASS%d_%s_MEAN",datatype.Data(),period.Data(),fRecoPass,fBeamType.Data()));
if (fMultiCorrMean) AliInfo(Form("Setting multiplicity correction function: %s",fMultiCorrMean->GetName()));
}
void AliTPCTenderSupply::AddSpecificStorage(const char* cdbPath, const char* storage)
{
if (!fSpecificStorages) fSpecificStorages=new TObjArray;
fSpecificStorages->Add(new TNamed(cdbPath, storage));
}
AliTPCTenderSupply.cxx:10 AliTPCTenderSupply.cxx:11 AliTPCTenderSupply.cxx:12 AliTPCTenderSupply.cxx:13 AliTPCTenderSupply.cxx:14 AliTPCTenderSupply.cxx:15 AliTPCTenderSupply.cxx:16 AliTPCTenderSupply.cxx:17 AliTPCTenderSupply.cxx:18 AliTPCTenderSupply.cxx:19 AliTPCTenderSupply.cxx:20 AliTPCTenderSupply.cxx:21 AliTPCTenderSupply.cxx:22 AliTPCTenderSupply.cxx:23 AliTPCTenderSupply.cxx:24 AliTPCTenderSupply.cxx:25 AliTPCTenderSupply.cxx:26 AliTPCTenderSupply.cxx:27 AliTPCTenderSupply.cxx:28 AliTPCTenderSupply.cxx:29 AliTPCTenderSupply.cxx:30 AliTPCTenderSupply.cxx:31 AliTPCTenderSupply.cxx:32 AliTPCTenderSupply.cxx:33 AliTPCTenderSupply.cxx:34 AliTPCTenderSupply.cxx:35 AliTPCTenderSupply.cxx:36 AliTPCTenderSupply.cxx:37 AliTPCTenderSupply.cxx:38 AliTPCTenderSupply.cxx:39 AliTPCTenderSupply.cxx:40 AliTPCTenderSupply.cxx:41 AliTPCTenderSupply.cxx:42 AliTPCTenderSupply.cxx:43 AliTPCTenderSupply.cxx:44 AliTPCTenderSupply.cxx:45 AliTPCTenderSupply.cxx:46 AliTPCTenderSupply.cxx:47 AliTPCTenderSupply.cxx:48 AliTPCTenderSupply.cxx:49 AliTPCTenderSupply.cxx:50 AliTPCTenderSupply.cxx:51 AliTPCTenderSupply.cxx:52 AliTPCTenderSupply.cxx:53 AliTPCTenderSupply.cxx:54 AliTPCTenderSupply.cxx:55 AliTPCTenderSupply.cxx:56 AliTPCTenderSupply.cxx:57 AliTPCTenderSupply.cxx:58 AliTPCTenderSupply.cxx:59 AliTPCTenderSupply.cxx:60 AliTPCTenderSupply.cxx:61 AliTPCTenderSupply.cxx:62 AliTPCTenderSupply.cxx:63 AliTPCTenderSupply.cxx:64 AliTPCTenderSupply.cxx:65 AliTPCTenderSupply.cxx:66 AliTPCTenderSupply.cxx:67 AliTPCTenderSupply.cxx:68 AliTPCTenderSupply.cxx:69 AliTPCTenderSupply.cxx:70 AliTPCTenderSupply.cxx:71 AliTPCTenderSupply.cxx:72 AliTPCTenderSupply.cxx:73 AliTPCTenderSupply.cxx:74 AliTPCTenderSupply.cxx:75 AliTPCTenderSupply.cxx:76 AliTPCTenderSupply.cxx:77 AliTPCTenderSupply.cxx:78 AliTPCTenderSupply.cxx:79 AliTPCTenderSupply.cxx:80 AliTPCTenderSupply.cxx:81 AliTPCTenderSupply.cxx:82 AliTPCTenderSupply.cxx:83 AliTPCTenderSupply.cxx:84 AliTPCTenderSupply.cxx:85 AliTPCTenderSupply.cxx:86 AliTPCTenderSupply.cxx:87 AliTPCTenderSupply.cxx:88 AliTPCTenderSupply.cxx:89 AliTPCTenderSupply.cxx:90 AliTPCTenderSupply.cxx:91 AliTPCTenderSupply.cxx:92 AliTPCTenderSupply.cxx:93 AliTPCTenderSupply.cxx:94 AliTPCTenderSupply.cxx:95 AliTPCTenderSupply.cxx:96 AliTPCTenderSupply.cxx:97 AliTPCTenderSupply.cxx:98 AliTPCTenderSupply.cxx:99 AliTPCTenderSupply.cxx:100 AliTPCTenderSupply.cxx:101 AliTPCTenderSupply.cxx:102 AliTPCTenderSupply.cxx:103 AliTPCTenderSupply.cxx:104 AliTPCTenderSupply.cxx:105 AliTPCTenderSupply.cxx:106 AliTPCTenderSupply.cxx:107 AliTPCTenderSupply.cxx:108 AliTPCTenderSupply.cxx:109 AliTPCTenderSupply.cxx:110 AliTPCTenderSupply.cxx:111 AliTPCTenderSupply.cxx:112 AliTPCTenderSupply.cxx:113 AliTPCTenderSupply.cxx:114 AliTPCTenderSupply.cxx:115 AliTPCTenderSupply.cxx:116 AliTPCTenderSupply.cxx:117 AliTPCTenderSupply.cxx:118 AliTPCTenderSupply.cxx:119 AliTPCTenderSupply.cxx:120 AliTPCTenderSupply.cxx:121 AliTPCTenderSupply.cxx:122 AliTPCTenderSupply.cxx:123 AliTPCTenderSupply.cxx:124 AliTPCTenderSupply.cxx:125 AliTPCTenderSupply.cxx:126 AliTPCTenderSupply.cxx:127 AliTPCTenderSupply.cxx:128 AliTPCTenderSupply.cxx:129 AliTPCTenderSupply.cxx:130 AliTPCTenderSupply.cxx:131 AliTPCTenderSupply.cxx:132 AliTPCTenderSupply.cxx:133 AliTPCTenderSupply.cxx:134 AliTPCTenderSupply.cxx:135 AliTPCTenderSupply.cxx:136 AliTPCTenderSupply.cxx:137 AliTPCTenderSupply.cxx:138 AliTPCTenderSupply.cxx:139 AliTPCTenderSupply.cxx:140 AliTPCTenderSupply.cxx:141 AliTPCTenderSupply.cxx:142 AliTPCTenderSupply.cxx:143 AliTPCTenderSupply.cxx:144 AliTPCTenderSupply.cxx:145 AliTPCTenderSupply.cxx:146 AliTPCTenderSupply.cxx:147 AliTPCTenderSupply.cxx:148 AliTPCTenderSupply.cxx:149 AliTPCTenderSupply.cxx:150 AliTPCTenderSupply.cxx:151 AliTPCTenderSupply.cxx:152 AliTPCTenderSupply.cxx:153 AliTPCTenderSupply.cxx:154 AliTPCTenderSupply.cxx:155 AliTPCTenderSupply.cxx:156 AliTPCTenderSupply.cxx:157 AliTPCTenderSupply.cxx:158 AliTPCTenderSupply.cxx:159 AliTPCTenderSupply.cxx:160 AliTPCTenderSupply.cxx:161 AliTPCTenderSupply.cxx:162 AliTPCTenderSupply.cxx:163 AliTPCTenderSupply.cxx:164 AliTPCTenderSupply.cxx:165 AliTPCTenderSupply.cxx:166 AliTPCTenderSupply.cxx:167 AliTPCTenderSupply.cxx:168 AliTPCTenderSupply.cxx:169 AliTPCTenderSupply.cxx:170 AliTPCTenderSupply.cxx:171 AliTPCTenderSupply.cxx:172 AliTPCTenderSupply.cxx:173 AliTPCTenderSupply.cxx:174 AliTPCTenderSupply.cxx:175 AliTPCTenderSupply.cxx:176 AliTPCTenderSupply.cxx:177 AliTPCTenderSupply.cxx:178 AliTPCTenderSupply.cxx:179 AliTPCTenderSupply.cxx:180 AliTPCTenderSupply.cxx:181 AliTPCTenderSupply.cxx:182 AliTPCTenderSupply.cxx:183 AliTPCTenderSupply.cxx:184 AliTPCTenderSupply.cxx:185 AliTPCTenderSupply.cxx:186 AliTPCTenderSupply.cxx:187 AliTPCTenderSupply.cxx:188 AliTPCTenderSupply.cxx:189 AliTPCTenderSupply.cxx:190 AliTPCTenderSupply.cxx:191 AliTPCTenderSupply.cxx:192 AliTPCTenderSupply.cxx:193 AliTPCTenderSupply.cxx:194 AliTPCTenderSupply.cxx:195 AliTPCTenderSupply.cxx:196 AliTPCTenderSupply.cxx:197 AliTPCTenderSupply.cxx:198 AliTPCTenderSupply.cxx:199 AliTPCTenderSupply.cxx:200 AliTPCTenderSupply.cxx:201 AliTPCTenderSupply.cxx:202 AliTPCTenderSupply.cxx:203 AliTPCTenderSupply.cxx:204 AliTPCTenderSupply.cxx:205 AliTPCTenderSupply.cxx:206 AliTPCTenderSupply.cxx:207 AliTPCTenderSupply.cxx:208 AliTPCTenderSupply.cxx:209 AliTPCTenderSupply.cxx:210 AliTPCTenderSupply.cxx:211 AliTPCTenderSupply.cxx:212 AliTPCTenderSupply.cxx:213 AliTPCTenderSupply.cxx:214 AliTPCTenderSupply.cxx:215 AliTPCTenderSupply.cxx:216 AliTPCTenderSupply.cxx:217 AliTPCTenderSupply.cxx:218 AliTPCTenderSupply.cxx:219 AliTPCTenderSupply.cxx:220 AliTPCTenderSupply.cxx:221 AliTPCTenderSupply.cxx:222 AliTPCTenderSupply.cxx:223 AliTPCTenderSupply.cxx:224 AliTPCTenderSupply.cxx:225 AliTPCTenderSupply.cxx:226 AliTPCTenderSupply.cxx:227 AliTPCTenderSupply.cxx:228 AliTPCTenderSupply.cxx:229 AliTPCTenderSupply.cxx:230 AliTPCTenderSupply.cxx:231 AliTPCTenderSupply.cxx:232 AliTPCTenderSupply.cxx:233 AliTPCTenderSupply.cxx:234 AliTPCTenderSupply.cxx:235 AliTPCTenderSupply.cxx:236 AliTPCTenderSupply.cxx:237 AliTPCTenderSupply.cxx:238 AliTPCTenderSupply.cxx:239 AliTPCTenderSupply.cxx:240 AliTPCTenderSupply.cxx:241 AliTPCTenderSupply.cxx:242 AliTPCTenderSupply.cxx:243 AliTPCTenderSupply.cxx:244 AliTPCTenderSupply.cxx:245 AliTPCTenderSupply.cxx:246 AliTPCTenderSupply.cxx:247 AliTPCTenderSupply.cxx:248 AliTPCTenderSupply.cxx:249 AliTPCTenderSupply.cxx:250 AliTPCTenderSupply.cxx:251 AliTPCTenderSupply.cxx:252 AliTPCTenderSupply.cxx:253 AliTPCTenderSupply.cxx:254 AliTPCTenderSupply.cxx:255 AliTPCTenderSupply.cxx:256 AliTPCTenderSupply.cxx:257 AliTPCTenderSupply.cxx:258 AliTPCTenderSupply.cxx:259 AliTPCTenderSupply.cxx:260 AliTPCTenderSupply.cxx:261 AliTPCTenderSupply.cxx:262 AliTPCTenderSupply.cxx:263 AliTPCTenderSupply.cxx:264 AliTPCTenderSupply.cxx:265 AliTPCTenderSupply.cxx:266 AliTPCTenderSupply.cxx:267 AliTPCTenderSupply.cxx:268 AliTPCTenderSupply.cxx:269 AliTPCTenderSupply.cxx:270 AliTPCTenderSupply.cxx:271 AliTPCTenderSupply.cxx:272 AliTPCTenderSupply.cxx:273 AliTPCTenderSupply.cxx:274 AliTPCTenderSupply.cxx:275 AliTPCTenderSupply.cxx:276 AliTPCTenderSupply.cxx:277 AliTPCTenderSupply.cxx:278 AliTPCTenderSupply.cxx:279 AliTPCTenderSupply.cxx:280 AliTPCTenderSupply.cxx:281 AliTPCTenderSupply.cxx:282 AliTPCTenderSupply.cxx:283 AliTPCTenderSupply.cxx:284 AliTPCTenderSupply.cxx:285 AliTPCTenderSupply.cxx:286 AliTPCTenderSupply.cxx:287 AliTPCTenderSupply.cxx:288 AliTPCTenderSupply.cxx:289 AliTPCTenderSupply.cxx:290 AliTPCTenderSupply.cxx:291 AliTPCTenderSupply.cxx:292 AliTPCTenderSupply.cxx:293 AliTPCTenderSupply.cxx:294 AliTPCTenderSupply.cxx:295 AliTPCTenderSupply.cxx:296 AliTPCTenderSupply.cxx:297 AliTPCTenderSupply.cxx:298 AliTPCTenderSupply.cxx:299 AliTPCTenderSupply.cxx:300 AliTPCTenderSupply.cxx:301 AliTPCTenderSupply.cxx:302 AliTPCTenderSupply.cxx:303 AliTPCTenderSupply.cxx:304 AliTPCTenderSupply.cxx:305 AliTPCTenderSupply.cxx:306 AliTPCTenderSupply.cxx:307 AliTPCTenderSupply.cxx:308 AliTPCTenderSupply.cxx:309 AliTPCTenderSupply.cxx:310 AliTPCTenderSupply.cxx:311 AliTPCTenderSupply.cxx:312 AliTPCTenderSupply.cxx:313 AliTPCTenderSupply.cxx:314 AliTPCTenderSupply.cxx:315 AliTPCTenderSupply.cxx:316 AliTPCTenderSupply.cxx:317 AliTPCTenderSupply.cxx:318 AliTPCTenderSupply.cxx:319 AliTPCTenderSupply.cxx:320 AliTPCTenderSupply.cxx:321 AliTPCTenderSupply.cxx:322 AliTPCTenderSupply.cxx:323 AliTPCTenderSupply.cxx:324 AliTPCTenderSupply.cxx:325 AliTPCTenderSupply.cxx:326 AliTPCTenderSupply.cxx:327 AliTPCTenderSupply.cxx:328 AliTPCTenderSupply.cxx:329 AliTPCTenderSupply.cxx:330 AliTPCTenderSupply.cxx:331 AliTPCTenderSupply.cxx:332 AliTPCTenderSupply.cxx:333 AliTPCTenderSupply.cxx:334 AliTPCTenderSupply.cxx:335 AliTPCTenderSupply.cxx:336 AliTPCTenderSupply.cxx:337 AliTPCTenderSupply.cxx:338 AliTPCTenderSupply.cxx:339 AliTPCTenderSupply.cxx:340 AliTPCTenderSupply.cxx:341 AliTPCTenderSupply.cxx:342 AliTPCTenderSupply.cxx:343 AliTPCTenderSupply.cxx:344 AliTPCTenderSupply.cxx:345 AliTPCTenderSupply.cxx:346 AliTPCTenderSupply.cxx:347 AliTPCTenderSupply.cxx:348 AliTPCTenderSupply.cxx:349 AliTPCTenderSupply.cxx:350 AliTPCTenderSupply.cxx:351 AliTPCTenderSupply.cxx:352 AliTPCTenderSupply.cxx:353 AliTPCTenderSupply.cxx:354 AliTPCTenderSupply.cxx:355 AliTPCTenderSupply.cxx:356 AliTPCTenderSupply.cxx:357 AliTPCTenderSupply.cxx:358 AliTPCTenderSupply.cxx:359 AliTPCTenderSupply.cxx:360 AliTPCTenderSupply.cxx:361 AliTPCTenderSupply.cxx:362 AliTPCTenderSupply.cxx:363 AliTPCTenderSupply.cxx:364 AliTPCTenderSupply.cxx:365 AliTPCTenderSupply.cxx:366 AliTPCTenderSupply.cxx:367 AliTPCTenderSupply.cxx:368 AliTPCTenderSupply.cxx:369 AliTPCTenderSupply.cxx:370 AliTPCTenderSupply.cxx:371 AliTPCTenderSupply.cxx:372 AliTPCTenderSupply.cxx:373 AliTPCTenderSupply.cxx:374 AliTPCTenderSupply.cxx:375 AliTPCTenderSupply.cxx:376 AliTPCTenderSupply.cxx:377 AliTPCTenderSupply.cxx:378 AliTPCTenderSupply.cxx:379 AliTPCTenderSupply.cxx:380 AliTPCTenderSupply.cxx:381 AliTPCTenderSupply.cxx:382 AliTPCTenderSupply.cxx:383 AliTPCTenderSupply.cxx:384 AliTPCTenderSupply.cxx:385 AliTPCTenderSupply.cxx:386 AliTPCTenderSupply.cxx:387 AliTPCTenderSupply.cxx:388 AliTPCTenderSupply.cxx:389 AliTPCTenderSupply.cxx:390 AliTPCTenderSupply.cxx:391 AliTPCTenderSupply.cxx:392 AliTPCTenderSupply.cxx:393 AliTPCTenderSupply.cxx:394 AliTPCTenderSupply.cxx:395 AliTPCTenderSupply.cxx:396 AliTPCTenderSupply.cxx:397 AliTPCTenderSupply.cxx:398 AliTPCTenderSupply.cxx:399 AliTPCTenderSupply.cxx:400 AliTPCTenderSupply.cxx:401 AliTPCTenderSupply.cxx:402 AliTPCTenderSupply.cxx:403 AliTPCTenderSupply.cxx:404 AliTPCTenderSupply.cxx:405 AliTPCTenderSupply.cxx:406 AliTPCTenderSupply.cxx:407 AliTPCTenderSupply.cxx:408 AliTPCTenderSupply.cxx:409 AliTPCTenderSupply.cxx:410 AliTPCTenderSupply.cxx:411 AliTPCTenderSupply.cxx:412 AliTPCTenderSupply.cxx:413 AliTPCTenderSupply.cxx:414 AliTPCTenderSupply.cxx:415 AliTPCTenderSupply.cxx:416 AliTPCTenderSupply.cxx:417 AliTPCTenderSupply.cxx:418 AliTPCTenderSupply.cxx:419 AliTPCTenderSupply.cxx:420 AliTPCTenderSupply.cxx:421 AliTPCTenderSupply.cxx:422 AliTPCTenderSupply.cxx:423 AliTPCTenderSupply.cxx:424 AliTPCTenderSupply.cxx:425 AliTPCTenderSupply.cxx:426 AliTPCTenderSupply.cxx:427 AliTPCTenderSupply.cxx:428 AliTPCTenderSupply.cxx:429 AliTPCTenderSupply.cxx:430 AliTPCTenderSupply.cxx:431 AliTPCTenderSupply.cxx:432 AliTPCTenderSupply.cxx:433 AliTPCTenderSupply.cxx:434 AliTPCTenderSupply.cxx:435 AliTPCTenderSupply.cxx:436 AliTPCTenderSupply.cxx:437 AliTPCTenderSupply.cxx:438 AliTPCTenderSupply.cxx:439 AliTPCTenderSupply.cxx:440 AliTPCTenderSupply.cxx:441 AliTPCTenderSupply.cxx:442 AliTPCTenderSupply.cxx:443 AliTPCTenderSupply.cxx:444 AliTPCTenderSupply.cxx:445 AliTPCTenderSupply.cxx:446 AliTPCTenderSupply.cxx:447 AliTPCTenderSupply.cxx:448 AliTPCTenderSupply.cxx:449 AliTPCTenderSupply.cxx:450 AliTPCTenderSupply.cxx:451 AliTPCTenderSupply.cxx:452 AliTPCTenderSupply.cxx:453 AliTPCTenderSupply.cxx:454 AliTPCTenderSupply.cxx:455 AliTPCTenderSupply.cxx:456 AliTPCTenderSupply.cxx:457 AliTPCTenderSupply.cxx:458 AliTPCTenderSupply.cxx:459 AliTPCTenderSupply.cxx:460 AliTPCTenderSupply.cxx:461 AliTPCTenderSupply.cxx:462 AliTPCTenderSupply.cxx:463 AliTPCTenderSupply.cxx:464 AliTPCTenderSupply.cxx:465 AliTPCTenderSupply.cxx:466 AliTPCTenderSupply.cxx:467 AliTPCTenderSupply.cxx:468 AliTPCTenderSupply.cxx:469 AliTPCTenderSupply.cxx:470 AliTPCTenderSupply.cxx:471 AliTPCTenderSupply.cxx:472 AliTPCTenderSupply.cxx:473 AliTPCTenderSupply.cxx:474 AliTPCTenderSupply.cxx:475 AliTPCTenderSupply.cxx:476 AliTPCTenderSupply.cxx:477 AliTPCTenderSupply.cxx:478 AliTPCTenderSupply.cxx:479 AliTPCTenderSupply.cxx:480 AliTPCTenderSupply.cxx:481 AliTPCTenderSupply.cxx:482 AliTPCTenderSupply.cxx:483 AliTPCTenderSupply.cxx:484 AliTPCTenderSupply.cxx:485 AliTPCTenderSupply.cxx:486 AliTPCTenderSupply.cxx:487 AliTPCTenderSupply.cxx:488 AliTPCTenderSupply.cxx:489 AliTPCTenderSupply.cxx:490 AliTPCTenderSupply.cxx:491 AliTPCTenderSupply.cxx:492 AliTPCTenderSupply.cxx:493 AliTPCTenderSupply.cxx:494 AliTPCTenderSupply.cxx:495 AliTPCTenderSupply.cxx:496 AliTPCTenderSupply.cxx:497 AliTPCTenderSupply.cxx:498 AliTPCTenderSupply.cxx:499 AliTPCTenderSupply.cxx:500 AliTPCTenderSupply.cxx:501 AliTPCTenderSupply.cxx:502 AliTPCTenderSupply.cxx:503 AliTPCTenderSupply.cxx:504 AliTPCTenderSupply.cxx:505 AliTPCTenderSupply.cxx:506 AliTPCTenderSupply.cxx:507 AliTPCTenderSupply.cxx:508 AliTPCTenderSupply.cxx:509 AliTPCTenderSupply.cxx:510 AliTPCTenderSupply.cxx:511 AliTPCTenderSupply.cxx:512 AliTPCTenderSupply.cxx:513 AliTPCTenderSupply.cxx:514 AliTPCTenderSupply.cxx:515 AliTPCTenderSupply.cxx:516 AliTPCTenderSupply.cxx:517 AliTPCTenderSupply.cxx:518 AliTPCTenderSupply.cxx:519 AliTPCTenderSupply.cxx:520 AliTPCTenderSupply.cxx:521 AliTPCTenderSupply.cxx:522 AliTPCTenderSupply.cxx:523 AliTPCTenderSupply.cxx:524 AliTPCTenderSupply.cxx:525 AliTPCTenderSupply.cxx:526 AliTPCTenderSupply.cxx:527 AliTPCTenderSupply.cxx:528 AliTPCTenderSupply.cxx:529 AliTPCTenderSupply.cxx:530 AliTPCTenderSupply.cxx:531 AliTPCTenderSupply.cxx:532 AliTPCTenderSupply.cxx:533 AliTPCTenderSupply.cxx:534 AliTPCTenderSupply.cxx:535 AliTPCTenderSupply.cxx:536 AliTPCTenderSupply.cxx:537 AliTPCTenderSupply.cxx:538 AliTPCTenderSupply.cxx:539 AliTPCTenderSupply.cxx:540 AliTPCTenderSupply.cxx:541 AliTPCTenderSupply.cxx:542 AliTPCTenderSupply.cxx:543 AliTPCTenderSupply.cxx:544 AliTPCTenderSupply.cxx:545 AliTPCTenderSupply.cxx:546 AliTPCTenderSupply.cxx:547 AliTPCTenderSupply.cxx:548 AliTPCTenderSupply.cxx:549 AliTPCTenderSupply.cxx:550 AliTPCTenderSupply.cxx:551 AliTPCTenderSupply.cxx:552 AliTPCTenderSupply.cxx:553 AliTPCTenderSupply.cxx:554 AliTPCTenderSupply.cxx:555 AliTPCTenderSupply.cxx:556 AliTPCTenderSupply.cxx:557 AliTPCTenderSupply.cxx:558 AliTPCTenderSupply.cxx:559 AliTPCTenderSupply.cxx:560