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,
34 const Int_t flavTag = 999,
35 const Int_t esdcuts = 10001006,
36 TString colltype = "",
37 UInt_t trigevent = AliVEvent::kAny,
38 UInt_t mixevent = AliVEvent::kAny,
39 UInt_t centbinsize = 1,
40 const Int_t doEffcorrSW = 0,
45 // Get the pointer to the existing analysis manager via the static access method.
46 //==============================================================================
47 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
50 ::Error("AddTaskEmcalJetHadEPpid", "No analysis manager to connect to.");
54 // Check the analysis type using the event handlers connected to the analysis manager.
55 //==============================================================================
56 AliVEventHandler *evhand = mgr->GetInputEventHandler();
57 //if (!mgr->GetInputEventHandler())
59 Error("AddTaskEmcalJetHadEPpid", "This task requires an input event handler");
63 // check on type of event
65 if (!evhand->InheritsFrom("AliESDInputHandler"))
67 if (dType == "AOD") const char *nTracks = "AODFilterTracks";
68 if (dType == "ESD") const char *nTracks = "ESDFilterTracks";
70 // find out collisions system in order to know beamtype in UserCreateObjects later on
71 AliAnalysisTaskEmcal::BeamType beam = -99;
72 if (colltype == "p-p") beam = 0;
73 else if(colltype == "A-A") beam = 1;
74 else if(colltype == "p-A") beam = 2;
77 //-------------------------------------------------------
78 // Init the task and do settings
79 //-------------------------------------------------------
81 TString name(Form("Correlations_%s%s", nJets, tag));
82 AliAnalysisTaskEmcalJetHadEPpid *correlationtask = new AliAnalysisTaskEmcalJetHadEPpid(name);
83 correlationtask->SetJetsName(nJets);
84 correlationtask->SetTracksName(nTracks);
85 correlationtask->SetTracksNameME(nTracksME);
86 correlationtask->SetRhoName(nRho);
87 if(colltype == "A-A") correlationtask->SetLocalRhoName(lrho);
88 correlationtask->SetJetPhi(minPhi,maxPhi);
89 correlationtask->SetJetEta(minEta,maxEta);
90 correlationtask->SetAreaCut(minArea);
91 correlationtask->SetEventMixing(EvtMix);
92 correlationtask->SetTrkBias(TrkBias);
93 correlationtask->SetClusBias(ClusBias);
94 correlationtask->SetTrkEta(TrkEta);
95 // Added on/after March20, 2014
96 correlationtask->SetdoPID(PID);
97 correlationtask->SetdoPIDtrackBIAS(PIDtrackBIAS);
98 correlationtask->SetvarbinTHnSparse(varbinTHnSparse);
99 correlationtask->SetallpidAXIS(allpidAXIS);
100 correlationtask->SetmakeQAhistos(QAhistos);
101 correlationtask->SetmakeBIAShistos(BIAShistos);
102 correlationtask->SetmakeextraCORRhistos(extraCORRhistos);
103 correlationtask->SetoldJEThadhistos(oldJEThadhistos);
104 correlationtask->SetJetPtcut(JetPtcut);
105 correlationtask->SetJetRad(JetRadius);
106 correlationtask->SetConstituentCut(constitCut);
107 correlationtask->SetMixingTracks(MixingTracks);
108 correlationtask->SetNMixedTr(nmixingTR);
109 correlationtask->SetNMixedEvt(nmixingEV);
110 correlationtask->SetcutType(cutType);
111 correlationtask->SetdoComments(Comments);
112 correlationtask->SetFlavourJetAnalysis(doFlavourJetAnalysis);
113 correlationtask->SetJETFlavourTag(flavTag);
114 correlationtask->SetCollType(beam);
115 correlationtask->SetTriggerEventType(trigevent);
116 correlationtask->SetMixedEventType(mixevent);
117 correlationtask->SetCentBinSize(centbinsize);
118 correlationtask->SetDoEffCorr(doEffcorrSW);
120 // =================== set up containers ================================================
122 AliClusterContainer *clusCont = correlationtask->AddClusterContainer(nClusters);
124 // Particle Container
125 AliParticleContainer *partCont = correlationtask->AddParticleContainer(nTracks);
128 AliJetContainer *jetCont0 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
129 AliJetContainer *jetCont1 = correlationtask->AddJetContainer(nJets, cutType, JetRadius);
130 correlationtask->SetContainerAllJets(0);
131 correlationtask->SetContainerPIDJets(1);
133 // jet container cuts..
134 correlationtask->SetJetPtCut(JetPtcut, 1);
135 correlationtask->SetPercAreaCut(0.6, 1);
137 // ===================================================================
138 // for manually doing Track Cuts
139 // ESD track quality cuts
140 AliESDtrackCuts *esdTrackCuts = 0x0;
141 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
142 esdTrackCuts = CreateTrackCutsPWGJE(esdcuts);
143 correlationtask->SetTrackCuts(esdTrackCuts);
145 //-------------------------------------------------------
146 // Final settings, pass to manager and set the containers
147 //-------------------------------------------------------
148 mgr->AddTask(correlationtask);
150 // Create containers for input/output
151 mgr->ConnectInput (correlationtask, 0, mgr->GetCommonInputContainer() );
152 AliAnalysisDataContainer *cojeth = mgr->CreateContainer(name,
154 AliAnalysisManager::kOutputContainer,
157 mgr->ConnectOutput(correlationtask,1,cojeth);
158 return correlationtask;