]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- add new TRD pid
authorjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Sep 2012 12:57:47 +0000 (12:57 +0000)
committerjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Sep 2012 12:57:47 +0000 (12:57 +0000)
PWGDQ/dielectron/AliDielectronPID.cxx
PWGDQ/dielectron/AliDielectronPID.h

index edd4650070b178dfa5f762fedea168a42affe816..2d29e2850d64bfcd5b465c1fe5e928884bfa0db9 100644 (file)
@@ -34,6 +34,7 @@ Detailed description
 #include <AliLog.h>
 #include <AliExternalTrackParam.h>
 #include <AliPIDResponse.h>
+#include <AliTRDPIDResponse.h>
 #include <AliESDtrack.h> //!!!!! Remove once Eta correction is treated in the tender
 
 #include "AliDielectronVarManager.h"
@@ -274,6 +275,9 @@ Bool_t AliDielectronPID::IsSelected(TObject* track)
     case kTRDeleEff:
       selected = IsSelectedTRDeleEff(part,icut);
       break;
+    case kTRDeleEff2D:
+      selected = IsSelectedTRDeleEff(part,icut,AliTRDPIDResponse::kLQ2D);
+      break;
     case kTOF:
       selected = IsSelectedTOF(part,icut);
       break;
@@ -362,7 +366,7 @@ Bool_t AliDielectronPID::IsSelectedTRD(AliVTrack * const part, Int_t icut)
 }
 
 //______________________________________________
-Bool_t AliDielectronPID::IsSelectedTRDeleEff(AliVTrack * const part, Int_t icut)
+Bool_t AliDielectronPID::IsSelectedTRDeleEff(AliVTrack * const part, Int_t icut, AliTRDPIDResponse::ETRDPIDMethod PIDmethod)
 {
   //
   // TRD part of the pid check using electron efficiency requirement
@@ -373,7 +377,13 @@ Bool_t AliDielectronPID::IsSelectedTRDeleEff(AliVTrack * const part, Int_t icut)
   if (fRequirePIDbit[icut]==AliDielectronPID::kRequire&&!(part->GetStatus()&AliVTrack::kTRDpid)) return kFALSE;
   if (fRequirePIDbit[icut]==AliDielectronPID::kIfAvailable&&!(part->GetStatus()&AliVTrack::kTRDpid)) return kTRUE;
 
-  Bool_t selected=fPIDResponse->IdentifiedAsElectronTRD(part,fNsigmaLow[icut])^fExclude[icut];
+  Double_t centrality = -1.;
+  if(part->IsA() == AliESDtrack::Class())
+    centrality=(const_cast<AliESDEvent*>( (static_cast<const AliESDtrack*>(part))->GetESDEvent()) )->GetCentrality()->GetCentralityPercentile("V0M");
+  if(part->IsA() == AliAODTrack::Class())
+    centrality=(const_cast<AliAODEvent*>( (static_cast<const AliAODTrack*>(part))->GetAODEvent()) )->GetCentrality()->GetCentralityPercentile("V0M");
+
+  Bool_t selected=fPIDResponse->IdentifiedAsElectronTRD(part,fNsigmaLow[icut], centrality, PIDmethod)^fExclude[icut];
   return selected;
 }
 
index 86d98dd77db19e10598b2cb4240f9a030daf065b..b039c5dec96bc336117938fe6c5842bb328d21a4 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <AliPID.h>
 #include <AliAnalysisCuts.h>
+#include <AliTRDPIDResponse.h>
 
 class TF1;
 class TList;
@@ -31,7 +32,7 @@ class AliDielectronVarManager;
 
 class AliDielectronPID : public AliAnalysisCuts {
 public:
-  enum DetType {kITS, kTPC, kTRD, kTRDeleEff, kTOF, kEMCAL};
+  enum DetType {kITS, kTPC, kTRD, kTRDeleEff, kTRDeleEff2D, kTOF, kEMCAL};
   enum PIDbitType {kIgnore=0, kRequire, kIfAvailable};
   
   AliDielectronPID();
@@ -112,7 +113,7 @@ private:
   Bool_t IsSelectedITS(AliVTrack * const part, Int_t icut);
   Bool_t IsSelectedTPC(AliVTrack * const part, Int_t icut);
   Bool_t IsSelectedTRD(AliVTrack * const part, Int_t icut);
-  Bool_t IsSelectedTRDeleEff(AliVTrack * const part, Int_t icut);
+  Bool_t IsSelectedTRDeleEff(AliVTrack * const part, Int_t icut, AliTRDPIDResponse::ETRDPIDMethod PIDmethod=AliTRDPIDResponse::kLQ1D);
   Bool_t IsSelectedTOF(AliVTrack * const part, Int_t icut);
   Bool_t IsSelectedEMCAL(AliVTrack * const part, Int_t icut);