]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSEVertexingHFTest.C
New way to set input and output containers for AliAnalysisManager
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEVertexingHFTest.C
CommitLineData
699a38d6 1void AliAnalysisTaskSEVertexingHFTest()\r
2{\r
3 //\r
4 // Test macro for the AliAnalysisTaskSE for heavy-flavour vertexing\r
5 // A.Dainese, andrea.dainese@lnl.infn.it\r
6 //\r
98a12f96 7\r
dcb444c9 8 Bool_t inputAOD=kTRUE; // otherwise, ESD\r
2d0da4bb 9 TString mode="local"; // otherwise, "grid" \r
0345b950 10 Bool_t useParFiles=kFALSE;\r
699a38d6 11\r
f68c41dc 12 gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/LoadLibraries.C");\r
13 LoadLibraries(useParFiles);\r
699a38d6 14\r
2d0da4bb 15 TChain *chain = 0;\r
699a38d6 16\r
2d0da4bb 17 if(mode=="local") {\r
18 // Local files \r
19 TString treeName,fileName;\r
20 if(inputAOD) {\r
21 treeName="aodTree"; \r
22 fileName="AliAOD.root";\r
23 } else {\r
24 treeName="esdTree"; \r
25 fileName="AliESDs.root";\r
26 }\r
27 chain = new TChain(treeName.Data());\r
28 chain->Add(fileName.Data());\r
29\r
30 } else if (mode=="grid") {\r
31 //Fetch files with AliEn :\r
32 const char *collectionfile = "Collection.xml";\r
33 TGrid::Connect("alien://") ;\r
34 TAlienCollection *coll = TAlienCollection::Open(collectionfile);\r
35 if(inputAOD) { // input AOD\r
36 chain = new TChain("aodTree");\r
37 while(coll->Next()) chain->Add(coll->GetTURL(""));\r
38 } else { // input ESD\r
39 //Create an AliRunTagCuts and an AliEventTagCuts Object and impose some selection criteria\r
40 AliRunTagCuts *runCuts = new AliRunTagCuts();\r
41 AliEventTagCuts *eventCuts = new AliEventTagCuts();\r
42 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();\r
43 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();\r
44 eventCuts->SetMultiplicityRange(0,20000);\r
45 //Create an AliTagAnalysis Object and chain the tags\r
46 AliTagAnalysis *tagAna = new AliTagAnalysis();\r
47 tagAna->SetType("ESD");\r
48 TGridResult *tagResult = coll->GetGridResult("",0,0);\r
49 tagResult->Print();\r
50 tagAna->ChainGridTags(tagResult);\r
51 //Create a new esd chain and assign the chain that is returned by querying the tags\r
52 chain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts);\r
53 }\r
dcb444c9 54 } else {\r
2d0da4bb 55 printf("ERROR: mode has to be \"local\" or \"grid\" \n");\r
56 return;\r
dcb444c9 57 }\r
699a38d6 58\r
59\r
60 // Create the analysis manager\r
61 AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");\r
62 mgr->SetDebugLevel(10);\r
63 \r
64 // Input Handler\r
dcb444c9 65 AliInputEventHandler *inputHandler = 0;\r
66 if(inputAOD) {\r
67 inputHandler = new AliAODInputHandler();\r
68 } else {\r
69 inputHandler = new AliESDInputHandler();\r
70 }\r
699a38d6 71 mgr->SetInputEventHandler(inputHandler);\r
72 \r
73 // Output \r
74 AliAODHandler *aodHandler = new AliAODHandler();\r
75 aodHandler->SetOutputFileName("AliAOD.VertexingHF.root");\r
76 aodHandler->SetCreateNonStandardAOD();\r
77 mgr->SetOutputEventHandler(aodHandler);\r
78 \r
79 // Vertexing analysis task \r
80 AliAnalysisTaskSEVertexingHF *hfTask = new AliAnalysisTaskSEVertexingHF("VertexingHFAnalysis");\r
81 hfTask->SetDebugLevel(2);\r
82 \r
83 mgr->AddTask(hfTask);\r
84 \r
85 //\r
86 // Create containers for input/output\r
0345b950 87 mgr->ConnectInput(hfTask,0,mgr->GetCommonInputContainer());\r
88 mgr->ConnectOutput(hfTask,0,mgr->GetCommonOutputContainer());\r
89 /* \r
90 // before v4-17-Release\r
699a38d6 91 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), \r
92 AliAnalysisManager::kInputContainer);\r
93 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),\r
94 AliAnalysisManager::kOutputContainer, \r
0345b950 95 "default"); \r
699a38d6 96 mgr->ConnectInput(hfTask,0,cinput1);\r
97 mgr->ConnectOutput(hfTask,0,coutput1);\r
0345b950 98 */\r
699a38d6 99\r
100 //\r
101 // Run the analysis\r
102 // \r
103 printf("CHAIN HAS %d ENTRIES\n",(Int_t)chain->GetEntries());\r
2d0da4bb 104 if(!mgr->InitAnalysis()) return;\r
105\r
106 mgr->PrintStatus();\r
107\r
108 mgr->StartAnalysis(mode.Data(),chain);\r
699a38d6 109\r
110 return;\r
111}\r