ROOT logo
/************************************************************************* 
* Copyright(c) 1998-2048, 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.                  * 
**************************************************************************/

// Author: Dariusz Miskowiec <mailto:d.miskowiec@gsi.de> 2007

//=============================================================================
// parent class of all events; analyzers access data via this class
//=============================================================================

#include <TMath.h>
#include "AliUnicorEvent.h"

ClassImp(AliUnicorEvent)

//=============================================================================
void AliUnicorEvent::RP(Double_t &qx, Double_t &qy, Int_t harmonic) const 
{
  // simplest flow vector

  qx=0; 
  qy=0;
  for (int i=0; i<NParticles(); i++) {
    if (!ParticleGood(i,0)) continue;
    double pt = ParticlePt(i);
    if (pt>2.0) pt = 2.0; // from 2 GeV flow saturates anyway
    qx += pt*cos(harmonic*ParticlePhi(i));
    qy += pt*sin(harmonic*ParticlePhi(i));
  }
}
//=============================================================================
Double_t AliUnicorEvent::ParticleEta(Int_t i) const 
{
  // pseudorapidity

  double the = ParticleTheta(i); 
  if (the<0.0001) return 10; 
  else if (the>TMath::Pi()-0.0001) return -10;
  return -log(tan(the/2));
}
//=============================================================================
Double_t AliUnicorEvent::ParticleY(Int_t i, Double_t mass) const 
{
  // rapidity

  double pp = ParticleP(i);
  double ee = sqrt(fabs(mass*mass + pp*pp));
  double pz = ParticlePz(i);
  double yy = log((ee+pz)/(ee-pz))/2;
  return yy;
}
//=============================================================================

 AliUnicorEvent.cxx:1
 AliUnicorEvent.cxx:2
 AliUnicorEvent.cxx:3
 AliUnicorEvent.cxx:4
 AliUnicorEvent.cxx:5
 AliUnicorEvent.cxx:6
 AliUnicorEvent.cxx:7
 AliUnicorEvent.cxx:8
 AliUnicorEvent.cxx:9
 AliUnicorEvent.cxx:10
 AliUnicorEvent.cxx:11
 AliUnicorEvent.cxx:12
 AliUnicorEvent.cxx:13
 AliUnicorEvent.cxx:14
 AliUnicorEvent.cxx:15
 AliUnicorEvent.cxx:16
 AliUnicorEvent.cxx:17
 AliUnicorEvent.cxx:18
 AliUnicorEvent.cxx:19
 AliUnicorEvent.cxx:20
 AliUnicorEvent.cxx:21
 AliUnicorEvent.cxx:22
 AliUnicorEvent.cxx:23
 AliUnicorEvent.cxx:24
 AliUnicorEvent.cxx:25
 AliUnicorEvent.cxx:26
 AliUnicorEvent.cxx:27
 AliUnicorEvent.cxx:28
 AliUnicorEvent.cxx:29
 AliUnicorEvent.cxx:30
 AliUnicorEvent.cxx:31
 AliUnicorEvent.cxx:32
 AliUnicorEvent.cxx:33
 AliUnicorEvent.cxx:34
 AliUnicorEvent.cxx:35
 AliUnicorEvent.cxx:36
 AliUnicorEvent.cxx:37
 AliUnicorEvent.cxx:38
 AliUnicorEvent.cxx:39
 AliUnicorEvent.cxx:40
 AliUnicorEvent.cxx:41
 AliUnicorEvent.cxx:42
 AliUnicorEvent.cxx:43
 AliUnicorEvent.cxx:44
 AliUnicorEvent.cxx:45
 AliUnicorEvent.cxx:46
 AliUnicorEvent.cxx:47
 AliUnicorEvent.cxx:48
 AliUnicorEvent.cxx:49
 AliUnicorEvent.cxx:50
 AliUnicorEvent.cxx:51
 AliUnicorEvent.cxx:52
 AliUnicorEvent.cxx:53
 AliUnicorEvent.cxx:54
 AliUnicorEvent.cxx:55
 AliUnicorEvent.cxx:56
 AliUnicorEvent.cxx:57
 AliUnicorEvent.cxx:58
 AliUnicorEvent.cxx:59
 AliUnicorEvent.cxx:60
 AliUnicorEvent.cxx:61
 AliUnicorEvent.cxx:62
 AliUnicorEvent.cxx:63
 AliUnicorEvent.cxx:64