From e5ee1c19448b02605b60196c3fb848844258fa09 Mon Sep 17 00:00:00 2001 From: kleinb Date: Wed, 5 Sep 2012 10:24:35 +0000 Subject: [PATCH] added rho to event propoerties, added cut on delta Z for centraltiy outliers --- PWGJE/AliAnalysisTaskJetServices.cxx | 38 +++++++++++++---- PWGJE/AliAnalysisTaskJetServices.h | 11 +++-- PWGJE/AliAnalysisTaskJetSpectrum2.cxx | 22 +++++++--- PWGJE/AliAnalysisTaskJetSpectrum2.h | 1 + PWGJE/macros/AnalysisTrainPWGJets.C | 11 +++-- PWGJE/macros/ConfigTrainGrid.C | 60 +++++++++++++++------------ 6 files changed, 94 insertions(+), 49 deletions(-) diff --git a/PWGJE/AliAnalysisTaskJetServices.cxx b/PWGJE/AliAnalysisTaskJetServices.cxx index 1d00af66124..868f8c98458 100644 --- a/PWGJE/AliAnalysisTaskJetServices.cxx +++ b/PWGJE/AliAnalysisTaskJetServices.cxx @@ -93,6 +93,7 @@ AliAnalysisTaskJetServices::AliAnalysisTaskJetServices(): fVtxZMean(0), fVtxRCut(1.), fVtxZCut(8.), + fVtxDeltaZCut(0.1), fPtMinCosmic(5.), fRIsolMinCosmic(3.), fMaxCosmicAngle(0.01), @@ -167,6 +168,7 @@ AliAnalysisTaskJetServices::AliAnalysisTaskJetServices(const char* name): fVtxZMean(0), fVtxRCut(1.), fVtxZCut(8.), + fVtxDeltaZCut(0.1), fPtMinCosmic(5.), fRIsolMinCosmic(3.), fMaxCosmicAngle(0.01), @@ -501,7 +503,7 @@ void AliAnalysisTaskJetServices::UserExec(Option_t */*option*/) fEventCutInfoESD |= kPhysicsSelectionCut; // other alreay set via IsEventSelected - fh1EventCutInfoESD->Fill(fEventCutInfoESD); + fh1EventCutInfoESD->Fill (fEventCutInfoESD); if(esdEventSelected) fSelectionInfoESD |= AliAnalysisHelperJetTasks::kVertexIn; if(esdEventPileUp) fSelectionInfoESD |= AliAnalysisHelperJetTasks::kIsPileUp; @@ -545,8 +547,9 @@ void AliAnalysisTaskJetServices::UserExec(Option_t */*option*/) if(esd){ const AliESDVertex *vtxESD = esd->GetPrimaryVertex(); + const AliESDVertex *vtxESDSPD = esd->GetPrimaryVertexSPD(); esdVtxValid = IsVertexValid(vtxESD); - esdVtxIn = IsVertexIn(vtxESD); + esdVtxIn = IsVertexIn(vtxESD,vtxESDSPD); if(aodH&&physicsSelection&&fFilterAODCollisions&&aod){ if(fDebug)Printf("%s:%d Centrality %3.3f vtxin %d",(char*)__FILE__,__LINE__,cent,esdVtxIn); if(cent<=80&&esdVtxIn){ @@ -615,8 +618,9 @@ void AliAnalysisTaskJetServices::UserExec(Option_t */*option*/) if(aod){ const AliAODVertex *vtxAOD = aod->GetPrimaryVertex(); + const AliAODVertex *vtxAODSPD = aod->GetPrimaryVertexSPD(); aodVtxValid = IsVertexValid(vtxAOD); - aodVtxIn = IsVertexIn(vtxAOD); + aodVtxIn = IsVertexIn(vtxAOD,vtxAODSPD); Float_t zvtx = vtxAOD->GetZ(); Int_t iCl = GetEventClass(aod); AliAnalysisHelperJetTasks::EventClass(kTRUE,iCl); @@ -779,7 +783,8 @@ void AliAnalysisTaskJetServices::UserExec(Option_t */*option*/) Bool_t AliAnalysisTaskJetServices::IsEventSelected(const AliESDEvent* esd){ if(!esd)return kFALSE; const AliESDVertex *vtx = esd->GetPrimaryVertex(); - return IsVertexIn(vtx); // vertex in calls vertex valid + const AliESDVertex *vtxSPD = esd->GetPrimaryVertex(); + return IsVertexIn(vtx,vtxSPD); // vertex in calls vertex valid } AliAnalysisTaskJetServices::~AliAnalysisTaskJetServices(){ @@ -835,7 +840,8 @@ void AliAnalysisTaskJetServices::SetV0Centroids(TProfile *xa,TProfile *ya,TProfi Bool_t AliAnalysisTaskJetServices::IsEventSelected(const AliAODEvent* aod) const { if(!aod)return kFALSE; const AliAODVertex *vtx = aod->GetPrimaryVertex(); - return IsVertexIn(vtx); // VertexIn calls VertexValid + const AliAODVertex *vtxSPD = aod->GetPrimaryVertexSPD(); + return IsVertexIn(vtx,vtxSPD); // VertexIn calls VertexValid } Bool_t AliAnalysisTaskJetServices::IsVertexValid ( const AliESDVertex* vtx) { @@ -913,7 +919,7 @@ Bool_t AliAnalysisTaskJetServices::IsVertexValid ( const AliAODVertex* vtx) con if(vtxName.Contains("TPCVertex"))return kFALSE; - // no dispersion yet... + // no dispersion yet... /* TString vtxTitle(vtx->GetTitle()); if(vtxTitle.Contains("vertexer: Z")){ @@ -924,13 +930,15 @@ Bool_t AliAnalysisTaskJetServices::IsVertexValid ( const AliAODVertex* vtx) con } -Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliESDVertex* vtx) { +Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliESDVertex* vtx,const AliESDVertex* vtxSPD) { if(!IsVertexValid(vtx))return kFALSE; Float_t zvtx = vtx->GetZ(); Float_t yvtx = vtx->GetY(); Float_t xvtx = vtx->GetX(); + Float_t deltaZ = zvtx - vtxSPD->GetZ(); + if(fDebug)Printf("%s:%d deltaz %3.3f ",__FILE__,__LINE__,deltaZ); xvtx -= fVtxXMean; yvtx -= fVtxYMean; @@ -947,17 +955,25 @@ Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliESDVertex* vtx) { return kFALSE; } fEventCutInfoESD |= kVertexRCut; + + + + + if(TMath::Abs(deltaZ)>fVtxDeltaZCut)return kFALSE; + fEventCutInfoESD |= kVertexDeltaZCut; return kTRUE; } -Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliAODVertex* vtx) const { +Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliAODVertex* vtx,const AliAODVertex* vtxSPD) const { if(!IsVertexValid(vtx))return kFALSE; Float_t zvtx = vtx->GetZ(); Float_t yvtx = vtx->GetY(); Float_t xvtx = vtx->GetX(); + Float_t deltaZ = zvtx - vtxSPD->GetZ(); + if(fDebug)Printf("%s:%d deltaz %3.3f ",__FILE__,__LINE__,deltaZ); xvtx -= fVtxXMean; yvtx -= fVtxYMean; @@ -966,6 +982,12 @@ Bool_t AliAnalysisTaskJetServices::IsVertexIn (const AliAODVertex* vtx) const { Float_t r2 = yvtx*yvtx+xvtx*xvtx; Bool_t vertexIn = TMath::Abs(zvtx)fVtxDeltaZCut)vertexIn = kFALSE; + if(fDebug)Printf("%s:%d vertexIn %d ",__FILE__,__LINE__,vertexIn); + + return vertexIn; } diff --git a/PWGJE/AliAnalysisTaskJetServices.h b/PWGJE/AliAnalysisTaskJetServices.h index 0747005c5ba..1fb309e6145 100644 --- a/PWGJE/AliAnalysisTaskJetServices.h +++ b/PWGJE/AliAnalysisTaskJetServices.h @@ -49,6 +49,7 @@ class AliAnalysisTaskJetServices : public AliAnalysisTaskSE virtual void UserExec(Option_t *option); virtual void Terminate(Option_t *option); virtual void SetZVertexCut(Float_t f){fVtxZCut = f;} + virtual void SetDeltaZVertexCut(Float_t f){fVtxDeltaZCut = f;} virtual void SetPtMinCosmic(Float_t ptMin) {fPtMinCosmic = ptMin;} virtual void SetRMinCosmic(Float_t rMin) {fRIsolMinCosmic = rMin;} virtual void SetMaxCosmicAngle(Float_t angle) {fMaxCosmicAngle = angle;} @@ -73,8 +74,8 @@ class AliAnalysisTaskJetServices : public AliAnalysisTaskSE Bool_t IsVertexValid(const AliESDVertex *vtx); Bool_t IsVertexValid(const AliAODVertex *vtx) const; - Bool_t IsVertexIn(const AliESDVertex *vtx); - Bool_t IsVertexIn(const AliAODVertex *vtx) const; + Bool_t IsVertexIn(const AliESDVertex *vtx,const AliESDVertex *vtxSPD); + Bool_t IsVertexIn(const AliAODVertex *vtx,const AliAODVertex *vtxSPD) const; Int_t GetEventClass(AliESDEvent *esd); Int_t GetEventClass(AliAODEvent *aod); @@ -115,7 +116,8 @@ class AliAnalysisTaskJetServices : public AliAnalysisTaskSE kSPDDispersionCut=1<<8, kVertexZCut=1<<9, kVertexRCut=1<<10, - kTotalEventCuts=(1<<11)-1}; + kVertexDeltaZCut=1<<11, + kTotalEventCuts=(1<<12)-1}; enum {kPbPb = 0,kPP,kPbP}; private: @@ -140,6 +142,7 @@ class AliAnalysisTaskJetServices : public AliAnalysisTaskSE Float_t fVtxZMean; // mean z for cuts Float_t fVtxRCut; // vtx cut in R Float_t fVtxZCut; // vtzx cut in Z + Float_t fVtxDeltaZCut; // cut on difference between SPD and Global vtx Float_t fPtMinCosmic; // Minimum pT to be considered as cosmic candidate Float_t fRIsolMinCosmic; // Minimum R = sqrt{deltaPhi^2 + deltaEta^2} to be considered as cosmic candidate Float_t fMaxCosmicAngle; // Max deviation from pi (angle between two tracks) in case of cosmic candidate @@ -200,7 +203,7 @@ class AliAnalysisTaskJetServices : public AliAnalysisTaskSE static AliAODHeader* fgAODHeader; //! Header for replication static AliAODVZERO* fgAODVZERO; //! vzero for replication static TClonesArray* fgAODVertices; //! primary vertex for replication - ClassDef(AliAnalysisTaskJetServices,16) + ClassDef(AliAnalysisTaskJetServices,17) }; #endif diff --git a/PWGJE/AliAnalysisTaskJetSpectrum2.cxx b/PWGJE/AliAnalysisTaskJetSpectrum2.cxx index 6a396c49a0b..b82cb8f8e01 100644 --- a/PWGJE/AliAnalysisTaskJetSpectrum2.cxx +++ b/PWGJE/AliAnalysisTaskJetSpectrum2.cxx @@ -360,13 +360,13 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects() // event npsparse cent, mult - const Int_t nBinsSparse0 = 3; - const Int_t nBins0[nBinsSparse0] = { 100, 500,fNTrigger}; - const Double_t xmin0[nBinsSparse0] = { 0, 0, -0.5}; - const Double_t xmax0[nBinsSparse0] = { 100,5000,fNTrigger-0.5}; + const Int_t nBinsSparse0 = 4; + const Int_t nBins0[nBinsSparse0] = { 100, 500,fNTrigger,125}; + const Double_t xmin0[nBinsSparse0] = { 0, 0, -0.5,-2}; + const Double_t xmax0[nBinsSparse0] = { 100,5000,fNTrigger-0.5,248}; - fhnEvent = new THnSparseF("fhnEvent",";cent;mult",nBinsSparse0, + fhnEvent = new THnSparseF("fhnEvent",";cent;mult:trigger;#rho",nBinsSparse0, nBins0,xmin0,xmax0); fHistList->Add(fhnEvent); @@ -895,12 +895,13 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/){ fMultGen = genMult1; if(fMultGen<=0)fMultGen = genMult2; - Double_t var0[3] = {0,}; + Double_t var0[4] = {0,}; var0[0] = fCentrality; var0[1] = fMultRec; for(int it=0;itIsEventSelected()&fTriggerBit[it]){ var0[2] = it; + var0[3] = GetRho(recJetsList); fhnEvent->Fill(var0); } } @@ -1746,7 +1747,16 @@ Int_t AliAnalysisTaskJetSpectrum2::CheckAcceptance(Float_t phi,Float_t eta){ return fNAcceptance; } +Float_t AliAnalysisTaskJetSpectrum2::GetRho(TList &list){ + // invert the correction + AliAODJet *jet = (AliAODJet*)list.At(0); // highest pt jet + if(!jet)return -1; + if(jet->EffectiveAreaCharged()<=0)return -1; + Float_t rho = jet->ChargedBgEnergy()/jet->EffectiveAreaCharged(); + return rho; + +} diff --git a/PWGJE/AliAnalysisTaskJetSpectrum2.h b/PWGJE/AliAnalysisTaskJetSpectrum2.h index 589e789b07e..3817d1c33c5 100644 --- a/PWGJE/AliAnalysisTaskJetSpectrum2.h +++ b/PWGJE/AliAnalysisTaskJetSpectrum2.h @@ -130,6 +130,7 @@ class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE void MakeJetContainer(); Int_t GetListOfTracks(TList *list,Int_t type); void FillTrackHistos(TList &particlesList,int iType); + Float_t GetRho(TList &list); Float_t GetCentrality(); Bool_t CalculateReactionPlaneAngle(const TList *trackList); Int_t GetPhiBin(Double_t phi); diff --git a/PWGJE/macros/AnalysisTrainPWGJets.C b/PWGJE/macros/AnalysisTrainPWGJets.C index 935dbbec8a7..8da482f614c 100644 --- a/PWGJE/macros/AnalysisTrainPWGJets.C +++ b/PWGJE/macros/AnalysisTrainPWGJets.C @@ -22,6 +22,7 @@ // ### General Steering variables // ============================================================================= //== general setup variables +Int_t iRunFlag = 0; TString kTrainName = "testAnalysis"; // *CHANGE ME* (no blancs or special characters) TString kJobTag = "PWGJE Jet Tasks analysis train configured"; // *CHANGE ME* @@ -85,7 +86,7 @@ Bool_t kIsPbPb = kFALSE; // Pb+Pb Int_t iJETAN = 1; // Jet analysis // 1 write standard 2 write non-standard jets, 3 wrtie both Int_t iJETANReader = 0; // Jet analysis // DEV Int_t iJETANFinder = 0; // Jet analysis // DEV -Int_t iJETSUBTRACT = 0; // Jet background subtration +Int_t iJETSUBTRACT = 1; // Jet background subtration TList kJetListSpectrum; // list of jets contains TObjString of possible jet finder names TExMap kJetMapSpectrum; // Maps the jet finder pairs to be used in the spectrum task second number negative no pair other wise (j1+1) + (1000 * (j2+1)) +10000 * (j3+1) TExMap kJetBackMapSpectrum; // Maps the jet finder pairs with the background branch used, just for countint of trackrefs @@ -339,7 +340,7 @@ void AnalysisTrainPWGJets(const char *analysis_mode="local", } gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/ConfigLegoTrainPWGJE.C"); - ConfigLegoTrainPWGJE(1108); + ConfigLegoTrainPWGJE(1008); // Create input handler (input container created automatically) if (iAODanalysis) { // AOD input handler @@ -970,12 +971,14 @@ void AnalysisTrainPWGJets(const char *analysis_mode="local", taskjetServ->SetZVertexCut(fVertexWindow); taskjetServ->SetFilterMask(kHighPtFilterMask); + taskjetServ->SetDebugLevel(10); + + 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); - // taskjetServ->SetDebugLevel(3); } if(iAODanalysis){ // @@ -1484,7 +1487,7 @@ void CheckModuleFlags(const char *mode) { } // Decide if we have PbPb - if(kGridDataSet.CompareTo("LHC10h")==0||kGridDataSet.Contains("LHC10h")) { + if(kGridDataSet.CompareTo("LHC10h")==0||kGridDataSet.Contains("LHC10h")||kGridDataSet.CompareTo("LHC11h")==0||kGridDataSet.Contains("LHC11h")) { Printf("Using settings for Pb+Pb"); kIsPbPb = true; } diff --git a/PWGJE/macros/ConfigTrainGrid.C b/PWGJE/macros/ConfigTrainGrid.C index 14abcff9302..b30c48ba3a6 100644 --- a/PWGJE/macros/ConfigTrainGrid.C +++ b/PWGJE/macros/ConfigTrainGrid.C @@ -103,7 +103,7 @@ if(iAODanalysis == 1){ iJETAN = 0; iPWG4Cluster = 0; - iJETSUBTRACT = 0; + // iJETSUBTRACT = 0; } } @@ -625,7 +625,7 @@ kGridPassPattern = "pass2/AOD049"; iJETAN = 0; iPWG4Cluster = 0; - iJETSUBTRACT = 0; + // iJETSUBTRACT = 0; /* @@ -810,32 +810,37 @@ }// version1 - - // anti kT 150 MeV - kJetMapSpectrum.Add(25,12); - kJetBackMapSpectrum.Add(25,5); - kJetBackMapSpectrum.Add(12,5); - - // anti kT R = 0.2 - kJetMapSpectrum.Add(28,16); - kJetBackMapSpectrum.Add(28,5); - kJetBackMapSpectrum.Add(16,5); - - // anti kT 2 GeV - kJetMapSpectrum.Add(31,15); - kJetBackMapSpectrum.Add(31,8); - kJetBackMapSpectrum.Add(15,8); + kJetMapSpectrum.Add(25,17); + kJetBackMapSpectrum.Add(25,5); + kJetBackMapSpectrum.Add(17,5); - // random cones - kJetMapSpectrum.Add(9,10); - kJetBackMapSpectrum.Add(10,5); - kJetBackMapSpectrum.Add(9,5); - - kJetMapSpectrum.Add(13,14); - kJetBackMapSpectrum.Add(14,5); - kJetBackMapSpectrum.Add(13,5); - + // anti kT 150 MeV + /* + kJetMapSpectrum.Add(25,12); + kJetBackMapSpectrum.Add(25,5); + kJetBackMapSpectrum.Add(12,5); + + // anti kT R = 0.2 + kJetMapSpectrum.Add(28,16); + kJetBackMapSpectrum.Add(28,5); + kJetBackMapSpectrum.Add(16,5); + + // anti kT 2 GeV + kJetMapSpectrum.Add(31,15); + kJetBackMapSpectrum.Add(31,8); + kJetBackMapSpectrum.Add(15,8); + + + // random cones + kJetMapSpectrum.Add(9,10); + kJetBackMapSpectrum.Add(10,5); + kJetBackMapSpectrum.Add(9,5); + + kJetMapSpectrum.Add(13,14); + kJetBackMapSpectrum.Add(14,5); + kJetBackMapSpectrum.Add(13,5); + */ // CLEAN XML FILES LOCALLY AND ON ALIEN WHEN STARTING A NEW PASS! kGridPassPattern = "pass2"; // reset for AODs below @@ -1139,7 +1144,7 @@ iPWG4Minijet = 0; // running as light a possible - iJETSUBTRACT = 0; // no subtraction + // iJETSUBTRACT = 0; // no subtraction iPWG4PtQAMC = 1; @@ -1268,3 +1273,4 @@ } + -- 2.43.0