]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- add new variable NvtxContribTPC
authorjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jan 2013 13:13:48 +0000 (13:13 +0000)
committerjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jan 2013 13:13:48 +0000 (13:13 +0000)
- Print function for cutgroup
- event cut for correlation of vtx contributors

PWGDQ/dielectron/AliDielectronCutGroup.cxx
PWGDQ/dielectron/AliDielectronCutGroup.h
PWGDQ/dielectron/AliDielectronEventCuts.cxx
PWGDQ/dielectron/AliDielectronEventCuts.h
PWGDQ/dielectron/AliDielectronVarManager.cxx
PWGDQ/dielectron/AliDielectronVarManager.h

index 90a6bd86bf2670d2cc0267325a8a305a7d98d563..2e7b76ac11f4c38c5b9f6de750e88969fef16346 100644 (file)
@@ -100,3 +100,17 @@ void AliDielectronCutGroup::SetCompOperator(Bool_t compOperator)
   
   fCompOperator = compOperator;
 }
+
+//________________________________________________________________________
+void AliDielectronCutGroup::Print(const Option_t* /*option*/) const
+{
+  //
+  // Print cuts and the range
+  //
+
+  TIter listIterator(&fCutGroupList);
+  while (AliAnalysisCuts *thisCut = (AliAnalysisCuts*) listIterator()) {
+    thisCut->Print();
+  }
+
+}
index 92adfd2913fb499b0756ae63030470fe02968fa6..d906a1d8726f61428994b3949b65d9eef2c3054d 100644 (file)
@@ -46,6 +46,9 @@ public:
   
   void AddCut(AliAnalysisCuts* fCut);
   void SetCompOperator(Bool_t compOperator);
+
+  virtual void Print(const Option_t* option = "") const;
+
   
 private:
   TList  fCutGroupList;  //for saving the different cuts
index 65f3ab0d36ff4ddde12504edaa7a9f984192db8c..7fe0901fe2542f6f1840a0f1e7238bfefc9cd774 100644 (file)
@@ -58,7 +58,9 @@ AliDielectronEventCuts::AliDielectronEventCuts() :
   fkVertexAOD(0x0),
   fparMean(0x0),
   fparSigma(0x0),
-  fcutSigma(3.)
+  fcutSigma(3.),
+  fparMinVtxContributors(0x0),
+  fparMaxVtxContributors(0x0)
 {
   //
   // Default Constructor
@@ -83,7 +85,9 @@ AliDielectronEventCuts::AliDielectronEventCuts(const char* name, const char* tit
   fkVertexAOD(0x0),
   fparMean(0x0),
   fparSigma(0x0),
-  fcutSigma(3.)
+  fcutSigma(3.),
+  fparMinVtxContributors(0x0),
+  fparMaxVtxContributors(0x0)
 {
   //
   // Named Constructor
@@ -194,6 +198,18 @@ Bool_t AliDielectronEventCuts::IsSelectedESD(TObject* event)
     if(multV0 > mV0+fcutSigma*sV0 || multV0 < mV0-fcutSigma*sV0) return kFALSE;
   }
 
+  // cut on the number of vertex contributors using TPC versus global vertex
+  if(fparMinVtxContributors && fparMaxVtxContributors) {
+    const AliESDVertex *vtxTPC = ev->GetPrimaryVertexTPC();
+    const AliESDVertex *vtxGbl = ev->GetPrimaryVertex();
+    Double_t nContribTPC = (vtxTPC ? vtxTPC->GetNContributors() : 0);
+    Double_t nContribGbl = (vtxGbl ? vtxGbl->GetNContributors() : 0);
+    Double_t minCut = fparMinVtxContributors->Eval(nContribGbl);
+    Double_t maxCut = fparMaxVtxContributors->Eval(nContribGbl);
+    if(nContribTPC > maxCut || nContribTPC < minCut) return kFALSE;
+  }
+
+
   return kTRUE;
 }
 //______________________________________________
@@ -271,7 +287,8 @@ Bool_t AliDielectronEventCuts::IsSelectedAOD(TObject* event)
       return kFALSE;
   }
   */
