]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
enabling the filling of correlations between reconstructed and reconstructed minus...
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 31 Oct 2010 21:19:55 +0000 (21:19 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 31 Oct 2010 21:19:55 +0000 (21:19 +0000)
PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx
PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.h
PWG4/macros/AddTaskJetSpectrum2.C
PWG4/macros/AnalysisTrainPWG4Jets.C

index 05d012cf5f34af89760128d70a04f4a48a9ce1db..bbe272f62f7ce6cdb7e87d8499db249ee7e798f1 100644 (file)
@@ -80,6 +80,7 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(): AliAnalysisTaskSE(),
                                                            fUseExternalWeightOnly(kFALSE),
                                                            fLimitGenJetEta(kFALSE),
                                                             fBkgSubtraction(kFALSE),
+                                                            fFillCorrBkg(0),
                                                            fFilterMask(0),
   fEventSelectionMask(0),
                                                            fAnalysisType(0),
@@ -142,12 +143,12 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(): AliAnalysisTaskSE(),
   fh1Ptjetsubhardest1(0x0),
   fh1Ptjetsubhardest2(0x0),
   fh1Ptjetsubhardest3(0x0),
-  fh1Rhovspthardest1(0x0), 
-  fh1Rhovspthardest2(0x0),
-  fh1Rhovspthardest3(0x0),
-  fh1Errorvspthardest1(0x0), 
-  fh1Errorvspthardest2(0x0),
-  fh1Errorvspthardest3(0x0),
+  fh2Rhovspthardest1(0x0), 
+  fh2Rhovspthardest2(0x0),
+  fh2Rhovspthardest3(0x0),
+  fh2Errorvspthardest1(0x0), 
+  fh2Errorvspthardest2(0x0),
+  fh2Errorvspthardest3(0x0),
   fHistList(0x0)  
 {
   for(int i = 0;i < kMaxStep*2;++i){
@@ -188,6 +189,7 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(const char* name):
   fUseExternalWeightOnly(kFALSE),
   fLimitGenJetEta(kFALSE),
   fBkgSubtraction(kFALSE),
+  fFillCorrBkg(0),
   fFilterMask(0),
   fEventSelectionMask(0),
   fAnalysisType(0),
@@ -250,12 +252,12 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(const char* name):
   fh1Ptjetsubhardest1(0x0),
   fh1Ptjetsubhardest2(0x0),
   fh1Ptjetsubhardest3(0x0),
-  fh1Rhovspthardest1(0x0),
-  fh1Rhovspthardest2(0x0),
-  fh1Rhovspthardest3(0x0),
-  fh1Errorvspthardest1(0x0),
-  fh1Errorvspthardest2(0x0),
-  fh1Errorvspthardest3(0x0),
+  fh2Rhovspthardest1(0x0),
+  fh2Rhovspthardest2(0x0),
+  fh2Rhovspthardest3(0x0),
+  fh2Errorvspthardest1(0x0),
+  fh2Errorvspthardest2(0x0),
+  fh2Errorvspthardest3(0x0),
   fHistList(0x0)
 {
 
@@ -492,12 +494,12 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects()
     fh1Ptjetsubhardest1 = new TH1F("fh1Pthardestsub1","Subtracted hardest jet spectrum 1",100,0.,200.);
     fh1Ptjetsubhardest2 = new TH1F("fh1Pthardestsub2","Subtracted hardest jet spectrum 2",100,0.,200.);
     fh1Ptjetsubhardest3 = new TH1F("fh1Pthardestsub3","Subtracted hardest jet spectrum 3",100,0.,200.);
-    fh1Rhovspthardest1 = new TH2F("fh1Rhovspthardest1","Background vs pTjet 1",100,0.,200.,50,0.,5.);
-    fh1Rhovspthardest2 = new TH2F("fh1Rhovspthardest2","Background vs pTjet 2",100,0.,200.,50,0.,5.);
-    fh1Rhovspthardest3 = new TH2F("fh1Rhovspthardest3","Background vs pTjet 3",100,0.,200.,50,0.,5.);
-    fh1Errorvspthardest1 = new TH2F("fhErorvspthardest1","Relative error 1",100,0.,200.,50,0.,5.);
-    fh1Errorvspthardest2 = new TH2F("fh1Errorvspthardest2","Relative error 2",100,0.,200.,50,0.,5.);
-    fh1Errorvspthardest3 = new TH2F("fh1Errorvspthardest3","Relative error 3",100,0.,200.,50,0.,5.);
+    fh2Rhovspthardest1 = new TH2F("fh2Rhovspthardest1","Background vs pTjet 1",100,0.,200.,50,0.,5.);
+    fh2Rhovspthardest2 = new TH2F("fh2Rhovspthardest2","Background vs pTjet 2",100,0.,200.,50,0.,5.);
+    fh2Rhovspthardest3 = new TH2F("fh2Rhovspthardest3","Background vs pTjet 3",100,0.,200.,50,0.,5.);
+    fh2Errorvspthardest1 = new TH2F("fh2Errorvspthardest1","Relative error 1",100,0.,200.,50,0.,5.);
+    fh2Errorvspthardest2 = new TH2F("fh2Errorvspthardest2","Relative error 2",100,0.,200.,50,0.,5.);
+    fh2Errorvspthardest3 = new TH2F("fh2Errorvspthardest3","Relative error 3",100,0.,200.,50,0.,5.);
   }
   
 
@@ -579,12 +581,12 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects()
       fHistList->Add(fh1Ptjetsubhardest1);
       fHistList->Add(fh1Ptjetsubhardest2);
       fHistList->Add(fh1Ptjetsubhardest3);
-      fHistList->Add(fh1Rhovspthardest1);
-      fHistList->Add(fh1Rhovspthardest2);
-      fHistList->Add(fh1Rhovspthardest3);
-      fHistList->Add(fh1Errorvspthardest1);
-      fHistList->Add(fh1Errorvspthardest2);
-     fHistList->Add(fh1Errorvspthardest3);
+      fHistList->Add(fh2Rhovspthardest1);
+      fHistList->Add(fh2Rhovspthardest2);
+      fHistList->Add(fh2Rhovspthardest3);
+      fHistList->Add(fh2Errorvspthardest1);
+      fHistList->Add(fh2Errorvspthardest2);
+     fHistList->Add(fh2Errorvspthardest3);
     }
   }
 
@@ -673,6 +675,19 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
     return;
   }
 
