1 AliAnalysisTaskEmcalJetHadEPpid* AddTaskEmcalJetHadEPpid(
2 const char *outfilename = "AnalysisOutput.root",
3 const char *nJets = "Jets",
4 const char *nTracksME = "PicoTracks",
5 const char *nClusters = "CaloClustersCorr",
6 const char *nRho = "rhoCh",
7 const char *lrho = "lrho",
8 const Double_t minPhi = 1.8,
9 const Double_t maxPhi = 2.74,
10 const Double_t minEta = -0.3,
11 const Double_t maxEta = 0.3,
12 const Double_t minArea = 0.4,
13 const Int_t EvtMix = 0,
14 const Double_t TrkBias = 5,
15 const Double_t ClusBias = 5,
16 const Double_t TrkEta = 0.9,
17 Bool_t PID = 0, //kFALSE,
18 Bool_t PIDtrackBIAS = 0, //kFALSE,
19 Bool_t varbinTHnSparse = 0, //kFALSE,
20 Bool_t allpidAXIS = 0, //kFALSE,
21 Bool_t QAhistos = 0, //kFALSE,
22 Bool_t BIAShistos = 0, //kFALSE,
23 Bool_t extraCORRhistos = 0, //kFALSE,
24 Bool_t oldJEThadhistos = 0, //kFALSE,
25 const Double_t JetPtcut = 15.0,
26 const Double_t JetRadius = 0.4,
27 const Double_t constitCut = 0.15,
28 const Int_t MixingTracks = 50000,
29 const Int_t nmixingTR = 5000,
30 const Int_t nmixingEV = 5,
31 TString cutType = "EMCAL",
33 Bool_t doFlavourJetAnalysis = 0,
35 Int_t esdcuts = 10001006,
36 TString colltype = "",
37 UInt_t trigevent = AliVEvent::kAny,
38 UInt_t mixevent = AliVEvent::kAny,
43 // Get the pointer to the existing analysis manager via the static access method.
44 //==============================================================================
45 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
48 ::Error("AddTaskEmcalJetHadEPpid", "No analysis manager to connect to.");
52 // Check the analysis type using the event handlers connected to the analysis manager.
53 //==============================================================================
54 AliVEventHandler *evhand = mgr->GetInputEventHandler();
55 //if (!mgr->GetInputEventHandler())
57 Error("AddTaskEmcalJetHadEPpid", "This task requires an input event handler");
61 // check on type of event
63 if (!evhand->InheritsFrom("AliESDInputHandler"))
65 if (dType == "AOD") const char *nTracks = "AODFilterTracks";
66 if (dType == "ESD") const char *nTracks = "ESDFilterTracks";
68 // find out collisions system in order to know beamtype in UserCreateObjects later on
69 AliAnalysisTaskEmcal::BeamType beam = -99;
70 if (colltype == "p-p") beam = 0;
71 else if(colltype == "A-A") beam = 1;
72 else if(colltype == "p-A") beam = 2;
75 //-------------------------------------------------------
76 // Init the task and do settings
77 //-------------------------------------------------------
79 TString name(Form("Correlations_%s%s", nJets, tag));
80 AliAnalysisTaskEmcalJetHadEPpid *correlationtask = new AliAnalysisTaskEmcalJetHadEPpid(name);
81 correlationtask->SetJetsName(nJets);
82 correlationtask->SetTracksName(nTracks);
83 correlationtask->SetTracksNameME(nTracksME);
84 correlationtask->SetRhoName(nRho);
85 if(colltype == "A-A") correlationtask->SetLocalRhoName(lrho);
86 correlationtask->SetJetPhi(minPhi,maxPhi);
87 correlationtask->SetJetEta(minEta,maxEta);
88 correlationtask->SetAreaCut(minArea);
89 correlationtask->SetEventMixing(EvtMix);
90 correlationtask->SetTrkBias(TrkBias);
91 correlationtask->SetClusBias(ClusBias);
92 correlationtask->SetTrkEta(TrkEta);
93 // Added on/after March20, 2014
94 correlationtask->SetdoPID(PID);
95 correlationtask->SetdoPIDtrackBIAS(PIDtrackBIAS);
96 correlationtask->SetvarbinTHnSparse(varbinTHnSparse);
97 correlationtask->SetallpidAXIS(allpidAXIS);
98 correlationtask->SetmakeQAhistos(QAhistos);
99 correlationtask->SetmakeBIAShistos(BIAShistos);
100 correlationtask->SetmakeextraCORRhistos(extraCORRhistos);
101 correlationtask->SetoldJEThadhistos(oldJEThadhistos);
102 correlationtask->SetJetPtcut(JetPtcut);
103 correlationtask->SetJetRad(JetRadius);
104 correlationtask->SetConstituentCut(constitCut);
105 correlationtask->SetMixingTracks(MixingTracks);
106 correlationtask->SetNMixedTr(nmixingTR);
107 correlationtask->SetNMixedEvt(nmixingEV);
108 correlationtask->SetcutType(cutType);
109 correlationtask->SetdoComments(Comments);
110 correlationtask->SetFlavourJetAnalysis(doFlavourJetAnalysis);
111 correlationtask->SetJETFlavourTag(flavTag);
112 correlationtask->SetCollType(beam);
113 correlationtask->SetTriggerEventType(trigevent);
114 correlationtask->SetMixedEventType(mixevent);
116 // =================== set up containers ================================================
118 AliClusterContainer *clusCont = correlationtask->AddClusterContainer(nClusters);
120 // Particle Container
121 AliParticleContainer *partCont = correlationtask->AddParticleContainer(nTracks);
124 AliJetContainer *jetCont0 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
125 AliJetContainer *jetCont1 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
126 correlationtask->SetContainerAllJets(0);
127 correlationtask->SetContainerPIDJets(1);
129 // jet container cuts..
130 correlationtask->SetJetPtCut(JetPtcut, 1);
131 correlationtask->SetPercAreaCut(0.6, 1);
133 // ===================================================================
134 // for manually doing Track Cuts
135 // ESD track quality cuts
136 AliESDtrackCuts *esdTrackCuts = 0x0;
137 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
138 esdTrackCuts = CreateTrackCutsPWGJE(esdcuts);
139 correlationtask->SetTrackCuts(esdTrackCuts);
141 //-------------------------------------------------------
142 // Final settings, pass to manager and set the containers
143 //-------------------------------------------------------
144 mgr->AddTask(correlationtask);
146 // Create containers for input/output
147 mgr->ConnectInput (correlationtask, 0, mgr->GetCommonInputContainer() );
148 AliAnalysisDataContainer *cojeth = mgr->CreateContainer(name,
150 AliAnalysisManager::kOutputContainer,
153 mgr->ConnectOutput(correlationtask,1,cojeth);
154 return correlationtask;