211194a01d2d9c991a2f69701393e0ff181cd65f
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskPartonDisc.C
1 AliAnalysisTaskPartonDisc* AddTaskPartonDisc(const char* bRec = "jetsAOD_UA104_B0_Filter00128_Cut01000",const char* bRec2 = "jetsAOD_SISCONE04_B0_Filter00128_Cut00150",const char* bGen = "jetsAODMC2_UA104_B0_Filter00000_Cut01000",UInt_t filterMask = 128, Int_t iPhysicsSelectionFlag = AliVEvent::kMB, Int_t option=1, Int_t ntx=90, Double_t jetrad = 0.4, Double_t trackpTcut = 1.0, Double_t incrad = 0.0, Double_t minpTUM = 0.150, Double_t maxpTUM = 0.900, Bool_t skipsingletr = kFALSE, Bool_t notextendExcl = kFALSE,  Double_t sqrts = 7000., Double_t minpTMc = 0.150, Bool_t enaEtaRest = kFALSE)
2 {
3   ////options////
4   // 1: Real pp data
5   // 2: MC
6   // 3: PbPb
7
8   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9   if (!mgr) 
10     {
11       ::Error("AddTaskPartonDisc", "No analysis manager to connect to.");
12       return NULL;
13     }  
14   
15   if (!mgr->GetInputEventHandler()) 
16     {
17       ::Error("AddTaskPartonDisc", "This task requires an input event handler");
18       return NULL;
19     }
20   
21   AliAnalysisTaskPartonDisc* taskPD = new  AliAnalysisTaskPartonDisc(Form("PartonDisc%s-%s",bRec,bGen));
22   if(option==1)
23     {
24       // Default settings in constructor
25     }
26   if(option==2)
27     {
28       taskPD->SetAODwithMC(kTRUE);
29       taskPD->SetPhojetMC(kTRUE); 
30       taskPD->SetMCBranch(bGen);
31       taskPD->SetFlavorRadius(0.3); //default is 0.3 
32       taskPD->SetSqrtS(sqrts);
33       taskPD->SetMinPtMC(minpTMc); // pT min for mc particles (V0 mips)
34     }
35   if(option==3)
36     taskPD->SetHIEvent(kTRUE);
37
38   if(iPhysicsSelectionFlag)
39     taskPD->SelectCollisionCandidates(iPhysicsSelectionFlag);
40   taskPD->SetAODMCInput(kFALSE); // true when running over AODs, false on trains
41   taskPD->SetRecBranch(bRec);
42   taskPD->SetSecondRecBranch(bRec2);
43   taskPD->SetXNtX(ntx);  
44   taskPD->SetJetRadius(jetrad); 
45   taskPD->SetFilterBitTracks(filterMask);
46   taskPD->SetMinPtTrackCut(trackpTcut);
47   taskPD->SetMinPtUE(minpTUM); // for underlying event multiplicity counting
48   taskPD->SetMaxPtUE(maxpTUM); // for underlying event multiplicity counting
49   taskPD->SetIncreaseOfExclusionR(incrad); // increase to R+incrad
50   taskPD->ForceNotUseTrackRefs(kFALSE); // kTRUE para ignorar las tracks refs(diferente bit del usado en jet finding) 
51   taskPD->NotExtendDiJetExclusion(notextendExcl); // kFALSE->extend radius in dijet area, kTRUE->don't extend the radius in dijet area 
52   taskPD->ForceSkipSingleTrackJets(skipsingletr); // kTRUE to force to skip single track jets
53   taskPD->SetEnableJetEtaRestriction(enaEtaRest); // If increase of exclusion radius =!0 -> kTRUE, if not kFALSE
54   mgr->AddTask(taskPD);
55     
56   AliAnalysisDataContainer *coutput_PartDisc = mgr->CreateContainer(Form("taskPD_%s_%s",bRec,bGen),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWJE_taskPD_%s_%s",AliAnalysisManager::GetCommonFileName(),bRec,bGen));
57
58   mgr->ConnectInput  (taskPD, 0, mgr->GetCommonInputContainer());
59   mgr->ConnectOutput (taskPD, 0, mgr->GetCommonOutputContainer()); // comment to run local
60   mgr->ConnectOutput (taskPD, 1, coutput_PartDisc );
61   
62   return taskPD;
63 }