1 void AliAnalysisTaskSESelectHFTest()
\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
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
22 TChain *chain = new TChain("aodTree");
\r
23 chain->Add("./AliAOD.root");
\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
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
48 // Create the analysis manager
\r
49 AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");
\r
50 mgr->SetDebugLevel(10);
\r
54 AliAODInputHandler *inputHandler = new AliAODInputHandler();
\r
55 inputHandler->AddFriend("AliAOD.VertexingHF.root");
\r
56 mgr->SetInputEventHandler(inputHandler);
\r
59 AliAODHandler *aodHandler = new AliAODHandler();
\r
60 aodHandler->SetOutputFileName("AliAOD.VertexingHF.sa.root");
\r
61 aodHandler->SetCreateNonStandardAOD();
\r
62 mgr->SetOutputEventHandler(aodHandler);
\r
66 AliAnalysisTaskSESelectHF *hfTask = new AliAnalysisTaskSESelectHF("SelectHFAnalysis");
\r
67 hfTask->SetDebugLevel(2);
\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
87 hfTask->SetD0toKpiCuts(cutsD0);
\r
89 mgr->AddTask(hfTask);
\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
98 mgr->ConnectInput(hfTask,0,cinput1);
\r
99 mgr->ConnectOutput(hfTask,0,coutput1);
\r
102 // Run the analysis
\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