From Filip Krizek
authorMarco van Leeuwen <mvl@sap-alice1.phys.uu.nl>
Thu, 5 Dec 2013 08:58:09 +0000 (09:58 +0100)
committerMarco van Leeuwen <mvl@sap-alice1.phys.uu.nl>
Thu, 5 Dec 2013 08:58:09 +0000 (09:58 +0100)
PWGJE/AliAnalysisTaskJetCorePP.cxx
PWGJE/AliAnalysisTaskJetCorePP.h
PWGJE/macros/AddTaskJetCorePP.C

index ae84c0f..1943ac9 100644 (file)
@@ -148,6 +148,10 @@ fhPtTrkTruePrimRec(0x0),
 fhPtTrkTruePrimGen(0x0),
 fhPtTrkSecOrFakeRec(0x0),
 fHRhoUeMedianVsConeGen(0x0),
+fhEntriesToMedian(0x0),
+fhEntriesToMedianGen(0x0),
+fhCellAreaToMedian(0x0),
+fhCellAreaToMedianGen(0x0),
 fIsChargedMC(0),
 fIsFullMC(0),
 faGenIndex(0),
@@ -169,6 +173,7 @@ fTriggerPtRangeHigh(10000.0),
 fFillRespMx(0),
 fRandom(0x0),
 fnTrials(1000),
+fJetFreeAreaFrac(0.5),
 fnPhi(9),
 fnEta(2),
 fEtaSize(0.7),
@@ -259,6 +264,10 @@ fhPtTrkTruePrimRec(0x0),
 fhPtTrkTruePrimGen(0x0),
 fhPtTrkSecOrFakeRec(0x0),
 fHRhoUeMedianVsConeGen(0x0),
+fhEntriesToMedian(0x0),
+fhEntriesToMedianGen(0x0),
+fhCellAreaToMedian(0x0),
+fhCellAreaToMedianGen(0x0),
 fIsChargedMC(0),
 fIsFullMC(0),
 faGenIndex(0),
@@ -280,6 +289,7 @@ fTriggerPtRangeHigh(10000.0),
 fFillRespMx(0),
 fRandom(0x0),
 fnTrials(1000),
+fJetFreeAreaFrac(0.5),
 fnPhi(9),
 fnEta(2),
 fEtaSize(0.7),
@@ -371,6 +381,10 @@ fhPtTrkTruePrimRec(a.fhPtTrkTruePrimRec),
 fhPtTrkTruePrimGen(a.fhPtTrkTruePrimGen),
 fhPtTrkSecOrFakeRec(a.fhPtTrkSecOrFakeRec),
 fHRhoUeMedianVsConeGen(a.fHRhoUeMedianVsConeGen),
+fhEntriesToMedian(a.fhEntriesToMedian),
+fhEntriesToMedianGen(a.fhEntriesToMedianGen),
+fhCellAreaToMedian(a.fhCellAreaToMedian),
+fhCellAreaToMedianGen(a.fhCellAreaToMedianGen),
 fIsChargedMC(a.fIsChargedMC),
 fIsFullMC(a.fIsFullMC),
 faGenIndex(a.faGenIndex),
@@ -392,6 +406,7 @@ fTriggerPtRangeHigh(a.fTriggerPtRangeHigh),
 fFillRespMx(a.fFillRespMx),
 fRandom(a.fRandom),
 fnTrials(a.fnTrials),
+fJetFreeAreaFrac(a.fJetFreeAreaFrac),
 fnPhi(a.fnPhi),
 fnEta(a.fnEta),
 fEtaSize(a.fEtaSize),
@@ -616,6 +631,8 @@ void AliAnalysisTaskJetCorePP::UserCreateOutputObjects()
    fhDphiTriggerJetAccept = new TH1D("fhDphiTriggerJetAccept","Deltaphi trig-jet after cut",50, -TMath::Pi(),TMath::Pi()); 
    fhCentrality = new TH1D("fhCentrality","Centrality",20,0,100);
    fhCentralityAccept = new TH1D("fhCentralityAccept","Centrality after cut",20,0,100);
