]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/FlavourJetTasks/macros/AddTaskEmcalJetFlavourTagExample.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / macros / AddTaskEmcalJetFlavourTagExample.C
1 AliAnalysisTaskEmcalJetFlavourTagExample* AddTaskEmcalJetFlavourTagExample(
2    const char *outfilename    = "AnalysisOutput.root",
3    const char *nJets          = "Jets",
4    const char *nClusters      = "CaloClustersCorr",
5    UInt_t type                = 0, //AliAnalysisTaskEmcal::kTPC,
6    const char *nrho      = "rhoChEm",
7    const Double_t minPhi      = 1.8,
8    const Double_t maxPhi      = 2.74,
9    const Double_t minEta      = -0.3,
10    const Double_t maxEta      = 0.3,
11    const Double_t minArea     = 0.4,
12    const char *nPicoTracks        = "PicoTracks",
13    const Double_t hiPTjet     = 50.0,
14    const Double_t trptcut     = 2.0,
15    const Double_t trketa      = 0.9,
16    Bool_t   isESD              = 0,
17    const char *typeDET         = "EMCAL",
18    Double_t    jetradius          = 0.2,
19    Double_t    jetptcut           = 1,
20    Double_t    jetareacut         = 0.08,
21    Int_t       leadhadtype        = 0,
22    const char *tag                 = ""
23 )
24 {
25   // Get the pointer to the existing analysis manager via the static access method.
26   //==============================================================================
27   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
28   if (!mgr)
29   {
30     ::Error("AddTaskEmcalJetFlavourTagExample", "No analysis manager to connect to.");
31     return NULL;
32   }
33
34   // Check the analysis type using the event handlers connected to the analysis manager.
35   //==============================================================================
36   AliVEventHandler *evhand = mgr->GetInputEventHandler();
37   //if (!mgr->GetInputEventHandler())
38   if (!evhand) {
39     Error("AddTaskEmcalJetHadEPpid", "This task requires an input event handler");
40     return NULL;
41   }
42   
43   // check on type of event
44   TString dType("ESD");
45   if (!evhand->InheritsFrom("AliESDInputHandler"))
46     dType = "AOD";
47   if (dType == "AOD") nTracks = "AODFilterTracks";
48   if (dType == "ESD") nTracks = "ESDFilterTracks";
49   //ESD Trk Cuts
50   //if(isESD > 0){
51   AliESDtrackCuts *esdTrackCuts = 0x0;
52   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
53
54   //}
55   
56   
57   
58   //-------------------------------------------------------
59   // Init the task and do settings
60   //-------------------------------------------------------
61
62 //  TString name(Form("Spectra_%s", nJets));
63   TString name(Form("Spectra_%s_%s%s", nJets, nrho, tag));
64   AliAnalysisTaskEmcalJetFlavourTagExample *spectratask = new AliAnalysisTaskEmcalJetFlavourTagExample(name);
65   spectratask->SetJetsName(nJets);
66   spectratask->SetClusName(nClusters);
67   spectratask->SetAnaType(type);
68   spectratask->SetRhoName(nrho);
69   spectratask->SetJetPhi(minPhi,maxPhi);
70   spectratask->SetJetEta(minEta,maxEta);
71   spectratask->SetJetAreaCut(minArea);
72   spectratask->SetTracksName(nTracks);
73   spectratask->SetJetPt(hiPTjet); 
74   spectratask->SetTrackPtCut(trptcut);
75   spectratask->SetTrackEta(trketa);
76   spectratask->SetTrackCuts(esdTrackCuts);
77   //spectratask->SetDataType(isESD);
78
79   // =================== set up containers ================================================
80
81   
82   AliParticleContainer *trackCont  = spectratask->AddParticleContainer(nTracks);
83   if(trackCont){
84     trackCont->SetClassName("AliVTrack");
85     trackCont->SetParticleEtaLimits(-0.9,0.9);
86     trackCont->SetParticlePhiLimits(1.4,3.2);
87   }
88   
89   AliClusterContainer *clusterCont = spectratask->AddClusterContainer(nClusters);
90   
91   AliParticleContainer *trackJetCont  = spectratask->AddParticleContainer(nTracks);
92   if(trackJetCont){
93     trackJetCont->SetClassName("AliVTrack");
94     trackJetCont->SetParticleEtaLimits(-0.9,0.9);
95     //trackJetCont->SetParticlePhiLimits(1.4,3.2);
96   }
97   
98   AliClusterContainer *clusterJetCont = spectratask->AddClusterContainer(nClusters);
99   
100
101   TString strType(typeDET);
102   AliJetContainer *jetCont = spectratask->AddJetContainer(nJets,strType,jetradius);
103   if(jetCont) {
104     jetCont->SetRhoName(nrho);
105     jetCont->ConnectParticleContainer(trackJetCont);
106     jetCont->ConnectClusterContainer(clusterJetCont);
107     //jetCont->ConnectParticleContainer(trackCont);
108     //jetCont->ConnectClusterContainer(clusterCont);
109     //jetCont->SetZLeadingCut(0.98,0.98);
110     jetCont->SetPercAreaCut(jetareacut); // 0.6
111     jetCont->SetJetPtCut(jetptcut);
112     //jetCont->SetLeadingHadronType(leadhadtype);
113   }
114
115   //-------------------------------------------------------
116   // Final settings, pass to manager and set the containers
117   //-------------------------------------------------------
118
119   mgr->AddTask(spectratask);
120
121   // Create containers for input/output
122   mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() );
123   AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
124                                                            TList::Class(),
125                                                            AliAnalysisManager::kOutputContainer,
126                                                            outfilename);
127   mgr->ConnectOutput(spectratask,1,cospectra);
128
129   return spectratask;
130 }
131