]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis/RunLocalFMDAnalysis.C
Major refactoring of the code.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis / RunLocalFMDAnalysis.C
CommitLineData
92ddc227 1void RunLocalFMDAnalysis(const Char_t* filename= "AliESDs.root",
162637e4 2 const Char_t* cdbPath = "local://$ALICE_ROOT/OCDB",
92ddc227 3 const Char_t* outFile = "fmd_analysis.root"){
4
5 gSystem->Load("libANALYSIS");
6 gSystem->Load("libANALYSISalice");
7 gSystem->Load("libFMDanalysis");
8
9 AliCDBManager* cdb = AliCDBManager::Instance();
10 cdb->SetDefaultStorage(cdbPath);
6289b3e8 11 // cdb->SetSpecificStorage("FMD/*","local://$ALICE_ROOT");
92ddc227 12 cdb->SetRun(0);
1253f50a 13 //AliFMDParameters* recopars = AliFMDParameters::Instance();
14 // recopars->Init();
92ddc227 15 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
16 pars->Init();
17 if (AliGeomManager::GetGeometry() == NULL)
18 AliGeomManager::LoadGeometry();
19
20 AliFMDGeometry* geo = AliFMDGeometry::Instance();
21 geo->Init();
22 geo->InitTransformations();
23
24 cout<<"Creating task for analysis"<<endl;
25 AliFMDAnalysisTaskESDReader *FMDana0 = new AliFMDAnalysisTaskESDReader("reader");
26 FMDana0->SetDebugLevel(10);
27 AliFMDAnalysisTaskSharing *FMDana1 = new AliFMDAnalysisTaskSharing("sharing");
28 AliFMDAnalysisTaskDensity *FMDana2 = new AliFMDAnalysisTaskDensity("density");
29 AliFMDAnalysisTaskBackgroundCorrection *FMDana3 = new AliFMDAnalysisTaskBackgroundCorrection("background");
7c3e5162 30 AliFMDAnalysisTaskDndeta *FMDana4 = new AliFMDAnalysisTaskDndeta("dNdeta");
92ddc227 31
32 cout<<"Creating the manager"<<endl;
33 AliAnalysisManager* mgr = new AliAnalysisManager("fmd_analysis","fmd_analysis");
34 mgr->AddTask(FMDana0);
35 mgr->AddTask(FMDana1);
36 mgr->AddTask(FMDana2);
37 mgr->AddTask(FMDana3);
7c3e5162 38 mgr->AddTask(FMDana4);
92ddc227 39
40
41 AliAnalysisDataContainer* cin_esd = mgr->CreateContainer("esdTree",TTree::Class(),AliAnalysisManager::kInputContainer,"AliESDs.root");
7c3e5162 42 AliAnalysisDataContainer* cexchangevertex = mgr->CreateContainer("esdvertex",AliESDVertex::Class(),AliAnalysisManager::kExchangeContainer);
92ddc227 43 AliAnalysisDataContainer* cexchange0 = mgr->CreateContainer("exchangeESDFMD0",AliESDEvent::Class(),AliAnalysisManager::kExchangeContainer);
7c3e5162 44 AliAnalysisDataContainer* cdiag1 = mgr->CreateContainer("diagSharing1",AliESDEvent::Class(),AliAnalysisManager::kExchangeContainer);
45 AliAnalysisDataContainer* cdiag2 = mgr->CreateContainer("diagSharing2",TList::Class(),AliAnalysisManager::kOutputContainer,"edists.root");
46 AliAnalysisDataContainer* cexchange1 = mgr->CreateContainer("exchangeESDFMD1",AliESDFMD::Class(),AliAnalysisManager::kExchangeContainer);
bb8a464f 47 AliAnalysisDataContainer* cexchange2 = mgr->CreateContainer("list_of_hits",TList::Class(),AliAnalysisManager::kExchangeContainer);
7c3e5162 48 AliAnalysisDataContainer* cvertex = mgr->CreateContainer("vertex",TObjString::Class(),AliAnalysisManager::kExchangeContainer);
bb8a464f 49 AliAnalysisDataContainer* cexchange3 = mgr->CreateContainer("list_of_hits_and_mult",TList::Class(),AliAnalysisManager::kOutputContainer,"testOut.root");
92ddc227 50 AliAnalysisDataContainer* coutput = mgr->CreateContainer("BackgroundCorrected",TList::Class(),AliAnalysisManager::kOutputContainer,outFile);
51
52 mgr->ConnectInput(FMDana0, 0 , cin_esd);
7c3e5162 53 mgr->ConnectOutput(FMDana0, 0 , cexchange0);
54
92ddc227 55 mgr->ConnectInput(FMDana1, 0 , cexchange0);
7c3e5162 56
57 mgr->ConnectOutput(FMDana1, 0 , cexchange1);
58 mgr->ConnectOutput(FMDana1, 1 , cexchangevertex);
59 mgr->ConnectOutput(FMDana1, 2 , cdiag1);
60 mgr->ConnectOutput(FMDana1, 3 , cdiag2);
61
62
92ddc227 63 mgr->ConnectInput(FMDana2, 0 , cexchange1);
7c3e5162 64 mgr->ConnectInput(FMDana2, 1 , cexchangevertex);
92ddc227 65 mgr->ConnectOutput(FMDana2, 0 , cexchange2);
7c3e5162 66
92ddc227 67 mgr->ConnectInput(FMDana3, 0 , cexchange2);
7c3e5162 68 mgr->ConnectOutput(FMDana3, 0 , cexchange3);
69 mgr->ConnectOutput(FMDana3, 1 , cvertex);
92ddc227 70
7c3e5162 71 mgr->ConnectInput(FMDana4, 0 , cexchange3);
72 mgr->ConnectInput(FMDana4, 1 , cvertex);
73 mgr->ConnectOutput(FMDana4, 0 , coutput);
74
75
92ddc227 76 TFile::Open(filename);
77 TChain* chain = (TChain*)gFile->Get("esdTree");
7c3e5162 78
79
92ddc227 80 mgr->InitAnalysis();
81 mgr->PrintStatus();
82
83 TStopwatch timer;
84 timer.Start();
85 cout<<"Executing analysis"<<endl;
6289b3e8 86 mgr->StartAnalysis("local",chain);
92ddc227 87 timer.Stop();
88 timer.Print();
89}