+   fhEntriesToMedian = new TH1D("fhEntriesToMedian","fhEntriesToMedian",30,0,30);
+   fhCellAreaToMedian =  new TH1D("fhCellAreaToMedian", "fhCellAreaToMedian", 75,0,1.5),
 
    fOutputList->Add(fhJetPhi);
    fOutputList->Add(fhTriggerPhi);
@@ -629,7 +646,8 @@ void AliAnalysisTaskJetCorePP::UserCreateOutputObjects()
    fOutputList->Add(fhDphiTriggerJetAccept);
    fOutputList->Add(fhCentrality); 
    fOutputList->Add(fhCentralityAccept);
-
+   fOutputList->Add(fhEntriesToMedian);
+   fOutputList->Add(fhCellAreaToMedian);
    // raw spectra of INCLUSIVE jets  
    //Centrality, pTjet, A
    /*const Int_t dimRaw   = 3;
@@ -735,6 +753,14 @@ void AliAnalysisTaskJetCorePP::UserCreateOutputObjects()
       fHRhoUeMedianVsConeGen = (THnSparseF*) fHRhoUeMedianVsCone->Clone("hRhoUeMedianVsConeGen");
       fHRhoUeMedianVsConeGen->SetTitle(Form("%s Gen MC", fHRhoUeMedianVsCone->GetTitle())); 
       fOutputList->Add(fHRhoUeMedianVsConeGen);
+
+      fhEntriesToMedianGen = (TH1D*) fhEntriesToMedian->Clone("fhEntriesToMedianGen");
+      fhEntriesToMedianGen->SetTitle(Form("%s Gen MC", fhEntriesToMedian->GetTitle())); 
+      fOutputList->Add(fhEntriesToMedianGen);
+
+      fhCellAreaToMedianGen  = (TH1D*) fhCellAreaToMedian->Clone("fhCellAreaToMedianGen");
+      fhCellAreaToMedianGen->SetTitle(Form("%s Gen MC", fhCellAreaToMedian->GetTitle())); 
+      fOutputList->Add(fhCellAreaToMedianGen);
    }
    //-------------------------------------
    //     pythia histograms
@@ -946,7 +972,7 @@ void AliAnalysisTaskJetCorePP::UserExec(Option_t *)
    EstimateBgCone(fListJets, &particleList, rhoCone);
 
    //Estimate rho from cell median minus jets
-   EstimateBgRhoMedian(fListJetsBg, &particleList, rhoFromCellMedian);
+   EstimateBgRhoMedian(fListJetsBg, &particleList, rhoFromCellMedian,0); //real data
    //fListJetsBg->Clear(); //this list is further not needed
 
    //==============  analyze generator level MC  ================ 
@@ -1038,7 +1064,7 @@ void AliAnalysisTaskJetCorePP::UserExec(Option_t *)
       EstimateBgCone(fListJetsGen, &particleListGen, rhoConeGen);
 
       //Estimate rho from cell median minus jets
-      EstimateBgRhoMedian(fListJetsBgGen, &particleListGen, rhoFromCellMedianGen);
+      EstimateBgRhoMedian(fListJetsBgGen, &particleListGen, rhoFromCellMedianGen,1);//mc data
       //fListJetsBgGen->Clear();
 
       //============  Generator trigger+jet ==================
@@ -1484,8 +1510,8 @@ Int_t  AliAnalysisTaskJetCorePP::GetListOfTracks(TList *list){
    for(Int_t it = 0; it < aodevt->GetNumberOfTracks(); it++){
       AliAODTrack *tr = aodevt->GetTrack(it);
       
-      //if((fFilterMask > 0) && !(tr->TestFilterBit(fFilterMask))) continue;
-      if((fFilterMask > 0) && !(tr->IsHybridGlobalConstrainedGlobal())) continue;
+      if((fFilterMask > 0) && !(tr->TestFilterBit(fFilterMask))) continue;
+      //if((fFilterMask > 0) && !(tr->IsHybridGlobalConstrainedGlobal())) continue;
       if(TMath::Abs((Float_t) tr->Eta()) > fTrackEtaCut) continue;
       if(tr->Pt() < fTrackLowPtCut) continue;
       list->Add(tr);
@@ -1614,7 +1640,7 @@ void AliAnalysisTaskJetCorePP::FillEffHistos(TList *recList, TList *genList){
    return;
 }
 //________________________________________________________________
-void AliAnalysisTaskJetCorePP::EstimateBgRhoMedian(TList *listJet, TList* listPart,  Double_t &rhoMedian){
+void AliAnalysisTaskJetCorePP::EstimateBgRhoMedian(TList *listJet, TList* listPart,  Double_t &rhoMedian, Int_t mode){
    //Estimate background rho by means of integrating track pT outside identified jet cones
 
    rhoMedian = 0;
@@ -1723,19 +1749,36 @@ void AliAnalysisTaskJetCorePP::EstimateBgRhoMedian(TList *listJet, TList* listPa
    static Double_t rhoInCells[20];
    Double_t  relativeArea;
    Int_t  nCells=0;
-
+   Double_t bufferArea=0.0, bufferPt=0.0; //sum cells where A< fJetFreeAreaFrac
    for(Int_t ip=0; ip<fnPhi; ip++){
       for(Int_t ie=0; ie<fnEta; ie++){
          relativeArea = nOutCone[ip][ie]/fnTrials;
-         
-         if(relativeArea < 0.5) continue; 
-         rhoInCells[nCells] =  sumPtOutOfCone[ip][ie]/(relativeArea*fCellArea);
-         nCells++;
+         //cout<<"RA=  "<< relativeArea<<"  BA="<<bufferArea<<"    BPT="<< bufferPt <<endl;
+
+         bufferArea += relativeArea;
+         bufferPt   += sumPtOutOfCone[ip][ie];
+         if(bufferArea > fJetFreeAreaFrac){ 
+            rhoInCells[nCells] = bufferPt/(bufferArea*fCellArea);
+
+            if(mode==1) fhCellAreaToMedianGen->Fill(bufferArea*fCellArea);  
+            else fhCellAreaToMedian->Fill(bufferArea*fCellArea);
+
+            bufferArea = 0.0; 
+            bufferPt   = 0.0;
+            nCells++;
+         }
       }
    }
 
-   if(nCells>0)
-     rhoMedian = TMath::Median(nCells, rhoInCells); 
+
+   if(nCells>0){
+     rhoMedian = TMath::Median(nCells, rhoInCells);
+     if(mode==1){ //mc data 
+        fhEntriesToMedianGen->Fill(nCells);
+     }else{ //real data
+        fhEntriesToMedian->Fill(nCells);
+     } 
+   } 
 
 }
 
index 72241fa..1dd8214 100644 (file)
@@ -54,6 +54,8 @@ public:
    virtual void  SetJetR(Float_t jR) { fJetParamR = jR; }
    virtual void  SetBgJetR(Float_t bgjR) { fBgJetParamR = bgjR; }
    virtual void  SetBgMaxJetPt(Float_t mpt){ fBgMaxJetPt = mpt;}
+   virtual void  SetRndTrials(Int_t nt){ fnTrials = nt;}
+   virtual void  SetFreeAreaFrac(Float_t frac){ fJetFreeAreaFrac = frac;}
    virtual void  SetBgConeR(Float_t cr){ fBgConeR = cr; } 
    virtual void  SetOfflineTrgMask(AliVEvent::EOfflineTriggerTypes mask) { fOfflineTrgMask = mask; } 
    virtual void  SetMinContribVtx(Int_t n) { fMinContribVtx = n; } 
@@ -83,7 +85,7 @@ private:
    Bool_t SelectMCGenTracks(AliVParticle *trk, TList *trkList, Double_t &ptLeading, Int_t &index, Int_t counter);
    void FillEffHistos(TList *recList, TList *genList);
    
-   void EstimateBgRhoMedian(TList *listJet, TList* listPart, Double_t &rhoMedian);//median method to estimate bg
+   void EstimateBgRhoMedian(TList *listJet, TList* listPart, Double_t &rhoMedian, Int_t mode);//median method to estimate bg
    void EstimateBgCone(TList *listJet, TList* listPart, Double_t &rhoPerpCone);//perp cone method to estimate bg
    void ReadTClonesArray(TString bname, TList *list); //init jets lists
    //private member objects
@@ -176,7 +178,13 @@ private:
    TH2D      *fhPtTrkTruePrimGen; // pt spectrum of true generated primary track    
    TH2D      *fhPtTrkSecOrFakeRec; // pt spectrum of reconstructed fake or secondary tracks    
    THnSparse *fHRhoUeMedianVsConeGen; //EBE UE from Median vs Perp Cone  generator level 
-   
+  
+   TH1D  *fhEntriesToMedian; //how many entries were used to calculate
+   TH1D  *fhEntriesToMedianGen; //how many entries were used to calculate in MC
+   TH1D  *fhCellAreaToMedian; //how many entries were used to calculate
+   TH1D  *fhCellAreaToMedianGen; //how many entries were used to calculate in MC
+
    Bool_t fIsChargedMC;   //flag analysis on MC data with true and on the real data false
    Bool_t fIsFullMC;   //flag analysis on MC data with true and on the real data false
    TArrayI faGenIndex;   // labels of particles on MC generator level  
@@ -203,7 +211,8 @@ private:
 
 
    TRandom3* fRandom;           // TRandom3 
-   const Int_t fnTrials;  //number of random trials to measure cell area
+   Int_t fnTrials;  //number of random trials to measure cell area
+   Float_t fJetFreeAreaFrac; //fraction of area in cell free of jets  
    const Int_t  fnPhi; //number of cells in phi
    const Int_t  fnEta; //number of cells in eta
    const Double_t fEtaSize; //cell size in eta 
@@ -211,7 +220,7 @@ private:
    const Double_t fCellArea; //cell area
    Double_t fSafetyMargin; //enlarge a bit the jet size to avoid contamination of UE
 
-   ClassDef(AliAnalysisTaskJetCorePP, 9);  //has to end with number larger than 0
+   ClassDef(AliAnalysisTaskJetCorePP, 10);  //has to end with number larger than 0
 };
 
 #endif
index 66a6173..28d699b 100644 (file)
@@ -9,6 +9,8 @@ AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
    const Char_t* jetbgAlgo="ANTIKT",    //background jet algo
    Float_t bgjetParameterR = 0.3,  //R of jet to be removed while bg calc 
    Float_t bgMaxJetPt = 8.0, //max jet pt to be accepted to bg 
+   Int_t  rndTrials = 2000, //number of trials to get jet free cell area
+   Float_t jetFreeAreaFrac = 0.75, //cell area free of jets
    Float_t bgConeR = 0.4,  //R of perp cone jet R 
    Int_t   collisionSystem = 0, //pp=0, pPb=1
    Int_t   offlineTriggerMask=AliVEvent::kMB, //MinBias=0 
@@ -105,6 +107,8 @@ AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
    task->SetJetR(jetParameterR);
    task->SetBgJetR(bgjetParameterR);
    task->SetBgMaxJetPt(bgMaxJetPt);
+   task->SetRndTrials(rndTrials);
+   task->SetFreeAreaFrac(jetFreeAreaFrac);
    task->SetBgConeR(bgConeR); 
    task->SetOfflineTrgMask(offlineTriggerMask);
    task->SetMinContribVtx(minContribVtx);