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