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