]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Protection in MC, not to access stack out of range (Markus K.)
authorandronic <andronic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jul 2010 12:44:12 +0000 (12:44 +0000)
committerandronic <andronic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 21 Jul 2010 12:44:12 +0000 (12:44 +0000)
- Add Print function in SignalBase
- Add ITS nSigmas in VarManager (Markus K.)
- Add PID class in pkg file. Was missing in the last commit

PWG3/dielectron/AliDielectronMC.cxx
PWG3/dielectron/AliDielectronSignalBase.cxx
PWG3/dielectron/AliDielectronSignalBase.h
PWG3/dielectron/AliDielectronVarManager.cxx
PWG3/dielectron/AliDielectronVarManager.h
PWG3/libPWG3dielectron.pkg

index efb78810736565cc9137490a6c742eb3f05a87a1..86adb73df2bf4c3417d1942cf2198077c387dfda 100644 (file)
@@ -161,7 +161,12 @@ AliMCParticle* AliDielectronMC::GetMCTrack( const AliESDtrack* _track)
   //
   // return MC track
   //
+  if (!fMCEvent){ AliError("No fMCEvent"); return NULL;}
+
+  Int_t nStack = fMCEvent->GetNumberOfTracks();
   Int_t label = TMath::Abs(_track->GetLabel());
+  if(label>nStack)return NULL;
+
   AliMCParticle *mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(label));
   return mctrack;
 }
index 8efaf1aa7fad9004971824b964181081fb5bee7f..da5386b2255438376fbb1e55259a767b09f7d0be 100644 (file)
@@ -98,3 +98,22 @@ TPaveText* AliDielectronSignalBase::DrawStats(Double_t x1/*=0.*/, Double_t y1/*=
   return t;
 }
 
+//______________________________________________
+void AliDielectronSignalBase::Print(Option_t */*option*/) const
+{
+  //
+  // Print the statistics
+  //
+  printf("Signal : %.5g #pm %.5g\n",GetSignal(),GetSignalError());
+  printf("Backgnd: %.5g #pm %.5g\n",GetBackground(),GetBackgroundError());
+  printf("Signif.: %.5g #pm %.5g\n",GetSignificance(),GetSignificanceError());
+  printf("SoB    : %.5g #pm %.5g\n",GetSignalOverBackground(),GetSignalOverBackgroundError());
+  if (GetMass()>0){
+    printf("Mass: %.5g #pm %.5g\n", GetMass(), GetMassError());
+    printf("Mass res.: %.5g #pm %.5g\n", GetMassWidth(), GetMassWidthError());
+  }
+}
+
+
+
+
index 36dda37e6f311b085141fe326330834c201691ec..139a5d181d1d99fb04eb847015b2bd4bac48900c 100644 (file)
@@ -51,19 +51,19 @@ public:
   Double_t GetIntegralMin() const { return fIntMin; }
   Double_t GetIntegralMax() const { return fIntMax; }
   
-  Double_t GetSignal()               {return fValues(0);}
-  Double_t GetBackground()           {return fValues(1);}
-  Double_t GetSignificance()         {return fValues(2);}
-  Double_t GetSignalOverBackground() {return fValues(3);}
-  Double_t GetMass()                 {return fValues(4);}
-  Double_t GetMassWidth()            {return fValues(5);}
+  Double_t GetSignal()               const {return fValues(0);}
+  Double_t GetBackground()           const {return fValues(1);}
+  Double_t GetSignificance()         const {return fValues(2);}
+  Double_t GetSignalOverBackground() const {return fValues(3);}
+  Double_t GetMass()                 const {return fValues(4);}
+  Double_t GetMassWidth()            const {return fValues(5);}
   
-  Double_t GetSignalError()               {return fErrors(0);}
-  Double_t GetBackgroundError()           {return fErrors(1);}
-  Double_t GetSignificanceError()         {return fErrors(2);}
-  Double_t GetSignalOverBackgroundError() {return fErrors(3);}
-  Double_t GetMassError()                 {return fErrors(4);}
-  Double_t GetMassWidthError()            {return fValues(5);}
+  Double_t GetSignalError()               const {return fErrors(0);}
+  Double_t GetBackgroundError()           const {return fErrors(1);}
+  Double_t GetSignificanceError()         const {return fErrors(2);}
+  Double_t GetSignalOverBackgroundError() const {return fErrors(3);}
+  Double_t GetMassError()                 const {return fErrors(4);}
+  Double_t GetMassWidthError()            const {return fValues(5);}
   
   void GetSignal(Double_t &val, Double_t &valErr)               {val=fValues(0); valErr=fErrors(0);}
   void GetBackground(Double_t &val, Double_t &valErr)           {val=fValues(1); valErr=fErrors(1);}
@@ -90,6 +90,8 @@ public:
   */
   virtual void Process(TObjArray * const /*arrhist*/) = 0;
 
+  virtual void Print(Option_t *option="") const;
+  
 protected:
   
   void SetSignificanceAndSOB();
