Bool_t kUseCPAR = kFALSE; // use par files for common libs
Bool_t kFillAOD = kTRUE; // switch of AOD filling for on the fly analysis
Bool_t kFilterAOD = kTRUE;
+Float_t kJetTriggerPtCut = 20; // pT for jet trigger in case of iFilter==2
Int_t kSaveAOD = 8; // Bit switch 1 = Full AOD 2 = Jet AOD , 4 = PartCorr, 8 = JCORRAN
//== general input and output variables
TString kDefaultJetBranch = ""; // is currently set when filled (iJETAN or clusters) or from config macro
TString kDefaultJetBackgroundBranch = ""; // is currently set when filled (jet clsuters
TString kDefaultJetBackgroundBranchCut1 = ""; // is currently set when filled (jet clsuters
+TString kDefaultJetBackgroundBranchCut2 = ""; // is currently set when filled (jet clsuters
TString kDefaultJetBackgroundBranch_extra = ""; // is currently set when filled (jet clsuters)
TString kJetSubtractBranches = ""; // is currently set when filled (jet clsuters
TString kJetSubtractBranchesCut1 = ""; // is currently set when filled (jet clsuters
+TString kJetSubtractBranchesCut2 = ""; // is currently set when filled (jet clsuters
TString kJetSubtractBranches_extra = ""; // is currently set when filled (jet clsuters
TString kDefaultJetBranchMC = ""; // is currently set when filled (iJETAN or clusters) or from config macro
else{
iPhysicsSelectionFlag = AliVEvent::kMB;
}
-
- if(iCentralitySelection){
+
+ if(kIsPbPb&&!iAODanalysis){
// has to run before AOD filter
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
- // const char* file1="$ALICE_ROOT/ANALYSIS/macros/AliCentralityBy1D_137161.root";
- // const char* file2="$ALICE_ROOT/ANALYSIS/macros/AliCentralityByFunction_137161.root";
AliCentralitySelectionTask *taskC = AddTaskCentrality();
if (!taskC) ::Warning("AnalysisTrainPWG4Jets", "AliCentralitySelectionTask cannot run for this train conditions - EXCLUDED");
- }
+
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
+ AliEPSelectionTask *taskEP = AddTaskEventplane();
+ if (!taskEP) ::Warning("AnalysisTrainPWG4Jets", "AliEventplan cannot run for this train conditions - EXCLUDED");
+ }
+
if (iESDfilter && !iAODanalysis) {
// ESD filter task configuration.
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskESDFilterPWG4Train.C");
- AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(kUseKinefilter,kUseMuonfilter);
+ // switch on centrality make for PbPb
+ AliAnalysisTaskESDfilter *taskesdfilter = AddTaskESDFilter(kUseKinefilter); // carefull, if physics selection is enabled you may get not primary vertex pointer later on...
taskesdfilter->SetEnableFillAOD(!kFilterAOD);
taskesdfilter->DisableV0s();
taskesdfilter->DisableCascades();
kJetSubtractBranches += Form("%s%s ",taskCl->GetJetOutputBranch(),"RandomConeSkip00");
kJetSubtractBranches += Form("%s%s ",taskCl->GetJetOutputBranch(),"RandomCone_random");
- taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"KT",0.4,0,1, kDeltaAODJetName.Data(),2.0,fTrackEtaWindow,0); // this one is for the background and random jets, random cones with no skip
+ taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"KT",0.4,0,1, kDeltaAODJetName.Data(),1.0,fTrackEtaWindow,0); // this one is for the background and random jets, random cones with no skip
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
taskCl->SetNRandomCones(1);
taskCl->SetBackgroundCalc(kTRUE);
kJetListSpectrum.Add(new TObjString(Form("%sRandomConeSkip%02d",taskCl->GetJetOutputBranch(),0)));
kJetListSpectrum.Add(new TObjString(Form("%sRandomCone_random",taskCl->GetJetOutputBranch())));
+ taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"KT",0.4,0,1, kDeltaAODJetName.Data(),2.0,fTrackEtaWindow,0); // this one is for the background and random jets, random cones with no skip
+ taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
+ taskCl->SetNRandomCones(1);
+ taskCl->SetBackgroundCalc(kTRUE);
+ taskCl->SetCentralityCut(fCenLo,fCenUp);
+ taskCl->SetGhostEtamax(fTrackEtaWindow);
+ if(iAODanalysis==2)taskCl->SetAODTrackInput(kTRUE);
+ kDefaultJetBackgroundBranchCut2 = Form("%s_%s",AliAODJetEventBackground::StdBranchName(),taskCl->GetJetOutputBranch());
+ kJetSubtractBranchesCut2 += Form("%s%s ",taskCl->GetJetOutputBranch(),"RandomConeSkip00");
+ kJetSubtractBranchesCut2 += Form("%s%s ",taskCl->GetJetOutputBranch(),"RandomCone_random");
+ kJetListSpectrum.Add(new TObjString(taskCl->GetJetOutputBranch()));
+ kJetListSpectrum.Add(new TObjString(Form("%sRandomConeSkip%02d",taskCl->GetJetOutputBranch(),0)));
+ kJetListSpectrum.Add(new TObjString(Form("%sRandomCone_random",taskCl->GetJetOutputBranch())));
+
+
if (iPWG4FastEmbedding) {
AliAnalysisTaskJetCluster *taskClEmb = 0;
taskClEmb = AddTaskJetCluster("AODextra","",kHighPtFilterMask,iPhysicsSelectionFlag,"KT",0.4,0,1, kDeltaAODJetName.Data(),0.15,fTrackEtaWindow); // this one is for the background and random jets
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
taskCl->SetCentralityCut(fCenLo,fCenUp);
if(kIsPbPb)taskCl->SetBackgroundBranch(kDefaultJetBackgroundBranch.Data());
+
+
+ if(iFilterAnalysis==2){
+ taskCl->SetJetTriggerPtCut(kJetTriggerPtCut);
+ }
+
+
// taskCl->SetDebugLevel(3);
taskCl->SetNRandomCones(1);
kJetListSpectrum.Add(new TObjString(Form("%sRandomConeSkip%02d",taskCl->GetJetOutputBranch(),2)));
kJetListSpectrum.Add(new TObjString(Form("%sRandomCone_random",taskCl->GetJetOutputBranch())));
- taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),2.0);
+ taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),1.0);
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
taskCl->SetCentralityCut(fCenLo,fCenUp);
if(iAODanalysis==2)taskCl->SetAODTrackInput(kTRUE);
kJetSubtractBranchesCut1 += Form("%s ",taskCl->GetJetOutputBranch());
kJetListSpectrum.Add(new TObjString(taskCl->GetJetOutputBranch()));
- if(iFilterAnalysis==2){
- if(kIsPbPb)taskCl->SetJetTriggerPtCut(50.);
- else taskCl->SetJetTriggerPtCut(20.);
- }
- // tmp track qa...
- taskCl = AddTaskJetCluster("AOD","",1<<4|1<<8,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),2.0);
+ taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),2.0);
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
taskCl->SetCentralityCut(fCenLo,fCenUp);
- taskCl->SetFilterMask(1<<4|1<<8,1);
+ if(iAODanalysis==2)taskCl->SetAODTrackInput(kTRUE);
+ if(kIsPbPb)taskCl->SetBackgroundBranch(kDefaultJetBackgroundBranchCut2.Data());
+ kJetSubtractBranchesCut2 += Form("%s ",taskCl->GetJetOutputBranch());
+ kJetListSpectrum.Add(new TObjString(taskCl->GetJetOutputBranch()));
- taskCl = AddTaskJetCluster("AOD","",1<<9|1<<8,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),2.0);
+ // tmp track qa...
+ /*
+ taskCl = AddTaskJetCluster("AOD","",1<<8,iPhysicsSelectionFlag,"ANTIKT",0.4,2,1,kDeltaAODJetName.Data(),2.0);
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
taskCl->SetCentralityCut(fCenLo,fCenUp);
- taskCl->SetFilterMask(1<<9|1<<8,2);
-
-
-
+ taskCl->SetFilterMask(1<<4|1<<8,1);
+ */
taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelectionFlag,"ANTIKT",0.2,0,1,kDeltaAODJetName.Data(),0.15);
taskCl->SetCentralityCut(fCenLo,fCenUp);
taskCl->SetEventSelection(kTRUE); // saves some computing time, not all vertices are processed
//
// cut1
Int_t iB = 2;
- taskSubtract = AddTaskJetBackgroundSubtract(kJetSubtractBranchesCut1,iB,kJetSubtractMask1.Data(),kJetSubtractMask2.Data(),"Cut2000");
+ taskSubtract = AddTaskJetBackgroundSubtract(kJetSubtractBranchesCut1,iB,kJetSubtractMask1.Data(),kJetSubtractMask2.Data(),"Cut1000");
taskSubtract->SetBackgroundBranch(kDefaultJetBackgroundBranchCut1.Data());
taskSubtract->SelectCollisionCandidates(iPhysicsSelectionFlag);
if(kDeltaAODJetName.Length()>0)taskSubtract->SetNonStdOutputFile(kDeltaAODJetName.Data());
kJetListSpectrum.Add(new TObjString(cTmp.Data()));
}
+ taskSubtract = AddTaskJetBackgroundSubtract(kJetSubtractBranchesCut2,iB,kJetSubtractMask1.Data(),kJetSubtractMask2.Data(),"Cut2000");
+ taskSubtract->SetBackgroundBranch(kDefaultJetBackgroundBranchCut2.Data());
+ taskSubtract->SelectCollisionCandidates(iPhysicsSelectionFlag);
+ if(kDeltaAODJetName.Length()>0)taskSubtract->SetNonStdOutputFile(kDeltaAODJetName.Data());
+
+ objArr = kJetSubtractBranchesCut2.Tokenize(" ");
+ for(int iJB = 0;iJB<objArr->GetEntries();iJB++){
+ TObjString *ostr = (TObjString*)objArr->At(iJB);
+ cTmp = ostr->GetString().Data();
+ cTmp.ReplaceAll(kJetSubtractMask1.Data(),Form(kJetSubtractMask2.Data(),iB));
+ kJetListSpectrum.Add(new TObjString(cTmp.Data()));
+ }
}
if(kJetSubtractBranches_extra.Length()){
taskjetServ->SetNonStdFile(kDeltaAODJetName.Data());
taskjetServ->SetTrackEtaWindow(fTrackEtaWindow);
taskjetServ->SetFilterMask(kHighPtFilterMask);
+ if(kIsPbPb)taskjetServ->SetCollisionType(AliAnalysisTaskJetServices::kPbPb);
+ else taskjetServ->SetCollisionType(AliAnalysisTaskJetServices::kPP);
if(kIsPbPb){
if(kDeltaAODJetName.Length()>0&&kFilterAOD)taskjetServ->SetFilterAODCollisions(kTRUE);
// else if(iAODanalysis)taskjetServ->SetFilterAODCollisions(kTRUE);
Printf("%3d: %s",iJF+1,objStr->GetString().Data());
}
+ // Printf("Type q to exit");if(getchar()=='q')return;
if(iPWG4JetSpectrum&1){
if(kIsPbPb){
for(int iJF = 0;iJF < kJetListSpectrum.GetSize();iJF++){
AliPWG4HighPtQAMC *taskQAMC = 0;
if(kUseMC){
if(iPWG4PtQAMC&1){
- taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),0);
- taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),1);
- taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),2);
- taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),3);
+ taskQAMC = AddTaskPWG4HighPtQAMCAll(kGridDataSet.Data());
}
}
if (!taskQAMC) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskQAMC cannot run for this train conditions - EXCLUDED");
if(iPWG4PtTrackQA){
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskPWG4HighPtTrackQA.C");
-
- AddTaskPWG4HighPtTrackQAAll(kGridDataSet.Data(),kIsPbPb,iAODanalysis);
-
+ if(iPWG4PtTrackQA&2)AddTaskPWG4HighPtTrackQAAll(kGridDataSet.Data(),kIsPbPb,iAODanalysis);
+ else AddTaskPWG4HighPtTrackQAAllReduced(kGridDataSet.Data(),kIsPbPb,iAODanalysis);
}
if(iPWG4PtQATPC){
if(iPWG4PtSpectra){
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskPWG4HighPtSpectra.C");
- AddTaskPWG4HighPtSpectraAll(kGridDataSet.Data(),kIsPbPb);
+ AddTaskPWG4HighPtSpectraAll(kGridDataSet.Data(),kIsPbPb,iAODanalysis);
}
-
+
if(iPWG4KMeans){
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskKMeans.C");
AliAnalysisTaskKMeans *taskKMeans = AddTaskKMeans();
if( iPWG4Cosmics)::Info("AnalysisTrainPWG4Jets.C::CheckModuleFlags", "PWG4 Comics disabled in analysis on AOD's");
iPWG4Cosmics = 0;
- if( iPWG4PtSpectra)::Info("AnalysisTrainPWG4Jets.C::CheckModuleFlags", "PWG4 PtQAMC disabled in analysis on AOD's");
- iPWG4PtSpectra = 0;
if(iPWG4KMeans)::Info("AnalysisTrainPWG4Jets.C::CheckModuleFlags", "PWG4KMeans disabled on AOD's");
iPWG4KMeans = 0;
if (iPWG4JetCorr)::Info("AnalysisTrainPWG4Jets.C::CheckModuleFlags", "PWG4Jetcorr disabled on AOD's");