+  Int_t nJets = aodRecJets->GetEntriesFast();
+
+  // ==== General variables needed
+  // We use statice array, not to fragment the memory
+  AliAODJet genJets[kMaxJets];
+  Int_t nGenJets = 0;
+  AliAODJet recJets[kMaxJets];
+  Int_t nRecJets = 0;
+  ///////////////////////////
+
+
+
+
   if(fBkgSubtraction){
      AliAODJetEventBackground* evBkg=(AliAODJetEventBackground*)fAOD->FindListObject(fBranchBkg.Data()); 
 
@@ -685,7 +700,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
 
      ///just to start: some very simple plots containing rho, sigma and area of the background. 
      
-     Int_t nJets = aodRecJets->GetEntriesFast();
+     
      Float_t pthardest=0.;
      if(nJets!=0){
   
@@ -715,6 +730,9 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
         Float_t ptsub1=jet->Pt()-bkg1*jet->EffectiveAreaCharged();
         Float_t ptsub2=jet->Pt()-bkg2*jet->EffectiveAreaCharged();
          Float_t ptsub3=jet->Pt()-bkg3*jet->EffectiveAreaCharged();
+         if(ptsub2<0.) ptsub2=0.;
+         if(ptsub1<0.) ptsub1=0.;
+         if(ptsub3<0.) ptsub3=0.;
         Float_t err1=sigma1*sqrt(area1);
         Float_t err2=sigma2*sqrt(area2);
          Float_t err3=sigma3*sqrt(area3);       
@@ -727,32 +745,33 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
           fh1Ptjetsubhardest1->Fill(ptsub1);
           fh1Ptjetsubhardest2->Fill(ptsub2);
            fh1Ptjetsubhardest3->Fill(ptsub3);
-          fh1Errorvspthardest1->Fill(ptsub1,err1/ptsub1);
-          fh1Errorvspthardest2->Fill(ptsub2,err2/ptsub2);
-           fh1Errorvspthardest3->Fill(ptsub3,err3/ptsub3);
+          fh2Errorvspthardest1->Fill(ptsub1,err1/ptsub1);
+          fh2Errorvspthardest2->Fill(ptsub2,err2/ptsub2);
+           fh2Errorvspthardest3->Fill(ptsub3,err3/ptsub3);
         }
-       }
-       fh1Rhovspthardest1->Fill(pthardest,bkg1);
-       fh1Rhovspthardest2->Fill(pthardest,bkg2);
-       fh1Rhovspthardest3->Fill(pthardest,bkg3); 
-
-
 
