]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added methods to compute generated multiplcity from AOD MC particle array (Renu)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Mar 2012 22:40:09 +0000 (22:40 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Mar 2012 22:40:09 +0000 (22:40 +0000)
PWGHF/vertexingHF/AliVertexingHFUtils.cxx
PWGHF/vertexingHF/AliVertexingHFUtils.h

index 48a1c2a272df472fcbc71e019834a0574ba8254d..f759ad517df6ac0026e8f1f0ba7677d6cdfb16c9 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <TMath.h>
 #include "AliAODEvent.h"
+#include "AliAODMCParticle.h"
 #include "AliVertexingHFUtils.h"
 
 /* $Id: $ */
@@ -24,7 +25,7 @@
 // Class with functions useful for different D2H analyses        //
 // - event plane resolution                                      //
 // - <pt> calculation with side band subtraction                 //
-// - tracklet multiplcity calculation                            //
+// - tracklet multiplicity calculation                            //
 // Origin: F.Prino, Torino, prino@to.infn.it                     //
 //                                                               //
 ///////////////////////////////////////////////////////////////////
@@ -167,6 +168,49 @@ Int_t AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(AliAODEvent* ev, Doubl
   return count;
 }
 //______________________________________________________________________
+Int_t AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta){
+  // counts generated particles in fgiven eta range
+
+  Int_t nChargedMC=0;
+  for(Int_t i=0;i<arrayMC->GetEntriesFast();i++){
+    AliAODMCParticle *part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
+    Int_t charge = part->Charge();
+    Double_t eta = part->Eta();
+    if(charge!=0 && eta>mineta && eta<maxeta) nChargedMC++;
+  } 
+  return nChargedMC;
+}
+//______________________________________________________________________
+Int_t AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta){
+  // counts generated primary particles in given eta range
+
+  Int_t nChargedMC=0;
+  for(Int_t i=0;i<arrayMC->GetEntriesFast();i++){
+    AliAODMCParticle *part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
+    Int_t charge = part->Charge();
+    Double_t eta = part->Eta();
+    if(charge!=0 && eta>mineta && eta<maxeta){
+      if(part->IsPrimary())nChargedMC++;
+    } 
+  }  
+  return nChargedMC;
+}
+//______________________________________________________________________
+Int_t AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta){
+  // counts generated primary particles in given eta range
+
+  Int_t nChargedMC=0;
+  for(Int_t i=0;i<arrayMC->GetEntriesFast();i++){
+    AliAODMCParticle *part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
+    Int_t charge = part->Charge();
+    Double_t eta = part->Eta();
+    if(charge!=0 && eta>mineta && eta<maxeta){
+      if(part->IsPhysicalPrimary())nChargedMC++;
+    } 
+  }
+  return nChargedMC;
+}
+//______________________________________________________________________
 void AliVertexingHFUtils::AveragePt(Float_t& averagePt, Float_t& errorPt,Float_t ptmin,Float_t ptmax, TH2F* hMassD, Float_t massFromFit, Float_t sigmaFromFit, TF1* funcB2, Float_t sigmaRangeForSig,Float_t sigmaRangeForBkg, Int_t rebin){
 
   // Compute <pt> from 2D histogram M vs pt
index e606009de3fdce92233487ddd64098a62251b05e..33f6d043513984bcb88ef2abddb70ebdb085a984 100644 (file)
@@ -9,7 +9,7 @@
 // Class with functions useful for different D2H analyses        //
 // - event plane resolution                                      //
 // - <pt> calculation with side band subtraction                 //
-// - tracklet multiplcity calculation                            //
+// - tracklet multiplicity calculation                            //
 // Origin: F.Prino, Torino, prino@to.infn.it                     //
 //                                                               //
 ///////////////////////////////////////////////////////////////////
@@ -65,6 +65,9 @@ class AliVertexingHFUtils : public TObject{
   Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent* ev) const {
     return GetNumberOfTrackletsInEtaRange(ev,fMinEtaForTracklets,fMaxEtaForTracklets);
   }
+  static Int_t GetGeneratedMultiplicityInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
+  static Int_t GetGeneratedPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
+  static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
 
   // Functions for computing average pt 
   static void AveragePt(Float_t& averagePt, Float_t& errorPt, Float_t ptmin, Float_t ptmax, TH2F* hMassD, Float_t massFromFit, Float_t sigmaFromFit, TF1* funcB2, Float_t sigmaRangeForSig=2.5, Float_t sigmaRangeForBkg=4.5, Int_t rebin=4);