]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/AliAnalysisTaskSESelectHFTest.C
a0e870c9e72d724d825f107d973ed5c3f681beef
[u/mrichter/AliRoot.git] / PWG3 / AliAnalysisTaskSESelectHFTest.C
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
86                       -0.9}; \r
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