]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changes for report #65872 Request for adding changes in AliESDpid for trunk. We added...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Apr 2010 14:19:34 +0000 (14:19 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Apr 2010 14:19:34 +0000 (14:19 +0000)
STEER/AliESDpid.cxx
STEER/AliESDpid.h
STEER/AliTRDPIDResponse.cxx
STEER/AliTRDPIDResponse.h

index 0ef62acbbd14aaa561576e38ffe7b593a01dd115..280f11a5a8176ea3a7482417acdd7a1fdc3e4492 100644 (file)
@@ -215,6 +215,24 @@ void AliESDpid::MakeTOFPID(AliESDtrack *track, Float_t TimeZeroTOF) const
   if (heavy) track->ResetStatus(AliESDtrack::kTOFpid);    
 }
 //_________________________________________________________________________
+void AliESDpid::MakeTRDPID(AliESDtrack *track) const
+{
+  //
+  // Method to recalculate the TRD PID probabilities
+  //
+  if((track->GetStatus()&AliESDtrack::kTRDout)==0) return;
+  Double_t prob[AliPID::kSPECIES]; Float_t mom[6];
+  Double_t dedx[48];  // Allocate space for the maximum number of TRD slices
+  for(Int_t ilayer = 0; ilayer < 6; ilayer++){
+    mom[ilayer] = track->GetTRDmomentum(ilayer);
+    for(Int_t islice = 0; islice < track->GetNumberOfTRDslices(); islice++){
+      dedx[ilayer*track->GetNumberOfTRDslices()+islice] = track->GetTRDslice(ilayer, islice);
+    }
+  }
+  fTRDResponse.GetResponse(track->GetNumberOfTRDslices(), dedx, mom, prob);
+  track->SetTRDpid(prob);
+}
+//_________________________________________________________________________
 void AliESDpid::CombinePID(AliESDtrack *track) const
 {
   //
index 8cb88734f243d9bb33fcfa9b295349deb5a1368e..74328185002f7f2275da0b0cc147cd712f86ad50 100644 (file)
@@ -15,6 +15,7 @@
 #include "AliTPCPIDResponse.h"
 #include "AliITSPIDResponse.h"
 #include "AliTOFPIDResponse.h"
+#include "AliTRDPIDResponse.h"
 //#include "HMPID/AliHMPID.h"
 //#include "TRD/AliTRDpidESD.h"
 
@@ -22,14 +23,14 @@ class AliESDEvent;
 
 class AliESDpid {
 public:
-  AliESDpid(): fRange(5.), fITSPIDmethod(kITSTruncMean), fTPCResponse(), fITSResponse(), fTOFResponse() {;}
+  AliESDpid(): fRange(5.), fITSPIDmethod(kITSTruncMean), fTPCResponse(), fITSResponse(), fTOFResponse(), fTRDResponse(){;}
   virtual ~AliESDpid() {}
   Int_t MakePID(AliESDEvent *event, Bool_t TPCOnly = kFALSE, Float_t TimeZeroTOF=0) const;
   void MakeTPCPID(AliESDtrack *track) const;
   void MakeITSPID(AliESDtrack *track) const;
   void MakeTOFPID(AliESDtrack *track, Float_t TimeZeroTOF) const;
   //  void MakeHMPIDPID(AliESDtrack *track);
-  //  void MakeTRDPID(AliESDtrack *track);
+  void MakeTRDPID(AliESDtrack *track) const;
   void CombinePID(AliESDtrack *track) const;
 
   enum ITSPIDmethod { kITSTruncMean, kITSLikelihood };
@@ -42,6 +43,7 @@ public:
   AliITSPIDResponse &GetITSResponse() {return fITSResponse;}
   AliTPCPIDResponse &GetTPCResponse() {return fTPCResponse;}
   AliTOFPIDResponse &GetTOFResponse() {return fTOFResponse;}
+  AliTRDPIDResponse &GetTRDResponse() {return fTRDResponse;}
 
 
 private:
@@ -51,9 +53,9 @@ private:
   AliITSPIDResponse fITSResponse;
   AliTOFPIDResponse fTOFResponse;
   // AliHMPIDPIDResponse fHMPIDResponse;
-  // AliTRDPIDResponse fTRDResponse;
+  AliTRDPIDResponse fTRDResponse;
 
-  ClassDef(AliESDpid,3)  // PID calculation class
+  ClassDef(AliESDpid,4)  // PID calculation class
 };
 
 inline Float_t AliESDpid::NumberOfSigmasTPC(const AliESDtrack *track, AliPID::EParticleType type) const {
index 78acf8efc77bd2e0ffc2e5519cda05ffdc025fc8..0bd6aac6e1a4e3200525bf54768e1fd5bcd94a97 100644 (file)
@@ -142,7 +142,7 @@ Bool_t AliTRDPIDResponse::Load(const Char_t * filename){
 }
 
 //____________________________________________________________
-Bool_t AliTRDPIDResponse::GetResponse(Int_t n, Double_t *dedx, Float_t *p, Double_t prob[AliPID::kSPECIES], Bool_t kNorm)
+Bool_t AliTRDPIDResponse::GetResponse(Int_t n, Double_t *dedx, Float_t *p, Double_t prob[AliPID::kSPECIES], Bool_t kNorm) const
 {
 //
 // Calculate TRD likelihood values for the track based on dedx and 
@@ -202,7 +202,7 @@ Bool_t AliTRDPIDResponse::GetResponse(Int_t n, Double_t *dedx, Float_t *p, Doubl
 
 
 //____________________________________________________________
-Double_t AliTRDPIDResponse::GetProbabilitySingleLayer(Int_t species, Double_t plocal, Double_t dEdx){
+Double_t AliTRDPIDResponse::GetProbabilitySingleLayer(Int_t species, Double_t plocal, Double_t dEdx) const {
  //
  // Get the non-normalized probability for a certain particle species as coming
  // from the reference histogram
@@ -236,7 +236,7 @@ Double_t AliTRDPIDResponse::GetProbabilitySingleLayer(Int_t species, Double_t pl
 }
 
 //____________________________________________________________
-Int_t AliTRDPIDResponse::GetLowerMomentumBin(Double_t p){
+Int_t AliTRDPIDResponse::GetLowerMomentumBin(Double_t p) const {
  //
  // Get the momentum bin for a given momentum value
  //
@@ -265,7 +265,7 @@ void AliTRDPIDResponse::SetOwner(){
 }
 
 //____________________________________________________________
-Bool_t AliTRDPIDResponse::CookdEdx(Double_t *in, Double_t *out)
+Bool_t AliTRDPIDResponse::CookdEdx(Double_t *in, Double_t *out) const
 {
  switch(fPIDmethod){
  case 0: // NN 
index cdf36c2de70b26cff6f490bcdf533e231dd85bd0..ade6a5dd109dcc571e11540a09a50b95da40e302 100644 (file)
@@ -45,7 +45,7 @@ public:
  ~AliTRDPIDResponse();
 
  Int_t     GetPIDmethod() const { return fPIDmethod;}
- Bool_t    GetResponse(Int_t n, Double_t *dedx, Float_t *p, Double_t prob[AliPID::kSPECIES], Bool_t kNorm=kTRUE);
+ Bool_t    GetResponse(Int_t n, Double_t *dedx, Float_t *p, Double_t prob[AliPID::kSPECIES], Bool_t kNorm=kTRUE) const;
 
  Bool_t    IsOwner() const {return TestBit(kIsOwner);}
 
@@ -54,9 +54,9 @@ public:
 
 
 private:
- Bool_t    CookdEdx(Double_t *in, Double_t *out);
- Int_t     GetLowerMomentumBin(Double_t p);
- Double_t  GetProbabilitySingleLayer(Int_t species, Double_t dEdx, Double_t p);
+ Bool_t    CookdEdx(Double_t *in, Double_t *out) const;
+ Int_t     GetLowerMomentumBin(Double_t p) const;
+ Double_t  GetProbabilitySingleLayer(Int_t species, Double_t dEdx, Double_t p) const;
  Bool_t    Load(const Char_t *filename = NULL);
 
  static const Double_t fgkPBins[kNPBins];