-
+  
+  // correlation cut Ntrks vs. multV0
   if(fparMean && fparSigma) {
     Double_t nTrks  = ev->GetNumberOfTracks();
     Double_t multV0 = 0.0;
@@ -281,6 +298,17 @@ Bool_t AliDielectronEventCuts::IsSelectedAOD(TObject* event)
     if(multV0 > mV0+fcutSigma*sV0 || multV0 < mV0-fcutSigma*sV0) return kFALSE;
   }
 
+  // cut on the number of vertex contributors using TPC versus global vertex
+  if(fparMinVtxContributors && fparMaxVtxContributors) {
+    const AliAODVertex *vtxTPC = ev->GetVertex(AliAODVertex::kMainTPC);
+    const AliAODVertex *vtxGbl = ev->GetPrimaryVertex();
+    Double_t nContribTPC = (vtxTPC ? vtxTPC->GetNContributors() : 0);
+    Double_t nContribGbl = (vtxGbl ? vtxGbl->GetNContributors() : 0);
+    Double_t minCut = fparMinVtxContributors->Eval(nContribGbl);
+    Double_t maxCut = fparMaxVtxContributors->Eval(nContribGbl);
+    if(nContribTPC > maxCut || nContribTPC < minCut) return kFALSE;
+  }
+
   return kTRUE;
 }
 
index 92a9199ec6d9141e78ca0a9b5fc10aedb50fd0a6..59cc03343f46aa91026f1478977002f56763887c 100644 (file)
@@ -45,6 +45,7 @@ public:
   void SetCutOnMultipicityITSTPC(Bool_t mult=kTRUE) { fMultITSTPC=mult;         }
   void SetCentralityRange(Double_t min, Double_t max) { fCentMin=min; fCentMax=max; }
   void SetCutOnV0MultipicityNTrks(TF1* parMean, TF1* parSigma, Double_t cutSigma=3.) { fparMean=parMean; fparSigma=parSigma; fcutSigma=cutSigma; }
+  void SetCutOnNVtxContributorsGloablTPC(TF1* parMin, TF1* parMax) { fparMinVtxContributors=parMin; fparMaxVtxContributors=parMax; }
   //
   //Analysis cuts interface
   //
@@ -75,7 +76,8 @@ private:
   TF1*     fparMean;                // parametrization of the mean values
   TF1*     fparSigma;               // parametrization of the sigmas
   Double_t fcutSigma;               // number of absolut sigmas inclusion
-
+  TF1*     fparMinVtxContributors;  // parametrization of #vtx contributors global vs TPC (lower limit) 
+  TF1*     fparMaxVtxContributors;  // parametrization of #vtx contributors global vs TPC (upper limit) 
   AliDielectronEventCuts(const AliDielectronEventCuts &c);
   AliDielectronEventCuts &operator=(const AliDielectronEventCuts &c);
 