index 5e2aae78471899c5f21dbe302ceb5c4329f9f46b..ea9fb3848673e4da7e7bb844613052adb0ddc0fe 100644 (file)
@@ -66,6 +66,11 @@ const char* AliDielectronVarManager::fgkParticleNames[AliDielectronVarManager::k
   "SSD2_signal",
   "SDD1_signal",
   "SDD2_signal",
+  "ITS_nSigma_Electrons",
+  "ITS_nSigma_Pions",
+  "ITS_nSigma_Muons",
+  "ITS_nSigma_Kaons",
+  "ITS_nSigma_Protons",
 
   "P_InnerParam",
   "TPC_signal",
@@ -74,6 +79,7 @@ const char* AliDielectronVarManager::fgkParticleNames[AliDielectronVarManager::k
   "TPC_nSigma_Muons",
   "TPC_nSigma_Kaons",
   "TPC_nSigma_Protons",
+
   "TOF_nSigma_Electrons",
   "TOF_nSigma_Pions",
   "TOF_nSigma_Muons",
index 8f37e48fb7b41538f2aec16443216874ec8ccfff..9233a248d7fb747b0e41ce04dd17cd63fdc43ad2 100644 (file)
@@ -97,6 +97,11 @@ public:
     kITSsignalSSD2,         // SSD2 dE/dx signal
     kITSsignalSDD1,         // SDD1 dE/dx signal
     kITSsignalSDD2,         // SDD2 dE/dx signal
+    kITSnSigmaEle,           // number of sigmas to the dE/dx electron line in the ITS
+    kITSnSigmaPio,           // number of sigmas to the dE/dx pion line in the ITS
+    kITSnSigmaMuo,           // number of sigmas to the dE/dx muon line in the ITS
+    kITSnSigmaKao,           // number of sigmas to the dE/dx kaon line in the ITS
+    kITSnSigmaPro,           // number of sigmas to the dE/dx proton line in the ITS
 
     kPIn,                    // momentum at inner wall of TPC (if available), used for PID
     kTPCsignal,              // TPC dE/dx signal
@@ -312,6 +317,12 @@ inline void AliDielectronVarManager::FillVarESDtrack(const AliESDtrack *particle
   values[AliDielectronVarManager::kTPCnSigmaKao]=fgESDpid->NumberOfSigmasTPC(particle,AliPID::kKaon);
   values[AliDielectronVarManager::kTPCnSigmaPro]=fgESDpid->NumberOfSigmasTPC(particle,AliPID::kProton);
 
+  values[AliDielectronVarManager::kITSnSigmaEle]=fgESDpid->NumberOfSigmasITS(particle,AliPID::kElectron);
+  values[AliDielectronVarManager::kITSnSigmaPio]=fgESDpid->NumberOfSigmasITS(particle,AliPID::kPion);
+  values[AliDielectronVarManager::kITSnSigmaMuo]=fgESDpid->NumberOfSigmasITS(particle,AliPID::kMuon);
+  values[AliDielectronVarManager::kITSnSigmaKao]=fgESDpid->NumberOfSigmasITS(particle,AliPID::kKaon);
+  values[AliDielectronVarManager::kITSnSigmaPro]=fgESDpid->NumberOfSigmasITS(particle,AliPID::kProton);
+
   Double_t t0=fgESDpid->GetTOFResponse().GetTimeZero();
   values[AliDielectronVarManager::kTOFnSigmaEle]=fgESDpid->NumberOfSigmasTOF(particle,AliPID::kElectron,t0);
   values[AliDielectronVarManager::kTOFnSigmaPio]=fgESDpid->NumberOfSigmasTOF(particle,AliPID::kPion,t0);
@@ -367,16 +378,12 @@ inline void AliDielectronVarManager::FillVarAODTrack(const AliAODTrack *particle
 
     Double_t tpcNsigmaEle=fgESDpid->GetTPCResponse().GetNumberOfSigmas(mom,pid->GetTPCsignal(),
       TMath::Nint(values[AliDielectronVarManager::kTPCsignalN]) ,AliPID::kElectron);
-
     Double_t tpcNsigmaPio=fgESDpid->GetTPCResponse().GetNumberOfSigmas(mom,pid->GetTPCsignal(),
       TMath::Nint(values[AliDielectronVarManager::kTPCsignalN]),AliPID::kPion);
-
     Double_t tpcNsigmaMuo=fgESDpid->GetTPCResponse().GetNumberOfSigmas(mom,pid->GetTPCsignal(),
       TMath::Nint(values[AliDielectronVarManager::kTPCsignalN]),AliPID::kMuon);
-
     Double_t tpcNsigmaKao=fgESDpid->GetTPCResponse().GetNumberOfSigmas(mom,pid->GetTPCsignal(),
       TMath::Nint(values[AliDielectronVarManager::kTPCsignalN]),AliPID::kKaon);
-
     Double_t tpcNsigmaPro=fgESDpid->GetTPCResponse().GetNumberOfSigmas(mom,pid->GetTPCsignal(),
       TMath::Nint(values[AliDielectronVarManager::kTPCsignalN]),AliPID::kProton);
     
index 1f3e28b2808e3853bf23f9af0ae08bcebdf91ba5..ab3caa88e257ff5918a3932c011e1be0b9157360 100644 (file)
@@ -17,7 +17,8 @@ SRCS= dielectron/AliDielectron.cxx \
       dielectron/AliDielectronSignalFunc.cxx \
       dielectron/AliDielectronSignalExt.cxx \
       dielectron/AliDielectronSpectrum.cxx \
-      dielectron/AliDielectronDebugTree.cxx 
+      dielectron/AliDielectronDebugTree.cxx \
+      dielectron/AliDielectronPID.cxx
 
 HDRS= $(SRCS:.cxx=.h)