/*
Macro to test functionality of the AnliAnalysisTaskFiltered.
To be used within UnitTest suit
$ALICE_ROOT/test/testAliAnalysisTaskFiltered/AliAnalysisTaskFilteredTest.sh
To test:
1.) CPU/Memory/Data volume
2.) Relative fracion of the information in exported trees
3.) Compression for points
Author of test:
marian.ivanov@cern.ch
*/
void CheckOutput();
void AliAnalysisTaskFilteredTest( const char* esdList,
Float_t scalingTracks,
Float_t scalingV0,
Float_t scalingFriend,
const char* ocdb ,
Int_t nFiles,
Int_t firstFile,
Int_t nEvents,
Int_t firstEvent,
Bool_t mc=kFALSE)
{
TStopwatch timer;
timer.Start();
printf("\n\n\n");
printf("scalingTracks=%d\n",scalingTracks);
printf("scalingV0=%d\n",scalingV0);
printf("nFiles=%d\n",nFiles);
gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT -I$ALICE_ROOT/TRD");
gSystem->Load("libANALYSIS");
gSystem->Load("libANALYSISalice");
gSystem->Load("libTENDER");
gSystem->Load("libCORRFW");
gSystem->Load("libPWGUDbase");
gSystem->Load("libTPCcalib");
gSystem->Load("libPWGPP");
gSystem->Load("libPWGLFspectra");
//____________________________________________//
// Make the analysis manager
AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
mgr->SetDebugLevel(0);
AliESDInputHandler* esdH = new AliESDInputHandler();
//esdH->SetReadFriends(1);
esdH->SetReadFriends(1);
mgr->SetInputEventHandler(esdH);
// Enable MC event handler
AliMCEventHandler* handlerMC = new AliMCEventHandler;
//handler->SetReadTR(kFALSE);
if (mc) mgr->SetMCtruthEventHandler(handlerMC);
gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskCDBconnect.C");
AddTaskCDBconnect(ocdb);
if (gSystem->AccessPathName("localOCDBaccessConfig.C", kFileExists)==0) {
gROOT->LoadMacro("localOCDBaccessConfig.C");
localOCDBaccessConfig();
}
// Create input chain
gROOT->LoadMacro("$ALICE_ROOT/PWGUD/macros/CreateESDChain.C");
TChain* chain = CreateESDChain(esdList, nFiles,firstFile);
if(!chain) {
printf("ERROR: chain cannot be created\n");
return;
}
chain->Lookup();
//
// Wagons to run
//
gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskFilteredTree.C");
AliAnalysisTaskFilteredTree* task = (AliAnalysisTaskFilteredTree*)AddTaskFilteredTree("Filtered.root");
task->SetLowPtTrackDownscaligF(scalingTracks);
task->SetLowPtV0DownscaligF(scalingV0);
task->SetFriendDownscaling(scalingFriend);
task->SetUseESDfriends(kTRUE);
// Init
if (!mgr->InitAnalysis())
mgr->PrintStatus();
//
// Run on dataset
mgr->StartAnalysis("local",chain,nEvents, firstEvent);
timer.Stop();
timer.Print();
delete mgr;
CheckOutput();
}
void CheckOutput(){
//
//
//
TFile * f = TFile::Open("Filtered.root");
TTree * highPt = (TTree*)f->Get("highPt");
TTree * treeV0s = (TTree*)f->Get("V0s");
//
// Export variable:
//
Double_t ratioHighPtV0Entries=treeV0s->GetEntries()/Double_t(treeV0s->GetEntries()+highPt->GetEntries()+0.000001);
Double_t ratioHighPtV0Size=treeV0s->GetZipBytes()/Double_t(treeV0s->GetZipBytes()+highPt->GetZipBytes()+0.000001);
printf("#UnitTest:\tAliAnalysisTaskFiltered\tRatioPtToV0Entries\t%f\n",ratioHighPtV0Entries);
printf("#UnitTest:\tAliAnalysisTaskFiltered\tRatioPtToV0Size\t%f\n",ratioHighPtV0Size);
//
//
Double_t ratioPointsV0 = 2*treeV0s->GetBranch("friendTrack0.fCalibContainer")->GetZipBytes()/Double_t(0.00001+treeV0s->GetZipBytes());
Double_t ratioPointsHighPt = highPt->GetBranch("friendTrack.fCalibContainer")->GetZipBytes()/Double_t(0.00001+highPt->GetZipBytes());
printf("#UnitTest:\tAliAnalysisTaskFiltered\tRatioPointsV0\t%f\n",ratioPointsV0);
printf("#UnitTest:\tAliAnalysisTaskFiltered\tRatioPointsHighPt\t%f\n",ratioPointsHighPt);
//
// a.) Check track correspondence
//
Int_t entries= highPt->Draw("(friendTrack.fTPCOut.fP[3]-esdTrack.fIp.fP[3])/sqrt(friendTrack.fTPCOut.fC[9]+esdTrack.fIp.fC[9])","friendTrack.fTPCOut.fP[3]!=0","");
// here we should check if the tracks
Double_t pulls=TMath::RMS(entries, highPt->GetV1());
printf("#UnitTest:\tAliAnalysisTaskFiltered\tFriendPull\t%2.4f\n",pulls);
printf("#UnitTest:\tAliAnalysisTaskFiltered\tFriendOK\t%d\n",pulls<10);
}
AliAnalysisTaskFilteredTest.C:1 AliAnalysisTaskFilteredTest.C:2 AliAnalysisTaskFilteredTest.C:3 AliAnalysisTaskFilteredTest.C:4 AliAnalysisTaskFilteredTest.C:5 AliAnalysisTaskFilteredTest.C:6 AliAnalysisTaskFilteredTest.C:7 AliAnalysisTaskFilteredTest.C:8 AliAnalysisTaskFilteredTest.C:9 AliAnalysisTaskFilteredTest.C:10 AliAnalysisTaskFilteredTest.C:11 AliAnalysisTaskFilteredTest.C:12 AliAnalysisTaskFilteredTest.C:13 AliAnalysisTaskFilteredTest.C:14 AliAnalysisTaskFilteredTest.C:15 AliAnalysisTaskFilteredTest.C:16 AliAnalysisTaskFilteredTest.C:17 AliAnalysisTaskFilteredTest.C:18 AliAnalysisTaskFilteredTest.C:19 AliAnalysisTaskFilteredTest.C:20 AliAnalysisTaskFilteredTest.C:21 AliAnalysisTaskFilteredTest.C:22 AliAnalysisTaskFilteredTest.C:23 AliAnalysisTaskFilteredTest.C:24 AliAnalysisTaskFilteredTest.C:25 AliAnalysisTaskFilteredTest.C:26 AliAnalysisTaskFilteredTest.C:27 AliAnalysisTaskFilteredTest.C:28 AliAnalysisTaskFilteredTest.C:29 AliAnalysisTaskFilteredTest.C:30 AliAnalysisTaskFilteredTest.C:31 AliAnalysisTaskFilteredTest.C:32 AliAnalysisTaskFilteredTest.C:33 AliAnalysisTaskFilteredTest.C:34 AliAnalysisTaskFilteredTest.C:35 AliAnalysisTaskFilteredTest.C:36 AliAnalysisTaskFilteredTest.C:37 AliAnalysisTaskFilteredTest.C:38 AliAnalysisTaskFilteredTest.C:39 AliAnalysisTaskFilteredTest.C:40 AliAnalysisTaskFilteredTest.C:41 AliAnalysisTaskFilteredTest.C:42 AliAnalysisTaskFilteredTest.C:43 AliAnalysisTaskFilteredTest.C:44 AliAnalysisTaskFilteredTest.C:45 AliAnalysisTaskFilteredTest.C:46 AliAnalysisTaskFilteredTest.C:47 AliAnalysisTaskFilteredTest.C:48 AliAnalysisTaskFilteredTest.C:49 AliAnalysisTaskFilteredTest.C:50 AliAnalysisTaskFilteredTest.C:51 AliAnalysisTaskFilteredTest.C:52 AliAnalysisTaskFilteredTest.C:53 AliAnalysisTaskFilteredTest.C:54 AliAnalysisTaskFilteredTest.C:55 AliAnalysisTaskFilteredTest.C:56 AliAnalysisTaskFilteredTest.C:57 AliAnalysisTaskFilteredTest.C:58 AliAnalysisTaskFilteredTest.C:59 AliAnalysisTaskFilteredTest.C:60 AliAnalysisTaskFilteredTest.C:61 AliAnalysisTaskFilteredTest.C:62 AliAnalysisTaskFilteredTest.C:63 AliAnalysisTaskFilteredTest.C:64 AliAnalysisTaskFilteredTest.C:65 AliAnalysisTaskFilteredTest.C:66 AliAnalysisTaskFilteredTest.C:67 AliAnalysisTaskFilteredTest.C:68 AliAnalysisTaskFilteredTest.C:69 AliAnalysisTaskFilteredTest.C:70 AliAnalysisTaskFilteredTest.C:71 AliAnalysisTaskFilteredTest.C:72 AliAnalysisTaskFilteredTest.C:73 AliAnalysisTaskFilteredTest.C:74 AliAnalysisTaskFilteredTest.C:75 AliAnalysisTaskFilteredTest.C:76 AliAnalysisTaskFilteredTest.C:77 AliAnalysisTaskFilteredTest.C:78 AliAnalysisTaskFilteredTest.C:79 AliAnalysisTaskFilteredTest.C:80 AliAnalysisTaskFilteredTest.C:81 AliAnalysisTaskFilteredTest.C:82 AliAnalysisTaskFilteredTest.C:83 AliAnalysisTaskFilteredTest.C:84 AliAnalysisTaskFilteredTest.C:85 AliAnalysisTaskFilteredTest.C:86 AliAnalysisTaskFilteredTest.C:87 AliAnalysisTaskFilteredTest.C:88 AliAnalysisTaskFilteredTest.C:89 AliAnalysisTaskFilteredTest.C:90 AliAnalysisTaskFilteredTest.C:91 AliAnalysisTaskFilteredTest.C:92 AliAnalysisTaskFilteredTest.C:93 AliAnalysisTaskFilteredTest.C:94 AliAnalysisTaskFilteredTest.C:95 AliAnalysisTaskFilteredTest.C:96 AliAnalysisTaskFilteredTest.C:97 AliAnalysisTaskFilteredTest.C:98 AliAnalysisTaskFilteredTest.C:99 AliAnalysisTaskFilteredTest.C:100 AliAnalysisTaskFilteredTest.C:101 AliAnalysisTaskFilteredTest.C:102 AliAnalysisTaskFilteredTest.C:103 AliAnalysisTaskFilteredTest.C:104 AliAnalysisTaskFilteredTest.C:105 AliAnalysisTaskFilteredTest.C:106 AliAnalysisTaskFilteredTest.C:107 AliAnalysisTaskFilteredTest.C:108 AliAnalysisTaskFilteredTest.C:109 AliAnalysisTaskFilteredTest.C:110 AliAnalysisTaskFilteredTest.C:111 AliAnalysisTaskFilteredTest.C:112 AliAnalysisTaskFilteredTest.C:113 AliAnalysisTaskFilteredTest.C:114 AliAnalysisTaskFilteredTest.C:115 AliAnalysisTaskFilteredTest.C:116 AliAnalysisTaskFilteredTest.C:117 AliAnalysisTaskFilteredTest.C:118 AliAnalysisTaskFilteredTest.C:119 AliAnalysisTaskFilteredTest.C:120 AliAnalysisTaskFilteredTest.C:121 AliAnalysisTaskFilteredTest.C:122 AliAnalysisTaskFilteredTest.C:123 AliAnalysisTaskFilteredTest.C:124 AliAnalysisTaskFilteredTest.C:125 AliAnalysisTaskFilteredTest.C:126 AliAnalysisTaskFilteredTest.C:127 AliAnalysisTaskFilteredTest.C:128