]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/macros/AddTaskJetCorePP.C
Updates from Filip
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskJetCorePP.C
1
2
3 AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
4    const Char_t* branchPrefix="clustersAOD",
5    const Char_t* jetAlgo="ANTIKT",   
6    Float_t jetParameterR = 0.4,  //jet R 
7    UInt_t  trkFilterMask = 272, 
8    Float_t trackLowPtCut = 0.15,
9    const Char_t* jetbgAlgo="KT",    //background jet algo
10    Int_t   collisionSystem = 0, //pp=0, pPb=1
11    Int_t   offlineTriggerMask=AliVEvent::kMB, //MinBias=0 
12    Int_t   minContribVtx = 1,
13    Float_t vtxZMin = -10.0,
14    Float_t vtxZMax = 10.0,
15    Float_t centMin = 0.0,
16    Float_t centMax = 100.0,
17    Float_t triggerEtaCut = 0.9,
18    Float_t trackEtaCut = 0.9,
19    const Char_t* nonStdFile="",
20    const Char_t* mcFullFlag="",  // real="", all jets= "MC"    
21    const Char_t* mcChargFlag="",  // real="", charged jets = "MC2" 
22    Int_t triggerType=0,  //0=single incl trigger, 1=leading track, 2=hadron pt>10 
23    Int_t evtRangeLow=0,   //last digit of range of ESD event number
24    Int_t evtRangeHigh=9,  //first digit of range of ESD event number
25    Float_t trigRangeLow=0,  //trigger pT low bin boreder works with triggType=0
26    Float_t trigRangeHigh=50  //trigger pT high border works with triggType=0
27   ){ 
28
29    Printf("adding task jet response\n");
30
31    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
32    if(!mgr){
33       ::Error("AddTaskJetCorePP", "No analysis manager to connect to.");
34       return NULL;
35    }
36    if(!mgr->GetInputEventHandler()){
37       ::Error("AddTaskJetCorePP", "This task requires an input event handler.");
38       return NULL;
39    }
40
41    Float_t jetEtaMin = -0.9 + jetParameterR;
42    Float_t jetEtaMax =  0.9 - jetParameterR; 
43     
44    TString analBranch(branchPrefix);
45    TString analBranchBg(branchPrefix);  // kT bg jets
46    TString analBranchFullMC="";             //full jets MC to be used with charged jets MC 
47    TString analBranchChargMC="";            //charged jets
48    TString analBranchBgChargMC="";          //charged jets kt background 
49
50
51    TString stJetAlgo(jetAlgo);
52    TString stJetBgAlgo(jetbgAlgo);
53    stJetAlgo.ToUpper();
54    stJetBgAlgo.ToUpper();
55
56  
57    TString jet="";
58    TString jetbg="";
59    TString otherparams="";
60    jet   = jet   + "_" + stJetAlgo + Form("%02d",(Int_t) (10*jetParameterR));
61    jetbg = jetbg + "_" + stJetBgAlgo + Form("%02d",(Int_t) (10*jetParameterR));
62    
63    otherparams = otherparams + "_B0"; //bg mode
64    otherparams = otherparams + Form("_Filter%05d",(UInt_t) trkFilterMask);
65    otherparams = otherparams + Form("_Cut%05d",(Int_t) (1000*trackLowPtCut));
66
67    if(analBranch.BeginsWith("clustersAOD"))
68       otherparams = otherparams + Form("_Skip%02d",0);
69    
70    analBranch   = analBranch   + jet   + otherparams; //antikt jet 
71    analBranchBg = analBranchBg + jetbg + otherparams; //kt bg jet
72
73    //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00   
74    //Skip00 none of the most energetic jets is ommited
75    //Cut00150  pT min cut on track
76    //Filter00272
77
78    TString mcFullSuffix(mcFullFlag);    //MC = all jets
79    TString mcChargSuffix(mcChargFlag);  //MC2= charged jets,  MC = all jets
80
81    if(mcChargSuffix.Length()>0 && mcChargSuffix=="MC2"){  //charged jets generator level
82       analBranchChargMC   = branchPrefix + mcChargSuffix + jet   + otherparams; 
83       analBranchBgChargMC = branchPrefix + mcChargSuffix + jetbg + otherparams; 
84    }
85
86    if(mcFullSuffix.Length()>0 && mcFullSuffix=="MC"){ //full jets generator level
87       analBranchFullMC    = branchPrefix + mcFullSuffix  + jet   + otherparams; 
88    }
89
90
91  
92    AliAnalysisTaskJetCorePP *task = new AliAnalysisTaskJetCorePP(Form("JetCorePP_%s_%s_%d",analBranch.Data(), mcChargSuffix.Data(), offlineTriggerMask));
93
94    task->SetBranchName(analBranch.Data());
95    task->SetBranchNameFullMC(analBranchFullMC.Data());
96    task->SetBranchNameChargMC(analBranchChargMC.Data());
97    task->SetBranchNameBg(analBranchBg.Data()); //kt bg jets
98    task->SetBranchNameBgChargMC(analBranchBgChargMC.Data()); //kt bg jets
99    task->SetNonStdFile(nonStdFile);
100    task->SetSystem(collisionSystem); 
101    task->SetJetR(jetParameterR);
102    task->SetOfflineTrgMask(offlineTriggerMask);
103    task->SetMinContribVtx(minContribVtx);
104    task->SetVtxZMin(vtxZMin);
105    task->SetVtxZMax(vtxZMax);
106    task->SetFilterMask(trkFilterMask);
107    task->SetCentMin(centMin);
108    task->SetCentMax(centMax);
109    task->SetJetEtaMin(jetEtaMin);
110    task->SetJetEtaMax(jetEtaMax);
111    task->SetTriggerEtaCut(triggerEtaCut);
112    task->SetTrackEtaCut(trackEtaCut);
113    task->SetTrackLowPtCut(trackLowPtCut);
114    task->SetTriggerType(triggerType); 
115    task->SetEventNumberRangeLow(evtRangeLow);
116    task->SetEventNumberRangeHigh(evtRangeHigh);
117    task->SetTriggerPtRangeLow(trigRangeLow);
118    task->SetTriggerPtRangeHigh(trigRangeHigh); 
119
120
121    task->SetDebugLevel(0); //No debug messages 0
122    mgr->AddTask(task);
123    //E=  range of last two decimal numbers in event numbers
124    //Ptt range of the cosidered trigger bin
125    AliAnalysisDataContainer *coutputJetCorePP = mgr->CreateContainer(
126       Form("pwgjejetcorepp_%s_%s_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",analBranch.Data(),jetbgAlgo,mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh), 
127       TList::Class(),
128       AliAnalysisManager::kOutputContainer,
129       Form("%s:PWGJE_jetcorepp_%s_%s_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",AliAnalysisManager::GetCommonFileName(),analBranch.Data(),jetbgAlgo,mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh)
130    );
131
132    mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
133    mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
134    mgr->ConnectOutput(task, 1, coutputJetCorePP);
135
136    return task;
137 }