ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//_________________________________________________________________________
// Class for the management by the Emc reconstruction.
////                  
//*-- Author   : Boris Polichtchouk (IHEP, Protvino) 6 Mar 2001
//
// --- ROOT system ---

#include <TMath.h>

// --- Standard library ---

// --- AliRoot header files ---

#include "AliPHOSRecEmcManager.h"

ClassImp(AliPHOSRecEmcManager) 

//____________________________________________________________________________

AliPHOSRecEmcManager::AliPHOSRecEmcManager():
  fOneGamChisqCut(1.3f),
  fOneGamInitialStep(0.00005f),
  fOneGamChisqMin(1.f),
  fOneGamStepMin(0.0005f),
  fOneGamNumOfIterations(50),
  fTwoGamInitialStep(0.00005f),
  fTwoGamChisqMin(1.f),
  fTwoGamEmin(0.1f),
  fTwoGamStepMin(0.00005),
  fTwoGamNumOfIterations(50),
  fThr0(0.f),
  fSqdCut(0.f)
{
  // default ctor
  SetTitle("Emc Reconstruction Manager");
}

AliPHOSRecEmcManager::~AliPHOSRecEmcManager(void) {}

Float_t AliPHOSRecEmcManager::Dispersion(Float_t ei) const
{
  //"Dispresion" of energy deposition in the cell.
  // eTot is the total shower energy, ai is the
  // calculated cell response,
  // ei is the measured cell response.

  return ei;
}

Float_t AliPHOSRecEmcManager::OneGamChi2(Float_t ai, Float_t ei, Float_t, Float_t& gi) const
{
  // Chi2 used in OneGam (one-gamma fitting).
  // gi is d(Chi2)/d(ai).

  Float_t da = ai - ei;
  Float_t d = ei; // we assume that sigma(E) = sqrt(E)
  gi = 2.*(ai-ei)/d;

  return da*da/d;

}

Float_t AliPHOSRecEmcManager::TwoGamChi2(Float_t ai, Float_t ei, Float_t, Float_t& gi) const
{
  // calculates chi^2
  Float_t da = ai - ei;
  Float_t d = ei; // we assume that sigma(E) = sqrt(E)
  gi = 2.*(ai-ei)/d;

  return da*da/d;

}

