]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliAnalysisTaskSECompareHFTest.C
a893632b09d77bb6f8f280c82cb869730b0030f1
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSECompareHFTest.C
1 void AliAnalysisTaskSECompareHFTest()\r
2 {\r
3   //\r
4   // Test macro for the AliAnalysisTaskSE for heavy-flavour candidates\r
5   // association with MC truth (using MC info in AOD)\r
6   // A.Dainese, andrea.dainese@lnl.infn.it\r
7   //\r
8   TString mode="local"; // otherwise, "grid"\r
9 \r
10   Bool_t useParFiles=kFALSE;\r
11 \r
12   gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");\r
13   LoadLibraries(useParFiles);\r
14 \r
15   TChain *chainAOD = 0;\r
16   TChain *chainAODfriend = 0;\r
17 \r
18   chainAOD = new TChain("aodTree");\r
19   chainAODfriend = new TChain("aodTree");\r
20 \r
21   if(mode=="local") {\r
22     // Local files \r
23     chainAOD->Add("./AliAOD.root");\r
24     chainAODfriend->Add("./AliAOD.VertexingHF.root");\r
25     // ... add more if needed\r
26   } else { // grid (NOT TESTED YET)\r
27     //Fetch files with AliEn\r
28     // xml: need to check the 1-to-1 correspondence\r
29     const char *collectionfileAOD = "CollectionAOD.xml";\r
30     const char *collectionfileAODfriend = "CollectionAODfriend.xml";\r
31     TGrid::Connect("alien://");\r
32     //Create an AliTagAnalysis Object and chain the tags\r
33     AliTagAnalysis   *tagAna = new AliTagAnalysis();\r
34     chainAOD = tagAna->GetChainFromCollection(collectionfileAOD,"aodTree");\r
35     chainAODfriend = tagAna->GetChainFromCollection(collectionfileAODfriend,"aodTree");\r
36   }\r
37 \r
38   // attach the friend chain\r
39   chainAOD->AddFriend(chainAODfriend);\r
40 \r
41   // Create the analysis manager\r
42   AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");\r
43   mgr->SetDebugLevel(10);\r
44   \r
45 \r
46   // Input\r
47   AliAODInputHandler *inputHandler = new AliAODInputHandler();\r
48   //inputHandler->AddFriend("AliAOD.VertexingHF.root");//should not be needed\r
49   mgr->SetInputEventHandler(inputHandler);\r
50 \r
51   \r
52   // Aanalysis task    \r
53   AliAnalysisTaskSECompareHF *hfTask = new AliAnalysisTaskSECompareHF("CompareHFAnalysis");\r
54   hfTask->SetDebugLevel(2);\r
55   mgr->AddTask(hfTask);\r
56   \r
57   //\r
58   // Create containers for input/output\r
59   AliAnalysisDataContainer *cinput = mgr->CreateContainer("cinput",TChain::Class(), \r
60                                                           AliAnalysisManager::kInputContainer);\r
61   AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput",TList::Class(),\r
62                                                            AliAnalysisManager::kOutputContainer, \r
63                                                            "CmpHF.root");\r
64   mgr->ConnectInput(hfTask,0,cinput);\r
65   mgr->ConnectOutput(hfTask,1,coutput);\r
66 \r
67   //\r
68   // Run the analysis\r
69   //    \r
70   printf("CHAIN HAS %d ENTRIES\n",(Int_t)chainAOD->GetEntries());\r
71   if(mgr->InitAnalysis()) {\r
72     mgr->PrintStatus();\r
73     mgr->StartAnalysis(mode.Data(),chainAOD);\r
74   }\r
75 \r
76   return;\r
77 }\r