]>
Commit | Line | Data |
---|---|---|
92ddc227 | 1 | void 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 | } |