+              Float_t ptsub=0.;
+              if(fFillCorrBkg==1) ptsub=ptsub1;
+              if(fFillCorrBkg==2) ptsub=ptsub2;
+              if(fFillCorrBkg==3) ptsub=ptsub3;
+              Float_t subphi=jet->Phi();
+              Float_t subtheta=jet->Theta();
+              Float_t subpz = ptsub/TMath::Tan(subtheta);
+              Float_t subpx=ptsub*TMath::Cos(subphi);
+              Float_t subpy=ptsub * TMath::Sin(subphi);
+              Float_t subp  = TMath::Sqrt(ptsub*ptsub+subpz*subpz);
+             if(k<kMaxJets){
+               genJets[k].SetPxPyPzE(subpx,subpy,subpz,subp);
+               nGenJets = k+1;
+             }
+       }
+       fh2Rhovspthardest1->Fill(pthardest,bkg1);
+       fh2Rhovspthardest2->Fill(pthardest,bkg2);
+       fh2Rhovspthardest3->Fill(pthardest,bkg3); 
      }
   }// background subtraction
   
 
-  // ==== General variables needed
-  
-  
-  // We use statice array, not to fragment the memory
-  AliAODJet genJets[kMaxJets];
-  Int_t nGenJets = 0;
-  AliAODJet recJets[kMaxJets];
-  Int_t nRecJets = 0;
-  ///////////////////////////
-
-
   Double_t eventW = 1;
   Double_t ptHard = 0; 
   Double_t nTrials = 1; // Trials for MC trigger 
@@ -994,7 +1013,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
   }
   
   nRecJets = TMath::Min(nRecJets,kMaxJets);
-  
+  nJets = TMath::Min(nJets,kMaxJets);
   Int_t iCountRec = 0;
   for(int ir = 0;ir < nRecJets;++ir){
     AliAODJet *tmp = dynamic_cast<AliAODJet*>(aodRecJets->At(ir));
@@ -1016,8 +1035,11 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
     iGenIndex[i] = iRecIndex[i] = -1;
   }
 
+
   AliAnalysisHelperJetTasks::GetClosestJets(genJets,nGenJets,recJets,nRecJets,
                                            iGenIndex,iRecIndex,fDebug);
+
+
   if (fDebug > 10)Printf("%s:%d",(char*)__FILE__,__LINE__);
 
   if(fDebug){
@@ -1223,10 +1245,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
        fh2PsiPtRec[ir]->Fill(r,ptRec,rhoSum);
       }
     }
-
-
-    containerPhiZ[2] = zLeading;
-
+    
     // Fill Correlation
     Int_t ig = iGenIndex[ir];
     if(ig>=0 && ig<nGenJets){
@@ -1236,7 +1255,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
       Double_t phiGen = genJets[ig].Phi();
       if(phiGen<0)phiGen+=TMath::Pi()*2.; 
       Double_t etaGen = genJets[ig].Eta();
-
+      
       container[3] = ptGen;
       container[4] = etaGen;
       container[5] = phiGen;
@@ -1244,7 +1263,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
       // 
       // we accept only jets which are detected within a smaller window, to avoid ambigious pair association at the edges of the acceptance
       // 
-
+      
       if(TMath::Abs(etaGen)<fRecEtaWindow)fhnJetContainer[kStep4+kMaxStep]->Fill(container,eventW);
       if(TMath::Abs(etaRec)<fRecEtaWindow){
        fhnJetContainer[kStep3+kMaxStep]->Fill(container,eventW);
@@ -1254,9 +1273,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/)
          fh2RelPtFGen->Fill(ptGen,delta,eventW);
        }
        if(fhnCorrelationPhiZRec)fhnCorrelationPhiZRec->Fill(containerPhiZ);
-
-      }// if etarec in window
-
+      }// if etarec in window      
     } 
     else{
       containerPhiZ[3] = 0;
index 3a7a2b82db41f25840f31f92ce75b0706ccdbcb3..1ee8b3a35d7c697c3a32e30460f0680c3781291c 100644 (file)
@@ -52,6 +52,7 @@ class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE
     virtual void SetAODMCInput(Bool_t b){fUseAODMCInput = b;}
     virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;}
     virtual void SetBkgSubtraction(Bool_t b){fBkgSubtraction = b;}
+    virtual void SetFillCorrBkg(Int_t i){fFillCorrBkg = i;}
     virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
     virtual void SetMinJetPt(Float_t f){fMinJetPt = f;}
     virtual void SetDeltaPhiWindow(Float_t f){fDeltaPhiWindow = f;}
