]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updates in pid class for external configurability (Rossella, Francesco)
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Jul 2010 16:04:23 +0000 (16:04 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Jul 2010 16:04:23 +0000 (16:04 +0000)
PWG3/vertexingHF/AliAODPidHF.cxx
PWG3/vertexingHF/AliAODPidHF.h

index fb9438326a1ba564176c2d2aba8ae15a41605ad6..f9d4e950fa3ded80ee435b24867741f464ed7989 100644 (file)
@@ -47,7 +47,7 @@ AliAODPidHF::AliAODPidHF():
   fTOF(kFALSE),
   fITS(kFALSE),
   fTRD(kFALSE),
-  fMatch(kFALSE),
+  fMatch(0),
   fCompat(kFALSE)
 {
  //
@@ -190,7 +190,7 @@ Int_t AliAODPidHF::ApplyPidTPCRaw(AliAODTrack *track,Int_t specie) const{
    if (nsigma>fnSigma[0]) {
     pid=-1; 
    }else{
-    pid=1;
+    pid=specie;
    }
   }
 
@@ -225,7 +225,7 @@ Int_t AliAODPidHF::ApplyPidITSRaw(AliAODTrack *track,Int_t specie) const{
    if (nsigma>fnSigma[4]) {
     pid=-1; 
    }else{
-    pid=1;
+    pid=specie;
    }
   }
  return pid; 
@@ -261,7 +261,7 @@ Int_t AliAODPidHF::ApplyPidTOFRaw(AliAODTrack *track,Int_t specie) const{
    if (nsigma>fnSigma[3]*fTOFSigma) {
     pid=-1; 
    }else{
-    pid=1;
+    pid=specie;
    }
   }
  return pid; 
@@ -437,7 +437,7 @@ Int_t AliAODPidHF::MatchTPCTOF(AliAODTrack *track,Int_t mode,Int_t specie,Bool_t
  // convention: 
  // for the single detectors: -1 = kFALSE, 1 = kTRUE, 0 = compatible
  // the method returns the sum of the response of the 2 detectors
-  if(fTPC && fTOF)  if(!CheckStatus(track,"TPC") && !CheckStatus(track,"TOF")) return 0;
+  if(fTPC && fTOF) {if(!CheckStatus(track,"TPC") && !CheckStatus(track,"TOF")) return 0;}
 
   
   Int_t TPCinfo=0;
@@ -495,7 +495,7 @@ Int_t AliAODPidHF::MatchTPCTOF(AliAODTrack *track,Int_t mode,Int_t specie,Bool_t
    Double_t ptrack=track->P();
    if(ptrack>1.5) TOFinfo=0;
   }
-}
+ }
  return TPCinfo+TOFinfo;
 }
  if(mode==2){
@@ -514,16 +514,15 @@ Int_t AliAODPidHF::MatchTPCTOF(AliAODTrack *track,Int_t mode,Int_t specie,Bool_t
    }
   }
 
-  Int_t TOFinfo=0;
+  Int_t TOFinfo=1;
   if(fTOF){
    if(fTPC && !CheckStatus(track,"TOF")) return TPCinfo;
-   TOFinfo=1;
 
    if(specie==2 && !IsPionRaw(track,"TOF")) TOFinfo=-1;
    if(specie==3 && !IsKaonRaw(track,"TOF")) TOFinfo=-1;
    if(specie==4 && !IsProtonRaw(track,"TOF")) TOFinfo=-1;
   }
-   if(TOFinfo+TPCinfo>=2) return 1;
+  if(TOFinfo==1 && TPCinfo==1) return 1;
 
    return -1;
 
