]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/analysis/RunAliEnFMDAnalysisSE.C
f4c0992e48ef10b63c055633273cfc176a2833c4
[u/mrichter/AliRoot.git] / FMD / analysis / RunAliEnFMDAnalysisSE.C
1 void RunAliEnFMDAnalysisSE(const Char_t* collectionName="collection.xml", const Char_t* cdbPath="local://$ALICE_ROOT") {
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);
18
19   AliAODHandler* aodHandler   = new AliAODHandler();
20   mgr->SetOutputEventHandler(aodHandler);
21   aodHandler->SetOutputFileName("AliAODs.root");
22   
23   
24   AliAnalysisDataContainer *cin_esd = mgr->CreateContainer("cESD",TChain::Class(), 
25                                                            AliAnalysisManager::kInputContainer);
26   // Output AOD container. Pointer to AOD put here only by filter task.
27   // This container is managed by the AOD handler
28   AliAnalysisDataContainer *cout_aod = mgr->CreateContainer("cAOD", TTree::Class(),
29                                                             AliAnalysisManager::kOutputContainer, "default");
30   
31   AliFMDAnalysisTaskSE *fmdana = new AliFMDAnalysisTaskSE("FMDAnalysis");
32   mgr->AddTask(fmdana);
33   // Output histograms list for jet analysis                       
34   AliAnalysisDataContainer *cout_fmd = mgr->CreateContainer("BackgroundCorrected", 
35                                                             TList::Class(),
36                                                             AliAnalysisManager::kOutputContainer, "fmd_analysis.root");
37   // Dummy AOD output container for jet analysis (no client yet)
38   AliAnalysisDataContainer *c_aodfmd = mgr->CreateContainer("cAODfmd", 
39                                                             TTree::Class(),
40                                                             AliAnalysisManager::kExchangeContainer);
41   // Connect to data containers
42   mgr->ConnectInput  (fmdana,     0, cin_esd  );
43   mgr->ConnectOutput (fmdana,     0, c_aodfmd );
44   mgr->ConnectOutput (fmdana,     1, cout_fmd );
45        
46   
47   AliCDBManager* cdb = AliCDBManager::Instance();
48   cdb->SetDefaultStorage(cdbPath);
49   cdb->SetRun(0);
50   
51   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
52   pars->Init();
53   if (AliGeomManager::GetGeometry() == NULL)
54     AliGeomManager::LoadGeometry();
55   
56   AliFMDGeometry* geo = AliFMDGeometry::Instance();
57   geo->Init();
58   geo->InitTransformations();
59   
60   TStopwatch timer;
61   timer.Start();
62   if (mgr->InitAnalysis()) {
63     mgr->PrintStatus();
64     mgr->StartAnalysis("local",chain, 1000);
65   }   
66   timer.Stop();
67   timer.Print();
68 }
69 //______________________________________________________________________________
70 TChain* CreateChainSingle(const char* xmlfile, const char *treeName="esdTree")
71 {
72    printf("*******************************\n");
73    printf("*** Getting the ESD Chain   ***\n");
74    printf("*******************************\n");
75    TAlienCollection * myCollection  = TAlienCollection::Open(xmlfile);
76
77    if (!myCollection) {
78       ::Error("CreateChainSingle", "Cannot create an AliEn collection from %s", xmlfile) ;
79       return NULL ;
80   }
81
82   TChain* chain = new TChain(treeName);
83   myCollection->Reset() ;
84   while ( myCollection->Next() ) chain->Add(myCollection->GetTURL("")) ;
85   chain->ls();
86   return chain;
87 }