e33136193ca278bd217920bce7eabe283816bf58
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetMatching.C
1 /* AddTask macro for class AliAnalysisTaskJetMatching
2  * Redmer Alexander Bertens, rbertens@cern.ch
3  * Utrecht University, Utrecht, Netherlands             */
4
5 AliAnalysisTaskJetMatching* AddTaskJetMatching(
6         const char* sourceJets  = "SourceJets", // source jets
7         const char* targetJets  = "TargetJets", // target jets
8         const char* matchedJets = "MatchedJets",// matched jets
9         UInt_t matchingScheme   = AliAnalysisTaskJetMatching::kGeoR,
10         Bool_t matchConstituents= kTRUE,
11         Float_t minFrReCon      = .3,
12         Float_t minFrReConPt    = .5,
13         const char *name        = "AliAnalysisTaskJetMatching",
14         Bool_t cut              = kTRUE,
15         UInt_t  sourceType      = AliAnalysisTaskEmcal::kTPC,
16         Float_t sourceRadius    = 0.3,
17         Float_t sourceAreaCut   = .557,
18         Float_t sourcePtBias    = 10.,
19         UInt_t targetType       = AliAnalysisTaskEmcal::kTPC,
20         Float_t targetRadius    = 0.3,
21         Float_t targetAreaCut   = .557,
22         Float_t targetPtBias    = 10.
23   )
24
25   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
26   if (!mgr)                             return 0x0;
27   if (!mgr->GetInputEventHandler())     return 0x0;
28
29   AliAnalysisTaskJetMatching* jetTask = new AliAnalysisTaskJetMatching(name);
30   jetTask->SetDebugMode(-1);
31   jetTask->SetMatchConstituents(matchConstituents);
32   jetTask->SetMinFracRecoveredConstituents(minFrReCon);
33   jetTask->SetMinFracRecoveredConstituentPt(minFrReConPt);
34   jetTask->SetSourceJetsName(sourceJets);
35   jetTask->SetTargetJetsName(targetJets);
36   jetTask->SetMatchedJetsName(matchedJets);
37   jetTask->SetMatchingScheme(matchingScheme);
38   // if we want the jet package to cut on the source and target jets
39   jetTask->SetUseEmcalBaseJetCuts(cut);
40   if(cut) {
41       jetTask->SetJetsName(sourceJets);
42       jetTask->SetAnaType(sourceType, 0);
43       jetTask->SetJetRadius(sourceRadius, 0);
44       jetTask->SetPercAreaCut(sourceAreaCut, 0);
45       jetTask->SetPtBiasJetTrack(sourcePtBias);
46       jetTask->SetJetsName(targetJets);
47       jetTask->SetAnaType(targetType, 1);
48       jetTask->SetJetRadius(targetRadius, 1);
49       jetTask->SetPercAreaCut(targetAreaCut, 1);
50       jetTask->SetPtBiasJetTrack(targetPtBias);
51   }
52   
53   mgr->AddTask(jetTask);
54   // Create containers for input/output
55   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
56   TString contname(name);
57   contname += "_histos";
58   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
59                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
60                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
61   mgr->ConnectInput  (jetTask, 0,  cinput1 );
62   mgr->ConnectOutput (jetTask, 1, coutput1 );
63   return jetTask;
64 }