1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 //____________________________________________________________________
20 // Base class for FMD naiive algorithms.
22 // Derived classes will implement various ways of reconstructing the
23 // charge particle multiplicity in the FMD.
25 #include "AliFMDNaiiveAlgorithm.h" // ALIFMDNAIIVEALGORITHM_H
26 #include "AliFMDDigit.h" // ALIFMDDIGIT_H
28 //____________________________________________________________________
29 ClassImp(AliFMDNaiiveAlgorithm);
31 //____________________________________________________________________
32 AliFMDNaiiveAlgorithm::AliFMDNaiiveAlgorithm()
33 : AliFMDReconstructionAlgorithm("Naiive", "Naiive")
37 //____________________________________________________________________
39 AliFMDNaiiveAlgorithm::Reset()
41 // Reset internal data
44 fMultiplicity.Clear(0);
47 //____________________________________________________________________
49 AliFMDNaiiveAlgorithm::ProcessDigit(AliFMDDigit* digit,
58 // digit Digit to process
59 // eta Pseudo-rapidity of digit
60 // phi Azimuthal angle of digit
61 // count ADC (corrected for the pedestal)
63 // This calculates the energy deposited and the number of MIPs that
64 // this energy deposition corresponds to
66 // EnergyDeposited = cos(theta) * gain * count
67 // Multiplicity = EnergyDeposited / EnergyDepositedPerMIP
69 // where gain is a conversion factor from number of counts to an
71 // Pre_Amp_MIP_Range 1
72 // gain = ----------------- * ---------------------
73 // ADC_channel_size EnergyDepositedPerMip
75 // and theta is the particles incident angle on the strip, given by
77 // theta = 2 * atan * exp(-eta)
79 // The cos(theta) factor corrects for the fact that the particle may
80 // traverse the strip at an angle, and therefor have a longer flight
81 // length, leading to a larger energy deposition.
84 Double_t theta = 2 * TMath::Tan(TMath::Exp(- eta));
85 Double_t edep = TMath::Cos(theta) * fGain * count;
86 Double_t mult = edep / fEdepMip;
87 fEdep(digit->Detector() - 1, digit->Ring(),
88 digit->Setctor(), digit->Strip()) = edep;
89 fMultiplicity(digit->Detector() - 1, digit->Ring(),
90 digit->Setctor(), digit->Strip()) = mult;
94 //____________________________________________________________________