]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALFast.cxx
Get daughter indices right.
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALFast.cxx
index 40fe953f85bba5c861231317299b281539dc862f..47f48ac29c39d862d5938dc9a293909a20cf25ae 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id$ */
+
+/*
+$Log$
+Revision 1.2  2002/01/18 03:27:12  morsch
+Acceptance and random rejection added.
+
+*/
+
 
 //*-- Author: Andreas Morsch (CERN)
 
@@ -29,15 +36,26 @@ ClassImp(AliEMCALFast)
 Float_t AliEMCALFast::SmearMomentum(Int_t ind, Float_t p)
 {
 //
-//  The relative momentum error, i.e. (delta p)/p = sqrt (a**2 + (b*p)**2) *
-//  10**-2,
+//  The relative momentum error, i.e. 
+//  (delta p)/p = sqrt (a**2 + (b*p)**2) * 10**-2,
 //  where typically a = 0.75 and b = 0.16 - 0.24 depending on multiplicity
 //  (the lower value is for dn/d(eta) about 2000, and the higher one for 8000)
 //
+//  If we include information from TRD b will be by a factor 2/3 smaller.
+//
+//  ind = 1: high multiplicity
+//  ind = 2: low  multiplicity
+//  ind = 3: high multiplicity + TRD
+//  ind = 4: low  multiplicity + TRD
+
     Float_t pSmeared;
     Float_t a = 0.75;
     Float_t b = 0.24;
+
+    if (ind == 1) b = 0.24;
     if (ind == 2) b = 0.16;
+    if (ind == 3) b = 0.16;    
+    if (ind == 4) b = 0.11;    
     
     Float_t sigma = p*TMath::Sqrt(a*a+b*b*p*p)*0.01;
     pSmeared = p + gRandom->Gaus(0., sigma);
@@ -48,7 +66,7 @@ Float_t AliEMCALFast::SmearMomentum(Int_t ind, Float_t p)
 Float_t AliEMCALFast::Efficiency(Int_t ind, Float_t p)
 {
 // Tracking efficiency:
-// above pt 0.5 GeV practically constant, between 90 and 95 % (agian,
+// above pt 0.5 GeV practically constant, between 90 and 95 % (again,
 // depending on multplicity)
 // below 0.5 GeV goes down to about 70% at 0.2 GeV.
 // On top of that there is 90% geometrical acceptance for tracking due
@@ -61,11 +79,33 @@ Float_t AliEMCALFast::Efficiency(Int_t ind, Float_t p)
     } else {
        eff = eff-(0.5-p)*0.2/0.3;
     }
-    eff*= 0.9;
+    eff *= 0.9;
 // Acceptance    
     return eff;
 }
 
+Bool_t AliEMCALFast::EmcalAcceptance(Float_t eta, Float_t phi)
+{
+//
+// EMCAL eta-phi acceptance
+    Bool_t acc = kFALSE;
+    if (TMath::Abs(eta) < 0.7 &&
+       phi > 0. &&
+       phi < 120.*TMath::Pi()/180.)
+       acc = kTRUE;
+    return acc;
+}
+
+
+Bool_t AliEMCALFast::RandomReject(Float_t eff)
+{
+//
+// Random rejection 
+    Bool_t rej = kFALSE;
+    Float_t ran = gRandom->Rndm();
+    if (ran > eff) rej = kTRUE;
+    return rej;
+}