Update from Sandun
[u/mrichter/AliRoot.git] / JETAN / JetAnalysisManagerLoc.C
1 void JetAnalysisManagerLoc()
2 {
3       gSystem->Load("libTree.so");
4       gSystem->Load("libPhysics.so");
5       gSystem->Load("libGeom.so");
6       gSystem->Load("libVMC.so");
7       gSystem->Load("libANALYSIS.so");
8       gSystem->Load("libSTEERBase.so");
9       gSystem->Load("libAOD.so");
10       gSystem->Load("libESD.so");
11       gSystem->Load("libANALYSISalice.so");
12       gSystem->Load("libJETAN.so");
13
14      //
15     if (gApplication) gApplication->InitializeGraphics();
16     // Create the chain
17     //
18     gROOT->LoadMacro("CreateESDChain.C");
19     TChain* chain = new TChain("esdTree");
20     chain->Add("~/alice/data/highpt/kPythia6Jets125_150/030/AliESDs.root");
21
22     /////////////////////////////////////////////////////////////////////////////////// 
23     // Create the analysis manager
24     //
25     // Input 
26     AliESDInputHandler* inpHandler = new AliESDInputHandler();
27     // Output
28     AliAODHandler* aodHandler = new AliAODHandler();
29     aodHandler->SetOutputFileName("aod.root");
30     // MC Truth
31     AliMCEventHandler* mcHandler = new AliMCEventHandler();
32     
33
34     AliAnalysisManager *mgr  = new AliAnalysisManager("Jet Manager", "Jet Manager");
35     mgr->SetInputEventHandler  (inpHandler);
36     mgr->SetOutputEventHandler (aodHandler);
37     mgr->SetMCtruthEventHandler(mcHandler);
38     mgr->SetDebugLevel(10);
39     /////////////////////////////////////////////////////////////////////////////////// 
40     
41     
42     //
43     // Set of cuts
44     // 
45     // standard   
46
47     AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("Standard Track Cuts", "ESD Track Cuts");
48     esdTrackCutsL->SetMinNClustersTPC(50);
49     esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
50     esdTrackCutsL->SetRequireTPCRefit(kTRUE);
51     esdTrackCutsL->SetMaxDCAToVertexXY(2.4);
52     esdTrackCutsL->SetMaxDCAToVertexZ(3.2);
53     esdTrackCutsL->SetDCAToVertex2D(kTRUE);
54     esdTrackCutsL->SetRequireSigmaToVertex(kFALSE);
55     esdTrackCutsL->SetAcceptKinkDaughters(kFALSE);
56     
57     //
58     // hard
59     AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");
60     esdTrackCutsH->SetMinNClustersTPC(100);
61     esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);
62     esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
63     esdTrackCutsH->SetRequireTPCRefit(kTRUE);
64     esdTrackCutsH->SetMaxNsigmaToVertex(2);
65     esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);
66     esdTrackCutsH->SetAcceptKinkDaughters(kFALSE);
67     //
68     AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
69     trackFilter->AddCuts(esdTrackCutsL);
70     trackFilter->AddCuts(esdTrackCutsH);
71     //
72     AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
73     esdfilter->SetTrackFilter(trackFilter);
74     esdfilter->SetDebugLevel(10);
75     mgr->AddTask(esdfilter);
76
77     AliAnalysisTaskJets *jetana = new AliAnalysisTaskJets("JetAnalysis");
78     jetana->SetDebugLevel(10);
79
80
81
82     AliAnalysisTaskJets *jetanaMC = new AliAnalysisTaskJets("JetAnalysisMC");
83     jetanaMC->SetDebugLevel(10);
84     jetanaMC->SetConfigFile("ConfigJetAnalysisMC.C");
85     jetanaMC->SetNonStdBranch("jetsMC");
86     mgr->AddTask(jetanaMC);
87     mgr->AddTask(jetana);
88
89     //
90     // Create containers for input/output
91     AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
92     AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
93     AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("histos", TList::Class(),
94                                                               AliAnalysisManager::kOutputContainer, "histos.root");
95
96     AliAnalysisDataContainer *coutputMC2 = mgr->CreateContainer("histosMC", TList::Class(),
97                                                               AliAnalysisManager::kOutputContainer, "histosMC.root");
98
99     mgr->ConnectInput  (esdfilter,  0, cinput1  );
100     mgr->ConnectOutput (esdfilter,  0, coutput1 );
101
102     mgr->ConnectInput  (jetana,     0, cinput1  );
103     mgr->ConnectOutput (jetana,     0, coutput1 );
104     mgr->ConnectOutput (jetana,     1, coutput2 );
105
106     mgr->ConnectInput  (jetanaMC,     0, cinput1  );
107     mgr->ConnectOutput (jetanaMC,     0, coutput1 );
108     mgr->ConnectOutput (jetanaMC,     1, coutputMC2 );
109
110
111     //
112     // Run the analysis
113     //    
114     mgr->InitAnalysis();
115     mgr->PrintStatus();
116     mgr->StartAnalysis("local",chain);
117 }