void AliPHOSRecEmcManager::AG(Float_t ei, Float_t xi, Float_t yi, Float_t& ai, Float_t& gxi, Float_t& gyi )
{
  //Calculates amplitude (ai) and gradients (gxi, gyi) of CPV pad response.
  //Integrated response (total "shower energy") is E, 
  //xi and yi are the distances along x and y from reference point 
  // to the pad center.
  //Shape of the shower is from PHOS TDR.


  Float_t r = TMath::Sqrt(xi*xi + yi*yi);
  Float_t r4    = r*r*r*r ;
  Float_t r295  = TMath::Power(r, 2.95) ;
  Float_t shape = ei*TMath::Exp( -r4 * (1. / (2.32 + 0.26 * r4) + 0.0316 / (1 + 0.0652 * r295) ) ) ;
  ai = shape;


  //d(shape)/d(xi)
  gxi = (-(TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2)*
       ((-0.006077944*xi*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),
             0.4750000000000001))/
          TMath::Power(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475),2) - 
         (1.04*xi*(TMath::Power(xi,2) + TMath::Power(yi,2)))/
          TMath::Power(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2),2))) - 
    4*xi*(TMath::Power(xi,2) + TMath::Power(yi,2))*
     (0.0316/(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475)) + 
       1./(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2))))/
  TMath::Power(TMath::E(),TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2)*
    (0.0316/(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475)) + 
     1./(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2))));
  
  gxi = gxi*ei;

  //d(shape)/d(yi)
  gyi = (-(TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2)*
       ((-0.006077944*yi*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),
             0.4750000000000001))/
          TMath::Power(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475),2) - 
         (1.04*yi*(TMath::Power(xi,2) + TMath::Power(yi,2)))/
          TMath::Power(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2),2))) - 
    4*yi*(TMath::Power(xi,2) + TMath::Power(yi,2))*
     (0.0316/(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475)) + 
       1./(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2))))/
  TMath::Power(TMath::E(),TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2)*
    (0.0316/(1 + 0.0652*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),1.475)) + 
     1./(2.32 + 0.26*TMath::Power(TMath::Power(xi,2) + TMath::Power(yi,2),2))));


  gyi = gyi*ei;

}







 AliPHOSRecEmcManager.cxx:1
 AliPHOSRecEmcManager.cxx:2
 AliPHOSRecEmcManager.cxx:3
 AliPHOSRecEmcManager.cxx:4
 AliPHOSRecEmcManager.cxx:5
 AliPHOSRecEmcManager.cxx:6
 AliPHOSRecEmcManager.cxx:7
 AliPHOSRecEmcManager.cxx:8
 AliPHOSRecEmcManager.cxx:9
 AliPHOSRecEmcManager.cxx:10
 AliPHOSRecEmcManager.cxx:11
 AliPHOSRecEmcManager.cxx:12
 AliPHOSRecEmcManager.cxx:13
 AliPHOSRecEmcManager.cxx:14
 AliPHOSRecEmcManager.cxx:15
 AliPHOSRecEmcManager.cxx:16
 AliPHOSRecEmcManager.cxx:17
 AliPHOSRecEmcManager.cxx:18
 AliPHOSRecEmcManager.cxx:19
 AliPHOSRecEmcManager.cxx:20
 AliPHOSRecEmcManager.cxx:21
 AliPHOSRecEmcManager.cxx:22
 AliPHOSRecEmcManager.cxx:23
 AliPHOSRecEmcManager.cxx:24
 AliPHOSRecEmcManager.cxx:25
 AliPHOSRecEmcManager.cxx:26
 AliPHOSRecEmcManager.cxx:27
 AliPHOSRecEmcManager.cxx:28
 AliPHOSRecEmcManager.cxx:29
 AliPHOSRecEmcManager.cxx:30
 AliPHOSRecEmcManager.cxx:31
 AliPHOSRecEmcManager.cxx:32
 AliPHOSRecEmcManager.cxx:33
 AliPHOSRecEmcManager.cxx:34
 AliPHOSRecEmcManager.cxx:35
 AliPHOSRecEmcManager.cxx:36
 AliPHOSRecEmcManager.cxx:37
 AliPHOSRecEmcManager.cxx:38
 AliPHOSRecEmcManager.cxx:39
 AliPHOSRecEmcManager.cxx:40
 AliPHOSRecEmcManager.cxx:41
 AliPHOSRecEmcManager.cxx:42
 AliPHOSRecEmcManager.cxx:43
 AliPHOSRecEmcManager.cxx:44
 AliPHOSRecEmcManager.cxx:45
 AliPHOSRecEmcManager.cxx:46
 AliPHOSRecEmcManager.cxx:47
 AliPHOSRecEmcManager.cxx:48
 AliPHOSRecEmcManager.cxx:49
 AliPHOSRecEmcManager.cxx:50
 AliPHOSRecEmcManager.cxx:51
 AliPHOSRecEmcManager.cxx:52
 AliPHOSRecEmcManager.cxx:53
 AliPHOSRecEmcManager.cxx:54
 AliPHOSRecEmcManager.cxx:55
 AliPHOSRecEmcManager.cxx:56
 AliPHOSRecEmcManager.cxx:57
 AliPHOSRecEmcManager.cxx:58
 AliPHOSRecEmcManager.cxx:59
 AliPHOSRecEmcManager.cxx:60
 AliPHOSRecEmcManager.cxx:61
 AliPHOSRecEmcManager.cxx:62
 AliPHOSRecEmcManager.cxx:63
 AliPHOSRecEmcManager.cxx:64
 AliPHOSRecEmcManager.cxx:65
 AliPHOSRecEmcManager.cxx:66
 AliPHOSRecEmcManager.cxx:67
 AliPHOSRecEmcManager.cxx:68
 AliPHOSRecEmcManager.cxx:69
 AliPHOSRecEmcManager.cxx:70
 AliPHOSRecEmcManager.cxx:71
 AliPHOSRecEmcManager.cxx:72
 AliPHOSRecEmcManager.cxx:73
 AliPHOSRecEmcManager.cxx:74
 AliPHOSRecEmcManager.cxx:75
 AliPHOSRecEmcManager.cxx:76
 AliPHOSRecEmcManager.cxx:77
 AliPHOSRecEmcManager.cxx:78
 AliPHOSRecEmcManager.cxx:79
 AliPHOSRecEmcManager.cxx:80
 AliPHOSRecEmcManager.cxx:81
 AliPHOSRecEmcManager.cxx:82
 AliPHOSRecEmcManager.cxx:83
 AliPHOSRecEmcManager.cxx:84
 AliPHOSRecEmcManager.cxx:85
 AliPHOSRecEmcManager.cxx:86
 AliPHOSRecEmcManager.cxx:87
 AliPHOSRecEmcManager.cxx:88
 AliPHOSRecEmcManager.cxx:89
 AliPHOSRecEmcManager.cxx:90
 AliPHOSRecEmcManager.cxx:91
 AliPHOSRecEmcManager.cxx:92
 AliPHOSRecEmcManager.cxx:93
 AliPHOSRecEmcManager.cxx:94
 AliPHOSRecEmcManager.cxx:95
 AliPHOSRecEmcManager.cxx:96
 AliPHOSRecEmcManager.cxx:97
 AliPHOSRecEmcManager.cxx:98
 AliPHOSRecEmcManager.cxx:99
 AliPHOSRecEmcManager.cxx:100
 AliPHOSRecEmcManager.cxx:101
 AliPHOSRecEmcManager.cxx:102
 AliPHOSRecEmcManager.cxx:103
 AliPHOSRecEmcManager.cxx:104
 AliPHOSRecEmcManager.cxx:105
 AliPHOSRecEmcManager.cxx:106
 AliPHOSRecEmcManager.cxx:107
 AliPHOSRecEmcManager.cxx:108
 AliPHOSRecEmcManager.cxx:109
 AliPHOSRecEmcManager.cxx:110
 AliPHOSRecEmcManager.cxx:111
 AliPHOSRecEmcManager.cxx:112
 AliPHOSRecEmcManager.cxx:113
 AliPHOSRecEmcManager.cxx:114
 AliPHOSRecEmcManager.cxx:115
 AliPHOSRecEmcManager.cxx:116
 AliPHOSRecEmcManager.cxx:117
 AliPHOSRecEmcManager.cxx:118
 AliPHOSRecEmcManager.cxx:119
 AliPHOSRecEmcManager.cxx:120
 AliPHOSRecEmcManager.cxx:121
 AliPHOSRecEmcManager.cxx:122
 AliPHOSRecEmcManager.cxx:123
 AliPHOSRecEmcManager.cxx:124
 AliPHOSRecEmcManager.cxx:125
 AliPHOSRecEmcManager.cxx:126
 AliPHOSRecEmcManager.cxx:127
 AliPHOSRecEmcManager.cxx:128
 AliPHOSRecEmcManager.cxx:129
 AliPHOSRecEmcManager.cxx:130
 AliPHOSRecEmcManager.cxx:131
 AliPHOSRecEmcManager.cxx:132
 AliPHOSRecEmcManager.cxx:133
 AliPHOSRecEmcManager.cxx:134
 AliPHOSRecEmcManager.cxx:135
 AliPHOSRecEmcManager.cxx:136
 AliPHOSRecEmcManager.cxx:137
 AliPHOSRecEmcManager.cxx:138
 AliPHOSRecEmcManager.cxx:139
 AliPHOSRecEmcManager.cxx:140
 AliPHOSRecEmcManager.cxx:141
 AliPHOSRecEmcManager.cxx:142
 AliPHOSRecEmcManager.cxx:143
 AliPHOSRecEmcManager.cxx:144
 AliPHOSRecEmcManager.cxx:145
 AliPHOSRecEmcManager.cxx:146
 AliPHOSRecEmcManager.cxx:147