]>
Commit | Line | Data |
---|---|---|
1 | void RunLocalFMDAnalysis(const Char_t* filename= "AliESDs.root", | |
2 | const Char_t* cdbPath = "local://$ALICE_ROOT/OCDB", | |
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); | |
11 | // cdb->SetSpecificStorage("FMD/*","local://$ALICE_ROOT"); | |
12 | cdb->SetRun(0); | |
13 | //AliFMDParameters* recopars = AliFMDParameters::Instance(); | |
14 | // recopars->Init(); | |
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"); | |
30 | AliFMDAnalysisTaskDndeta *FMDana4 = new AliFMDAnalysisTaskDndeta("dNdeta"); | |
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); | |
38 | mgr->AddTask(FMDana4); | |
39 | ||
40 | ||
41 | AliAnalysisDataContainer* cin_esd = mgr->CreateContainer("esdTree",TTree::Class(),AliAnalysisManager::kInputContainer,"AliESDs.root"); | |
42 | AliAnalysisDataContainer* cexchangevertex = mgr->CreateContainer("esdvertex",AliESDVertex::Class(),AliAnalysisManager::kExchangeContainer); | |
43 | AliAnalysisDataContainer* cexchange0 = mgr->CreateContainer("exchangeESDFMD0",AliESDEvent::Class(),AliAnalysisManager::kExchangeContainer); | |
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); | |
47 | AliAnalysisDataContainer* cexchange2 = mgr->CreateContainer("list_of_hits",TList::Class(),AliAnalysisManager::kExchangeContainer); | |
48 | AliAnalysisDataContainer* cvertex = mgr->CreateContainer("vertex",TObjString::Class(),AliAnalysisManager::kExchangeContainer); | |
49 | AliAnalysisDataContainer* cexchange3 = mgr->CreateContainer("list_of_hits_and_mult",TList::Class(),AliAnalysisManager::kOutputContainer,"testOut.root"); | |
50 | AliAnalysisDataContainer* coutput = mgr->CreateContainer("BackgroundCorrected",TList::Class(),AliAnalysisManager::kOutputContainer,outFile); | |
51 | ||
52 | mgr->ConnectInput(FMDana0, 0 , cin_esd); | |
53 | mgr->ConnectOutput(FMDana0, 0 , cexchange0); | |
54 | ||
55 | mgr->ConnectInput(FMDana1, 0 , cexchange0); | |
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 | ||
63 | mgr->ConnectInput(FMDana2, 0 , cexchange1); | |
64 | mgr->ConnectInput(FMDana2, 1 , cexchangevertex); | |
65 | mgr->ConnectOutput(FMDana2, 0 , cexchange2); | |
66 | ||
67 | mgr->ConnectInput(FMDana3, 0 , cexchange2); | |
68 | mgr->ConnectOutput(FMDana3, 0 , cexchange3); | |
69 | mgr->ConnectOutput(FMDana3, 1 , cvertex); | |
70 | ||
71 | mgr->ConnectInput(FMDana4, 0 , cexchange3); | |
72 | mgr->ConnectInput(FMDana4, 1 , cvertex); | |
73 | mgr->ConnectOutput(FMDana4, 0 , coutput); | |
74 | ||
75 | ||
76 | TFile::Open(filename); | |
77 | TChain* chain = (TChain*)gFile->Get("esdTree"); | |
78 | ||
79 | ||
80 | mgr->InitAnalysis(); | |
81 | mgr->PrintStatus(); | |
82 | ||
83 | TStopwatch timer; | |
84 | timer.Start(); | |
85 | cout<<"Executing analysis"<<endl; | |
86 | mgr->StartAnalysis("local",chain); | |
87 | timer.Stop(); | |
88 | timer.Print(); | |
89 | } |