]>
Commit | Line | Data |
---|---|---|
0de9de87 | 1 | void AliAnalysisTaskSESelectHFTest()\r |
2 | {\r | |
3 | //\r | |
4 | // Test macro for the AliAnalysisTaskSE for heavy-flavour selection\r | |
5 | // and creation of a stand-alone AOD\r | |
6 | // A.Dainese, andrea.dainese@lnl.infn.it\r | |
7 | //\r | |
8 | \r | |
9 | gSystem->Load("libTree.so");\r | |
10 | gSystem->Load("libGeom.so");\r | |
11 | gSystem->Load("libPhysics.so");\r | |
12 | gSystem->Load("libVMC.so");\r | |
13 | gSystem->Load("libSTEERBase.so");\r | |
14 | gSystem->Load("libESD.so");\r | |
15 | gSystem->Load("libAOD.so"); \r | |
16 | gSystem->Load("libANALYSIS.so");\r | |
17 | gSystem->Load("libANALYSISalice.so");\r | |
18 | gSystem->Load("libPWG3base.so");\r | |
19 | \r | |
20 | \r | |
21 | // Local files \r | |
22 | TChain *chain = new TChain("aodTree");\r | |
23 | chain->Add("./AliAOD.root");\r | |
24 | \r | |
25 | // or:\r | |
26 | /*\r | |
27 | //Fetch files with AliEn :\r | |
28 | const char *collectionfile = "CollectionTags.xml";\r | |
29 | TGrid::Connect("alien://") ;\r | |
30 | //Create an AliRunTagCuts and an AliEventTagCuts Object and impose some selection criteria\r | |
31 | AliRunTagCuts *runCuts = new AliRunTagCuts();\r | |
32 | AliEventTagCuts *eventCuts = new AliEventTagCuts();\r | |
33 | AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();\r | |
34 | AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();\r | |
35 | eventCuts->SetMultiplicityRange(0,20000);\r | |
36 | //Create an AliTagAnalysis Object and chain the tags\r | |
37 | AliTagAnalysis *tagAna = new AliTagAnalysis();\r | |
38 | tagAna->SetType("AOD");\r | |
39 | TAlienCollection *coll = TAlienCollection::Open(collectionfile);\r | |
40 | TGridResult *tagResult = coll->GetGridResult("",0,0);\r | |
41 | tagResult->Print();\r | |
42 | tagAna->ChainGridTags(tagResult);\r | |
43 | //Create a new aod chain and assign the chain that is returned by querying the tags\r | |
44 | TChain* chain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts);\r | |
45 | */\r | |
46 | \r | |
47 | \r | |
48 | // Create the analysis manager\r | |
49 | AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");\r | |
50 | mgr->SetDebugLevel(10);\r | |
51 | \r | |
52 | \r | |
53 | // Input\r | |
54 | AliAODInputHandler *inputHandler = new AliAODInputHandler();\r | |
55 | inputHandler->AddFriend("AliAOD.VertexingHF.root");\r | |
56 | mgr->SetInputEventHandler(inputHandler);\r | |
57 | \r | |
58 | // Output \r | |
59 | AliAODHandler *aodHandler = new AliAODHandler();\r | |
60 | aodHandler->SetOutputFileName("AliAOD.VertexingHF.sa.root");\r | |
61 | aodHandler->SetCreateNonStandardAOD();\r | |
62 | mgr->SetOutputEventHandler(aodHandler);\r | |
63 | \r | |
64 | \r | |
65 | // Aanalysis task \r | |
66 | AliAnalysisTaskSESelectHF *hfTask = new AliAnalysisTaskSESelectHF("SelectHFAnalysis");\r | |
67 | hfTask->SetDebugLevel(2);\r | |
68 | Double_t cutsD0[9]=\r | |
69 | // cutsD0[0] = inv. mass half width [GeV]\r | |
70 | // cutsD0[1] = dca [cm]\r | |
71 | // cutsD0[2] = cosThetaStar\r | |
72 | // cutsD0[3] = pTK [GeV/c]\r | |
73 | // cutsD0[4] = pTPi [GeV/c]\r | |
74 | // cutsD0[5] = d0K [cm] upper limit!\r | |
75 | // cutsD0[6] = d0Pi [cm] upper limit!\r | |
76 | // cutsD0[7] = d0d0 [cm^2]\r | |
77 | // cutsD0[8] = cosThetaPoint\r | |
78 | {1,\r | |
79 | 100000.,\r | |
80 | 1.1,\r | |
81 | 0.,\r | |
82 | 0.,\r | |
83 | 100000.,\r | |
84 | 100000.,\r | |
85 | 100000000.,\r | |
0bd2832b | 86 | -0.9}; \r |
0de9de87 | 87 | hfTask->SetD0toKpiCuts(cutsD0);\r |
88 | \r | |
89 | mgr->AddTask(hfTask);\r | |
90 | \r | |
91 | //\r | |
92 | // Create containers for input/output\r | |
93 | AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(), \r | |
94 | AliAnalysisManager::kInputContainer);\r | |
95 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),\r | |
96 | AliAnalysisManager::kOutputContainer, \r | |
97 | "default");\r | |
98 | mgr->ConnectInput(hfTask,0,cinput1);\r | |
99 | mgr->ConnectOutput(hfTask,0,coutput1);\r | |
100 | \r | |
101 | //\r | |
102 | // Run the analysis\r | |
103 | // \r | |
104 | printf("CHAIN HAS %d ENTRIES\n",(Int_t)chain->GetEntries());\r | |
105 | if(mgr->InitAnalysis()) {\r | |
106 | mgr->PrintStatus();\r | |
107 | mgr->StartAnalysis("local",chain);\r | |
108 | //mgr->StartAnalysis("grid",chain);\r | |
109 | }\r | |
110 | \r | |
111 | return;\r | |
112 | }\r |