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