]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis/RunLocalFMDAnalysis.C
add maximum M02 band cut, retune fit param, define temporary m02 cut for eta and...
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis / RunLocalFMDAnalysis.C
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 }