index a837a291b478d47bcec52d351c95fd4fd1590cce..6b0d44fad5936949c184647b62022e53483ef1b0 100644 (file)
@@ -331,6 +331,7 @@ const char* AliDielectronVarManager::fgkParticleNames[AliDielectronVarManager::k
   {"NTrk",                   "N_{trk}",                                            ""},
   {"Tracks",                 "tracks",                                             ""},
   {"NVtxContrib",            "N_{vtx. contrib.}",                                  ""},
+  {"NVtxContribTPC",         "N_{vtx. contrib.}^{TPC}",                            ""},
   {"Nacc",                   "N_{acc} #cbar_{#||{#eta}<0.9}",                      ""},
   {"NaccTrcklts",            "N_{acc. trkl} #cbar_{#||{#eta}<1.6}",                ""},
   {"NaccTrcklts0916",        "N_{acc. trkl} #cbar_{-1.6<#eta<-0.9}^{0.9<#eta<1.6}",""},
index ca84bff7a1658b7697613e025400dbcc0d7d693f..cf98e6d014a16324bd552867cf54bc3f61afc17b 100644 (file)
@@ -320,6 +320,7 @@ public:
     kNTrk,                   // number of tracks (or tracklets) TODO: ambiguous
     kTracks,                 // ESD tracks TODO: ambiguous
     kNVtxContrib,             // number of primary vertex contibutors
+    kNVtxContribTPC,         // number of TPC vertex contibutors
     kNacc,                   // Number of accepted tracks
     kNaccTrcklts,            // number of accepted SPD tracklets in |eta|<1.6        
     kNaccTrcklts0916,        // number of accepted SPD tracklets in 0.9<|eta|<1.6
@@ -1567,7 +1568,7 @@ inline void AliDielectronVarManager::FillVarVEvent(const AliVEvent *event, Doubl
     if(qstd && qsub1 && qsub2) {
       values[AliDielectronVarManager::kTPCxH2uc]   = qstd->X();
       values[AliDielectronVarManager::kTPCyH2uc]   = qstd->Y();
-      values[AliDielectronVarManager::kTPCmagH2uc] = TMath::Sqrt(qstd->X()*qstd->X()+qstd->Y()*qstd->Y());
+      values[AliDielectronVarManager::kTPCmagH2uc] = qstd->Mod();
       values[AliDielectronVarManager::kTPCrpH2uc]  = ((TMath::Abs(qstd->X())>1.0e-10) ? TMath::ATan2(qstd->Y(),qstd->X())/2.0 : 0.0);
       values[AliDielectronVarManager::kTPCsub1xH2uc]   = qsub1->X();
       values[AliDielectronVarManager::kTPCsub1yH2uc]   = qsub1->Y();
@@ -1690,7 +1691,10 @@ inline void AliDielectronVarManager::FillVarESDEvent(const AliESDEvent *event, D
   values[AliDielectronVarManager::kZRes]       = primVtx->GetZRes();
   values[AliDielectronVarManager::kCentrality] = centralityF;
   values[AliDielectronVarManager::kCentralitySPD] = centralitySPD;
-  
+
+  const AliESDVertex *vtxTPC = event->GetPrimaryVertexTPC(); 
+  values[AliDielectronVarManager::kNVtxContribTPC] = (vtxTPC ? vtxTPC->GetNContributors() : 0);
+
   // Event multiplicity estimators
   Int_t nTrSPD05=0; Int_t nTrITSTPC05=0; Int_t nTrITSSA05=0;
   event->EstimateMultiplicity(nTrSPD05, nTrITSTPC05, nTrITSSA05, 0.5);
@@ -1756,6 +1760,8 @@ inline void AliDielectronVarManager::FillVarAODEvent(const AliAODEvent *event, D
   if(!header->GetEventplaneP())
     values[AliDielectronVarManager::kTPCrpH2uc] = header->GetEventplane();
 
+  const AliAODVertex *vtxTPC = event->GetVertex(AliAODVertex::kMainTPC);
+  values[AliDielectronVarManager::kNVtxContribTPC] = (vtxTPC ? vtxTPC->GetNContributors() : 0);
   //const AliAODVertex *primVtx = event->GetPrimaryVertex();
 }
   
@@ -1794,7 +1800,7 @@ inline void AliDielectronVarManager::FillVarTPCEventPlane(const AliEventplane *e
 
       values[AliDielectronVarManager::kTPCxH2]   = qcorr->X();
       values[AliDielectronVarManager::kTPCyH2]   = qcorr->Y();
-      values[AliDielectronVarManager::kTPCmagH2] = TMath::Sqrt(qcorr->X()*qcorr->X()+qcorr->Y()*qcorr->Y());
+      values[AliDielectronVarManager::kTPCmagH2] = qcorr->Mod();
       values[AliDielectronVarManager::kTPCrpH2]  = ((TMath::Abs(qcorr->X())>1.0e-10) ? TMath::ATan2(qcorr->Y(),qcorr->X())/2.0 : 0.0);
 
       values[AliDielectronVarManager::kTPCsub1xH2]   = qcsub1->X();