]>
Commit | Line | Data |
---|---|---|
699a38d6 | 1 | void 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 |