@@ -572,20 +571,20 @@ Int_t AliAODPidHF::MakeRawPid(AliAODTrack *track, Int_t specie){
   return MatchTPCTOF(track,fMatch,specie,fCompat); //clarify
  }else{
   if(fTPC && !fTOF && !fITS) {
-   return ApplyPidTPCRaw(track,specie);
+   if(ApplyPidTPCRaw(track,specie)==specie){return 1;}else{return ApplyPidTPCRaw(track,specie);};
   }else{
    AliError("You should enable just one detector if you don't want to match");
    return 0;
   }
   if(fTOF && !fTPC && !fITS) {
-   return ApplyPidTOFRaw(track,specie);
+   if(ApplyPidTOFRaw(track,specie)==specie){return 1;}else{return ApplyPidTPCRaw(track,specie);};
   }else{
    AliError("You should enable just one detector if you don't want to match");
    return 0;
   }
 
   if(fITS && !fTPC && !fTOF) {
-   return ApplyPidITSRaw(track,specie);
+   if(ApplyPidITSRaw(track,specie)==specie){return 1;}else{return ApplyPidTPCRaw(track,specie);};
   }else{
    AliError("You should enable just one detector if you don't want to match");
    return 0;
index 9c558356512426e14518eb136f884cd9fb229e70..47162e5478f78e5762f11bed801f29879680db19 100644 (file)
@@ -23,20 +23,37 @@ class AliAODPidHF : public AliAODPid{
  virtual ~AliAODPidHF();
 
  //Setters
- void SetSigma(Double_t *sigma){fnSigma=sigma;return;}
+ void SetSigma(Double_t *sigma){
+    for(Int_t i=0; i<fnNSigma; i++) fnSigma[i]=sigma[i];
+     }
  void SetSigma(Int_t idet,Double_t sigma){fnSigma[idet]=sigma;return;}
+ void SetSigmaForTPC(Double_t *sigma){for(Int_t i=0;i<3;i++) fnSigma[i]=sigma[i];return;}
+ void SetSigmaForTOF(Double_t sigma){fnSigma[3]=sigma;return;}
+ void SetSigmaForITS(Double_t sigma){fnSigma[4]=sigma;return;}
  void SetTofSigma(Double_t sigma){fTOFSigma=sigma;return;}
  void SetPriors(Double_t *priors){fPriors=priors;return;}
-// void SetPLimit(Double_t *plim){fPLimit=plim;return;}
- void SetPLimit(Double_t *plim){for(Int_t i=0;i<2;i++){fPLimit[i]=plim[i];}return;}
+ void SetPLimit(Double_t *plim){for(Int_t i=0;i<fnPLimit;i++) fPLimit[i]=plim[i];return;}
+ void SetPLimit(Double_t *plim,Int_t npLim){fnPLimit=npLim;for(Int_t i=0;i<fnPLimit;i++) fPLimit[i]=plim[i];return;}
  void SetAsym(Bool_t asym){fAsym=asym;return;}
  void SetTPC(Bool_t tpc){fTPC=tpc;return;}
  void SetTOF(Bool_t tof){fTOF=tof;return;}
  void SetITS(Bool_t its){fITS=its;return;}
  void SetTRD(Bool_t trd){fTRD=trd;return;}
- void SetMatch(Bool_t match){fMatch=match;return;}
+ void SetMatch(Int_t match){fMatch=match;return;}
  void SetCompat(Bool_t comp){fCompat=comp;return;}
  
+ //Getters
+ Double_t GetSigma(Int_t idet){return fnSigma[idet];}
+ Double_t GetTofSigma(){return fTOFSigma;}
+ void GetPriors(Double_t *priors){priors=fPriors;return;}
+ void GetPLimit(Double_t *plim){plim=fPLimit;}
+ Bool_t GetAsym(){return fAsym;}
+ Bool_t GetTPC(){return fTPC;}
+ Bool_t GetTOF(){return fTOF;}
+ Bool_t GetITS(){return fITS;}
+ Bool_t GetTRD(){return fTRD;}
+ Int_t GetMatch(){return fMatch;}
+ Bool_t GetCompat(){return fCompat;}
 
  Int_t RawSignalPID (AliAODTrack *track, TString detector) const;
  Bool_t IsKaonRaw (AliAODTrack *track, TString detector) const;
@@ -77,12 +94,12 @@ class AliAODPidHF : public AliAODPid{
  Bool_t fTOF; // switch to include or exclude TOF
  Bool_t fITS; //switch to include or exclude ITS
  Bool_t fTRD; // switch to include or exclude TRD
Bool_t fMatch; //switch to combine the info from more detectors: 1 = || , 2 = &, 3 = p region
Int_t fMatch; //switch to combine the info from more detectors: 1 = || , 2 = &, 3 = p region
  Bool_t fCompat; // compatibility region : useful only if fMatch=1
  
 
 
- ClassDef(AliAODPidHF,3) // AliAODPid for heavy flavor PID
+ ClassDef(AliAODPidHF,5) // AliAODPid for heavy flavor PID
 
 };