@@ -115,6 +116,7 @@ class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE
     Bool_t        fUseExternalWeightOnly; // use only external weight
     Bool_t        fLimitGenJetEta;        // Limit the eta of the generated jets
     Bool_t        fBkgSubtraction;        //flag for bckg subtraction
+    Int_t         fFillCorrBkg;           //flag for filling bckg response matrix
     UInt_t        fFilterMask;            // filter bit for slecected tracks
     UInt_t        fEventSelectionMask;    // Selection information used to filter events
     Int_t         fAnalysisType;          // Analysis type 
@@ -202,16 +204,16 @@ class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE
     TH1F*         fh1Ptjetsubhardest1;//! subtracted hardest jet spectrum (Bkg1)
     TH1F*         fh1Ptjetsubhardest2;//! subtracted hardest jet spectrum (Bkg2)
     TH1F*         fh1Ptjetsubhardest3;//! subtracted hardest jet spectrum (Bkg3)
-    TH2F*         fh1Rhovspthardest1;//! rho vs hardest subtracted jet pt (Bkg1)
-    TH2F*         fh1Rhovspthardest2;//! rho vs hardest subtracted jet pt (Bkg2)
-    TH2F*         fh1Rhovspthardest3;//! rho vs hardest subtracted jet pt (Bkg3)
-    TH2F*         fh1Errorvspthardest1;//! relative error vs hardest subtracted jet pt (Bkg1)
-    TH2F*         fh1Errorvspthardest2;//! relative error vs hardest subtracted jet pt (Bkg2)
-    TH2F*         fh1Errorvspthardest3;//! relative error vs hardest subtracted jet pt (Bkg3)    
+    TH2F*         fh2Rhovspthardest1;//! rho vs hardest subtracted jet pt (Bkg1)
+    TH2F*         fh2Rhovspthardest2;//! rho vs hardest subtracted jet pt (Bkg2)
+    TH2F*         fh2Rhovspthardest3;//! rho vs hardest subtracted jet pt (Bkg3)
+    TH2F*         fh2Errorvspthardest1;//! relative error vs hardest subtracted jet pt (Bkg1)
+    TH2F*         fh2Errorvspthardest2;//! relative error vs hardest subtracted jet pt (Bkg2)
+    TH2F*         fh2Errorvspthardest3;//! relative error vs hardest subtracted jet pt (Bkg3)    
     TList *fHistList; // Output list
    
 
-    ClassDef(AliAnalysisTaskJetSpectrum2, 9) // Analysis task for standard jet analysis
+    ClassDef(AliAnalysisTaskJetSpectrum2, 10) // Analysis task for standard jet analysis
 };
  
 #endif
index eebd010a6a9682bb4ccb6518aa3d9aa5c1a369f7..41c17eb8bd4d0154ebb53ee49ecf31405be9d7fb 100644 (file)
@@ -1,32 +1,57 @@
-AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* bBkg="jeteventbackground_clustersAOD_KT06",UInt_t filterMask = 32, Int_t iPhysicsSelection = 1,UInt_t iEventSelectionMask = 0,Bool_t kBackground=kTRUE);\r
+AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* bBkg="",UInt_t filterMask = 32, Int_t iPhysicsSelection = 1,UInt_t iEventSelectionMask = 0,Bool_t kBackground=kTRUE,Int_t iFillCorrBkg = 0);\r
+\r
+\r
+AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelection = 1,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,Bool_t kBackground = kTRUE){\r
 \r
 \r
-AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelection = 1,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,Bool_t kBackground = kFALSE){\r
   AliAnalysisTaskJetSpectrum2 *js = 0;\r
 \r
-  TString cBack = "";\r
-  if(kBackground)cBack = "jeteventbackground_clustersAOD_KT06";\r
+  TString cBack = ""; // \r
 \r
   if(kUseAODMC){\r
-    if(iFlag&(1<<0))js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
-    if(iFlag&(1<<1))js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
-    \r
-    if(iFlag&(1<<2))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
-    if(iFlag&(1<<3))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection,  iEventSelectionMask,kBackground);\r
-    \r
-    if(iFlag&(1<<4)){\r
+    if(iFlag&(1<<0)){ // UA104\r
+      js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+      js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<1)){ // ANTIKT 04\r
+      js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+      js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection,  iEventSelectionMask,kBackground);\r
+      // cross check MC only background subtration\r
+      js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection,  iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<2)){ // KT 04\r
       js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection,iEventSelectionMask,kBackground);\r
