]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis/RunAliEnFMDAnalysisSE.C
Major refactoring of the code.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis / RunAliEnFMDAnalysisSE.C
CommitLineData
162637e4 1void RunAliEnFMDAnalysisSE(const Char_t* collectionName="collection.xml", const Char_t* cdbPath="local://$ALICE_ROOT/OCDB") {
7c3e5162 2
3 gSystem->Load("libANALYSIS");
4 gSystem->Load("libANALYSISalice");
5 gSystem->Load("libFMDanalysis");
6
7 TGrid::Connect("alien://",0,0,"t");
8 TChain* chain = CreateChainSingle(collectionName);
9
10 if (!chain) return;
11
12 //
13 // Make the analysis manager
14 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "A test setup for the analysis train");
15 // ESD input handler
16 AliESDInputHandler *esdHandler = new AliESDInputHandler();
17 mgr->SetInputEventHandler(esdHandler);
bb8a464f 18
19 AliMCEventHandler *mcHandler = new AliMCEventHandler();
20 mgr->SetMCtruthEventHandler(mcHandler);
21
7c3e5162 22 AliAODHandler* aodHandler = new AliAODHandler();
23 mgr->SetOutputEventHandler(aodHandler);
24 aodHandler->SetOutputFileName("AliAODs.root");
25
26
861795a8 27 AliAnalysisDataContainer *cin_esd = mgr->GetCommonInputContainer();
7c3e5162 28 // Output AOD container. Pointer to AOD put here only by filter task.
29 // This container is managed by the AOD handler
861795a8 30 AliAnalysisDataContainer *cout_aod = mgr->GetCommonOutputContainer();
7c3e5162 31
32 AliFMDAnalysisTaskSE *fmdana = new AliFMDAnalysisTaskSE("FMDAnalysis");
33 mgr->AddTask(fmdana);
34 // Output histograms list for jet analysis
35 AliAnalysisDataContainer *cout_fmd = mgr->CreateContainer("BackgroundCorrected",
36 TList::Class(),
37 AliAnalysisManager::kOutputContainer, "fmd_analysis.root");
38 // Dummy AOD output container for jet analysis (no client yet)
39 AliAnalysisDataContainer *c_aodfmd = mgr->CreateContainer("cAODfmd",
40 TTree::Class(),
41 AliAnalysisManager::kExchangeContainer);
42 // Connect to data containers
43 mgr->ConnectInput (fmdana, 0, cin_esd );
44 mgr->ConnectOutput (fmdana, 0, c_aodfmd );
45 mgr->ConnectOutput (fmdana, 1, cout_fmd );
46
47
48 AliCDBManager* cdb = AliCDBManager::Instance();
49 cdb->SetDefaultStorage(cdbPath);
f58a4769 50
7c3e5162 51 cdb->SetRun(0);
52
53 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
54 pars->Init();
55 if (AliGeomManager::GetGeometry() == NULL)
56 AliGeomManager::LoadGeometry();
57
58 AliFMDGeometry* geo = AliFMDGeometry::Instance();
59 geo->Init();
60 geo->InitTransformations();
61
62 TStopwatch timer;
63 timer.Start();
64 if (mgr->InitAnalysis()) {
65 mgr->PrintStatus();
f58a4769 66 mgr->StartAnalysis("local",chain, 5000);
7c3e5162 67 }
68 timer.Stop();
69 timer.Print();
70}
71//______________________________________________________________________________
72TChain* CreateChainSingle(const char* xmlfile, const char *treeName="esdTree")
73{
74 printf("*******************************\n");
75 printf("*** Getting the ESD Chain ***\n");
76 printf("*******************************\n");
77 TAlienCollection * myCollection = TAlienCollection::Open(xmlfile);
78
79 if (!myCollection) {
80 ::Error("CreateChainSingle", "Cannot create an AliEn collection from %s", xmlfile) ;
81 return NULL ;
82 }
83
84 TChain* chain = new TChain(treeName);
85 myCollection->Reset() ;
6289b3e8 86 Int_t nFiles = 0;
87 while ( myCollection->Next() && nFiles <20) {
88 chain->Add(myCollection->GetTURL("")) ;
89 nFiles++;
90 }
7c3e5162 91 chain->ls();
92 return chain;
93}