]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPYAOD/runPWG2AODUpdate.C
Checking Storage Manager state added to ED. Now GUI reacts depending on status of SM.
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPYAOD / runPWG2AODUpdate.C
CommitLineData
f9228736 1void runPWG2AODUpdate(const char *esdsource="ESD1503X_v1.txt", int nfiles=1)
2{
3 producePWG2AOD(esdsource, nfiles);
4}
5
6void producePWG2AOD(const char *esdsource, int nfiles)
7{
8 gSystem->Load("libTree.so");
9 gSystem->Load("libGeom.so");
10 gSystem->Load("libVMC.so");
11 gSystem->Load("libXMLIO.so");
12 SetupPar("STEERBase");
13 SetupPar("ESD");
14 SetupPar("AOD");
15 SetupPar("ANALYSIS");
16 SetupPar("ANALYSISalice");
17 SetupPar("PWG0base");
18 SetupPar("PWG2AOD");
19 // Make the analysis manager
20 //
21 // Chain from CAF
22 gROOT->LoadMacro("CreateESDChain.C");
23 TChain* chain = CreateESDChain(esdsource, nfiles);
24
25 AliAODHandler* aodHandler = new AliAODHandler();
26 aodHandler->SetOutputFileName("aod.root");
27 AliESDInputHandler *esdHandler = new AliESDInputHandler();
28 esdHandler->SetInactiveBranches("FMD CaloCluster");
29
30 AliMCEventHandler* mcHandler = new AliMCEventHandler();
31
32 AliAnalysisManager *mgr = new AliAnalysisManager("esd to pwg2 aod", "testing aod analysis");
33 mgr->SetInputEventHandler(esdHandler);
34 mgr->SetOutputEventHandler(aodHandler);
35 mgr->SetMCtruthEventHandler(mcHandler);
36 mgr->SetDebugLevel(10);
37 AliLog::EnableDebug(kTRUE);
38 AliLog::SetGlobalLogLevel(2);
39
40
41 // Set of cuts
42 //
43 // standard
44 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
45 esdTrackCutsL->SetMinNClustersTPC(50);
46 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
47 esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
48 esdTrackCutsL->SetRequireTPCRefit(kTRUE);
49 esdTrackCutsL->SetMinNsigmaToVertex(3);
50 esdTrackCutsL->SetRequireSigmaToVertex(kTRUE);
51 esdTrackCutsL->SetAcceptKingDaughters(kFALSE);
52 //
53 // hard
54 AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");
55 esdTrackCutsH->SetMinNClustersTPC(95);
56 esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);
57 esdTrackCutsH->SetMaxChi2PerClusterITS(3.0);
58 esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
59 esdTrackCutsH->SetRequireTPCRefit(kTRUE);
60 esdTrackCutsH->SetRequireITSRefit(kTRUE);
61 esdTrackCutsH->SetMinNsigmaToVertex(2);
62 esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);
63 esdTrackCutsH->SetAcceptKingDaughters(kFALSE);
64 esdTrackCutsH->SetPtRange(0.1,1.5);
65 esdTrackCutsH->SetEtaRange(-1.0,1.0);
66 //
67 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
68 trackFilter->AddCuts(esdTrackCutsL);
69 trackFilter->AddCuts(esdTrackCutsH);
70 //
71 AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
72 esdfilter->SetTrackFilter(trackFilter);
73 esdfilter->SetDebugLevel(10);
74 mgr->AddTask(esdfilter);
75
76 AliAnalysisTaskPWG2AODUpdate *pwg2aodupdate = new AliAnalysisTaskPWG2AODUpdate("PWG2 AOD Update");
77 mgr->AddTask(pwg2aodupdate);
78
79 // Create containers for input/output
80 // Top ESD container
81 AliAnalysisDataContainer *cin_esd = mgr->GetCommonInputContainer();
82
83 // Output AOD container
84 AliAnalysisDataContainer *cout_aod = mgr->GetCommonOutputContainer();
85
86 mgr->ConnectInput (esdfilter, 0, cin_esd );
87 mgr->ConnectOutput (esdfilter, 0, cout_aod );
88
89 mgr->ConnectInput (pwg2aodupdate, 0, cin_esd );
90 mgr->ConnectOutput (pwg2aodupdate, 0, cout_aod );
91 //
92 // Run the analysis
93 //
94 mgr->InitAnalysis();
95 mgr->PrintStatus();
96 mgr->StartAnalysis("local",chain);
97 delete mgr;
98}
99
100void SetupPar(char* pararchivename)
101{
102 if (pararchivename) {
103 char processline[1024];
104 sprintf(processline,".! tar xvzf %s.par",pararchivename);
105 gROOT->ProcessLine(processline);
106 TString ocwd = gSystem->WorkingDirectory();
107 gSystem->ChangeDirectory(pararchivename);
108
109 // check for BUILD.sh and execute
110 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
111 printf("*******************************\n");
112 printf("*** Building PAR archive ***\n");
113 printf("*******************************\n");
114
115 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
116 Error("runProcess","Cannot Build the PAR Archive! - Abort!");
117 return -1;
118 }
119 }
120 // check for SETUP.C and execute
121 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
122 printf("*******************************\n");
123 printf("*** Setup PAR archive ***\n");
124 printf("*******************************\n");
125 gROOT->Macro("PROOF-INF/SETUP.C");
126 }
127
128 gSystem->ChangeDirectory(ocwd.Data());
129 printf("Current dir: %s\n", ocwd.Data());
130 }
131}