]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSEVertexingHFTest.C
Bug fix in the AliTPCReconstructor.
[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
f68c41dc 10 Bool_t useParFiles=kTRUE;\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
87 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), \r
88 AliAnalysisManager::kInputContainer);\r
89 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),\r
90 AliAnalysisManager::kOutputContainer, \r
91 "default");\r
92 mgr->ConnectInput(hfTask,0,cinput1);\r
93 mgr->ConnectOutput(hfTask,0,coutput1);\r
94\r
95 //\r
96 // Run the analysis\r
97 // \r
98 printf("CHAIN HAS %d ENTRIES\n",(Int_t)chain->GetEntries());\r
2d0da4bb 99 if(!mgr->InitAnalysis()) return;\r
100\r
101 mgr->PrintStatus();\r
102\r
103 mgr->StartAnalysis(mode.Data(),chain);\r
699a38d6 104\r
105 return;\r
106}\r