+      js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<3)){ // SISCONE 04\r
+      js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+      js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+    }\r
+    // here can go other radii\r
+  }\r
+  else { // only the data ... no MC\r
+    if(iFlag&(1<<0)){ // UA104\r
+      js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<1)){ // ANTIKT 04\r
+      js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<2)){ // KT 04\r
+      js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelection,iEventSelectionMask,kBackground);\r
+    }\r
+    if(iFlag&(1<<3)){ // SISCONE 04\r
+      js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
     }\r
-    if(iFlag&(1<<5))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
-    if(iFlag&(1<<6))js = AddTaskJetSpectrum2("jetsAOD_UA107","jetsAODMC_UA107",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
   }\r
+    \r
   \r
+  /*\r
   if(iFlag&(1<<7))js = AddTaskJetSpectrum2("jets","jetsAOD_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
-  \r
   if(iFlag&(1<<8))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
   if(iFlag&(1<<9))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
   if(iFlag&(1<<10))js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
   \r
+  \r
   if(iFlag&(1<<11)){\r
     js = AddTaskJetSpectrum2("jetsAOD_UA107","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
     js->SetRecEtaWindow(0.2);\r
@@ -43,12 +68,13 @@ AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Boo
     js = AddTaskJetSpectrum2("jetsAOD_SISCONE07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);\r
     js->SetRecEtaWindow(0.2);\r
   }\r
+  */\r
 \r
   return js;\r
 }\r
 \r
 \r
-AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* bBkg,UInt_t filterMask,Int_t iPhysicsSelection,UInt_t iEventSelectionMask,Bool_t kBackground)\r
+AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* bBkg,UInt_t filterMask,Int_t iPhysicsSelection,UInt_t iEventSelectionMask,Bool_t kBackground,Int_t iFillCorrBkg)\r
 {\r
 // Creates a jet fider task, configures it and adds it to the analysis manager.\r
    // Get the pointer to the existing analysis manager via the static access method.\r
@@ -71,26 +97,36 @@ AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bG
    TString typeGen(bGen);\r
    typeGen.ToUpper();\r
    typeRec.ToUpper();\r
+\r
+   TString bBkgName = bBkg;\r
+   if(kBackground&&bBkgName.Length()==0){\r
+     if(typeGen.Contains("AODMC2"))bBkgName = "jeteventbackground_clustersAODMC2_KT06";\r
+     else bBkgName = "jeteventbackground_clustersAOD_KT06";\r
+   }\r
+\r
    // Create the task and configure it.\r
    //===========================================================================\r
-   \r
-   AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s%s_%010d",bRec,bGen,iEventSelectionMask));\r
+\r
+   if(iFillCorrBkg)bGen = Form("SubBkg%d",iFillCorrBkg);   \r
+   AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d",bRec,bGen,iEventSelectionMask));\r
       \r
    // or a config file\r
    // pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMC);\r
    // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
    // pwg4spec->SetDebugLevel(11); \r
 \r
-   pwg4spec->SetBranchGen(bGen); \r
+   if(iFillCorrBkg)pwg4spec->SetBranchGen("");  \r
+   else   pwg4spec->SetBranchGen(bGen); \r
    pwg4spec->SetBranchRec(bRec); \r
-   if(strlen(bBkg)>0)pwg4spec->SetBranchBkg(bBkg);\r
+\r
+   if(bBkgName.Length()>0)pwg4spec->SetBranchBkg(bBkgName.Data());\r
+\r
 \r
    pwg4spec->SetFilterMask(filterMask); \r
    pwg4spec->SetUseGlobalSelection(kTRUE); \r
    pwg4spec->SetMinJetPt(5.);\r
-   if(kBackground&&strlen(bBkg)>0){\r
-     pwg4spec->SetBkgSubtraction(kTRUE);\r
-   }  \r
+   pwg4spec->SetBkgSubtraction(kBackground);\r
+\r
 \r
    if(type == "AOD"){\r
      // Assume all jet are produced already\r
index c3d3b8ec32b955f9b6bb4d659e4add02699f0270..5d2ebb345e6d0e098c7cdda018e7950fbe668abe 100644 (file)
@@ -538,55 +538,45 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local",
    if(iPWG4JetSpectrum){
      gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskJetSpectrum2.C");
      AliAnalysisTaskJetSpectrum2 *taskjetSpectrum = 0;
-     if(iPWG4JetSpectrum&1){
-       taskjetSpectrum = AddTaskJetSpectrum2("jets","","",kHighPtFilterMask,iPhysicsSelection);      
-       if(!iAODanalysis){
-        //      taskjetSpectrum = AddTaskJetSpectrum2("jets","tracks32",32,iPhysicsSelection);       // tmp hack to give it a different name
-        //      taskjetSpectrum = AddTaskJetSpectrum2("jets","64",64,iPhysicsSelection);      
-
-        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","clustersAOD_ANTIKT04","",kHighPtFilterMask,iPhysicsSelection); 
-
-        if(kIsMC){
-
-          UInt_t eventSelection =  AliAnalysisHelperJetTasks::kIsPileUp|AliAnalysisHelperJetTasks::kVertexIn;
-          if(iPhysicsSelection)eventSelection |=  AliAnalysisHelperJetTasks::kPhysicsSelection;
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);  
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
-
-          eventSelection =  AliAnalysisHelperJetTasks::kIsCosmic|AliAnalysisHelperJetTasks::kVertexIn;
-          if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
 
-          eventSelection =  AliAnalysisHelperJetTasks::kNone;
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
-
-        }
-        else{
-          UInt_t eventSelection =  AliAnalysisHelperJetTasks::kIsPileUp|AliAnalysisHelperJetTasks::kVertexIn;
-          if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
-
-          eventSelection =  AliAnalysisHelperJetTasks::kIsCosmic|AliAnalysisHelperJetTasks::kVertexIn;
-          if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
-          taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","","",kHighPtFilterMask,iPhysicsSelection,eventSelection); 
-        }
-       }
-       if (!taskjetSpectrum) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskJetSpectrum2 cannot run for this train conditions - EXCLUDED");
-       //       taskjetSpectrum->SetDebugLevel(1);
+     if(iPWG4JetSpectrum&1){
+       UInt_t iSelection = 0xffff;
+       taskJetSpectrum = AddTaskJetSpectrum2Delta(kUseAODMC,kHighPtFilterMask,iPhysicsSelection,iSelection);  
      }
-
      if(iPWG4JetSpectrum&2){
-       UInt_t selection = 0;
-       if(!iAODanalysis){
-        selection = 0xffffff;
-        // switch off 07 radii
-        selection &= ~(1<<6)&~(1<<11)&~(1<<12)&~(1<<13)&~(1<<14);
+       if(kIsMC){
+        UInt_t eventSelection =  AliAnalysisHelperJetTasks::kIsPileUp|AliAnalysisHelperJetTasks::kVertexIn;
+        if(iPhysicsSelection)eventSelection |=  AliAnalysisHelperJetTasks::kPhysicsSelection;
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);  
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
+        
+        eventSelection =  AliAnalysisHelperJetTasks::kIsCosmic|AliAnalysisHelperJetTasks::kVertexIn;
+        if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
+        
+        eventSelection =  AliAnalysisHelperJetTasks::kNone;
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04","",kHighPtFilterMask,iPhysicsSelection,eventSelection);
+        
        }
-       else selection = 1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<7|1<<8|1<<9;
-       AddTaskJetSpectrum2Delta(kHighPtFilterMask,kUseAODMC,iPhysicsSelection,selection,0,kTRUE);
+       else{
+        UInt_t eventSelection =  AliAnalysisHelperJetTasks::kIsPileUp|AliAnalysisHelperJetTasks::kVertexIn;
+        if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","","",kHighPtFilterMask,iPhysicsSelection,eventSelection);       
+        eventSelection =  AliAnalysisHelperJetTasks::kIsCosmic|AliAnalysisHelperJetTasks::kVertexIn;
+        if(iPhysicsSelection)eventSelection |= AliAnalysisHelperJetTasks::kPhysicsSelection;
+        taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","","",kHighPtFilterMask,iPhysicsSelection,eventSelection); 
+       }
+     }
+     if(iPWG4JetSpectrum&3){
+       // jet backgrounds... just for testing...
+       taskjetSpectrum = AddTaskJetSpectrum2("jetsAOD_FASTJET04","","",kHighPtFilterMask,iPhysicsSelection,0,kTRUE,1); 
      }
+     if (!taskjetSpectrum) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskJetSpectrum2 cannot run for this train conditions - EXCLUDED");
+     //       taskjetSpectrum->SetDebugLevel(1);
    }
+
+
    if(iPWG4JCORRAN){
      gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskJCORRANTask.C");
      AliJCORRANTask* corran = AddTaskJCORRAN(kDeltaAODJCORRANName.Data(),0);