1 void AliAnalysisTaskSEVertexingHFTest()
\r
4 // Test macro for the AliAnalysisTaskSE for heavy-flavour vertexing
\r
5 // A.Dainese, andrea.dainese@lnl.infn.it
\r
8 Bool_t inputAOD=kTRUE; // otherwise, ESD
\r
9 TString mode="local"; // otherwise, "grid"
\r
11 gSystem->Load("libTree.so");
\r
12 gSystem->Load("libGeom.so");
\r
13 gSystem->Load("libPhysics.so");
\r
14 gSystem->Load("libVMC.so");
\r
15 gSystem->Load("libSTEERBase.so");
\r
16 gSystem->Load("libESD.so");
\r
17 gSystem->Load("libAOD.so");
\r
18 gSystem->Load("libANALYSIS.so");
\r
19 gSystem->Load("libANALYSISalice.so");
\r
20 gSystem->Load("libCORRFW.so");
\r
21 gSystem->Load("libPWG3base.so");
\r
22 gSystem->Load("libPWG3vertexingHF.so");
\r
28 TString treeName,fileName;
\r
30 treeName="aodTree";
\r
31 fileName="AliAOD.root";
\r
33 treeName="esdTree";
\r
34 fileName="AliESDs.root";
\r
36 chain = new TChain(treeName.Data());
\r
37 chain->Add(fileName.Data());
\r
39 } else if (mode=="grid") {
\r
40 //Fetch files with AliEn :
\r
41 const char *collectionfile = "Collection.xml";
\r
42 TGrid::Connect("alien://") ;
\r
43 TAlienCollection *coll = TAlienCollection::Open(collectionfile);
\r
44 if(inputAOD) { // input AOD
\r
45 chain = new TChain("aodTree");
\r
46 while(coll->Next()) chain->Add(coll->GetTURL(""));
\r
47 } else { // input ESD
\r
48 //Create an AliRunTagCuts and an AliEventTagCuts Object and impose some selection criteria
\r
49 AliRunTagCuts *runCuts = new AliRunTagCuts();
\r
50 AliEventTagCuts *eventCuts = new AliEventTagCuts();
\r
51 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
\r
52 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
\r
53 eventCuts->SetMultiplicityRange(0,20000);
\r
54 //Create an AliTagAnalysis Object and chain the tags
\r
55 AliTagAnalysis *tagAna = new AliTagAnalysis();
\r
56 tagAna->SetType("ESD");
\r
57 TGridResult *tagResult = coll->GetGridResult("",0,0);
\r
59 tagAna->ChainGridTags(tagResult);
\r
60 //Create a new esd chain and assign the chain that is returned by querying the tags
\r
61 chain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts);
\r
64 printf("ERROR: mode has to be \"local\" or \"grid\" \n");
\r
69 // Create the analysis manager
\r
70 AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");
\r
71 mgr->SetDebugLevel(10);
\r
74 AliInputEventHandler *inputHandler = 0;
\r
76 inputHandler = new AliAODInputHandler();
\r
78 inputHandler = new AliESDInputHandler();
\r
80 mgr->SetInputEventHandler(inputHandler);
\r
83 AliAODHandler *aodHandler = new AliAODHandler();
\r
84 aodHandler->SetOutputFileName("AliAOD.VertexingHF.root");
\r
85 aodHandler->SetCreateNonStandardAOD();
\r
86 mgr->SetOutputEventHandler(aodHandler);
\r
88 // Vertexing analysis task
\r
89 AliAnalysisTaskSEVertexingHF *hfTask = new AliAnalysisTaskSEVertexingHF("VertexingHFAnalysis");
\r
90 hfTask->SetDebugLevel(2);
\r
92 mgr->AddTask(hfTask);
\r
95 // Create containers for input/output
\r
96 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain",TChain::Class(),
\r
97 AliAnalysisManager::kInputContainer);
\r
98 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),
\r
99 AliAnalysisManager::kOutputContainer,
\r
101 mgr->ConnectInput(hfTask,0,cinput1);
\r
102 mgr->ConnectOutput(hfTask,0,coutput1);
\r
105 // Run the analysis
\r
107 printf("CHAIN HAS %d ENTRIES\n",(Int_t)chain->GetEntries());
\r
108 if(!mgr->InitAnalysis()) return;
\r
110 mgr->PrintStatus();
\r
112 mgr->StartAnalysis(mode.Data(),chain);
\r