]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/AnalysisTrainPWG4Jets.C
Adding TPRofiles for mean and sigma(pT), clean up of EP from tracks, added EP from...
[u/mrichter/AliRoot.git] / PWG4 / macros / AnalysisTrainPWG4Jets.C
index a81476f00c63b364a7d025ad62d7d08ef57d2f60..d10ee2a9dae5cd64036edaea9196fca01b9b89a9 100644 (file)
@@ -33,6 +33,7 @@ Bool_t      kUsePAR             = kFALSE;  // use par files for extra libs
 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
 
@@ -90,9 +91,11 @@ Int_t       kJetMapOffset[3] = {10000,100,1};
 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 
@@ -419,7 +422,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
 
    if(iPhysicsSelection && !iAODanalysis){
      gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
-     Int_t iTriggerC = 0;
+     Int_t iTriggerHIC = 0;
      Bool_t rejectBkg = true;
      if(kIsPbPb){
        iTriggerHIC = 2;
@@ -433,21 +436,25 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
    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();
@@ -600,7 +607,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
         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);
@@ -614,6 +621,21 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
         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
@@ -675,8 +697,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
 
 
        if(iFilterAnalysis==2){
-        if(kIsPbPb)taskCl->SetJetTriggerPtCut(40);
-        else taskCl->SetJetTriggerPtCut(20.);
+        taskCl->SetJetTriggerPtCut(kJetTriggerPtCut);
        }
 
 
@@ -692,7 +713,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
        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);
@@ -700,12 +721,23 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
        kJetSubtractBranchesCut1 += Form("%s ",taskCl->GetJetOutputBranch());
        kJetListSpectrum.Add(new TObjString(taskCl->GetJetOutputBranch()));
 
+
+       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);
+       if(iAODanalysis==2)taskCl->SetAODTrackInput(kTRUE);
+       if(kIsPbPb)taskCl->SetBackgroundBranch(kDefaultJetBackgroundBranchCut2.Data());
+       kJetSubtractBranchesCut2 += Form("%s ",taskCl->GetJetOutputBranch());
+       kJetListSpectrum.Add(new TObjString(taskCl->GetJetOutputBranch()));
+
+
        // 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<<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
@@ -807,7 +839,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
        //
        // 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());
@@ -820,6 +852,18 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
         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()){
@@ -1195,7 +1239,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
      AliPWG4HighPtQAMC *taskQAMC = 0;
      if(kUseMC){
        if(iPWG4PtQAMC&1){
-        taskQAMC = AddTaskPWG4HighPtQAMCAll(kGridDataSet.Data(),isPbPb,iAODanalysis);
+        taskQAMC = AddTaskPWG4HighPtQAMCAll(kGridDataSet.Data());
        }
      }
      if (!taskQAMC) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskQAMC cannot run for this train conditions - EXCLUDED");