#include "AliSPDMCTrackDensity.h"
#include "AliMCEvent.h"
#include "AliTrackReference.h"
#include "AliForwardUtil.h"
#include <TMath.h>
#include <AliLog.h>
#include <TROOT.h>
#include <TH2D.h>
#include <iostream>
AliSPDMCTrackDensity::AliSPDMCTrackDensity()
: AliBaseMCTrackDensity(),
fMinR(3.5),
fMaxR(4.5),
fMinZ(-15),
fMaxZ(+15),
fStored(0),
fOutput(0)
{
}
AliSPDMCTrackDensity::AliSPDMCTrackDensity(const char*)
: AliBaseMCTrackDensity("spdMCTrackDensity"),
fMinR(3.5),
fMaxR(4.5),
fMinZ(-14.1),
fMaxZ(+14.1),
fStored(0),
fOutput(0)
{
}
AliSPDMCTrackDensity::AliSPDMCTrackDensity(const AliSPDMCTrackDensity& o)
: AliBaseMCTrackDensity(o),
fMinR(o.fMinR),
fMaxR(o.fMaxR),
fMinZ(o.fMinZ),
fMaxZ(o.fMaxZ),
fStored(o.fStored),
fOutput(o.fOutput)
{
}
AliSPDMCTrackDensity&
AliSPDMCTrackDensity::operator=(const AliSPDMCTrackDensity& o)
{
if (&o == this) return *this;
AliBaseMCTrackDensity::operator=(o);
fMinR = o.fMinR;
fMaxR = o.fMaxR;
fMinZ = o.fMinZ;
fMaxZ = o.fMaxZ;
fStored = o.fStored;
fOutput = o.fOutput;
return *this;
}
Int_t
AliSPDMCTrackDensity::GetDetectorId() const
{
return AliTrackReference::kITS;
}
void
AliSPDMCTrackDensity::BeginTrackRefs()
{
fStored = 0;
}
Bool_t
AliSPDMCTrackDensity::CheckTrackRef(AliTrackReference* ref) const
{
Double_t r = ref->R();
Double_t z = ref->Z();
if (r > fMaxR || r < fMinR) return false;
if (z > fMaxZ || z < fMinZ) return false;
return true;
}
AliTrackReference*
AliSPDMCTrackDensity::ProcessRef(AliMCParticle* ,
const AliMCParticle* ,
AliTrackReference* ref)
{
if (fStored) return 0;
return fStored = ref;
}
Double_t
AliSPDMCTrackDensity::StoreParticle(AliMCParticle* particle,
const AliMCParticle* mother,
AliTrackReference* ref) const
{
Double_t w = AliBaseMCTrackDensity::StoreParticle(particle, mother, ref);
Double_t r = ref->R();
Double_t x = ref->X();
Double_t y = ref->Y();
Double_t z = ref->Z();
Double_t zr = z-fVz;
Double_t th = TMath::ATan2(r,zr);
if (th < 0) th += 2*TMath::Pi();
Double_t et = -TMath::Log(TMath::Tan(th/2));
Double_t ph = TMath::ATan2(y,x);
if (ph < 0) ph += 2*TMath::Pi();
fOutput->Fill(et,ph,w);
return w;
}
Bool_t
AliSPDMCTrackDensity::Calculate(const AliMCEvent& event,
Double_t vz,
TH2D& output,
TH2D* primary)
{
fOutput = &output;
return ProcessTracks(event, vz, primary);
}
#define PF(N,V,...) \
AliForwardUtil::PrintField(N,V, ## __VA_ARGS__)
#define PFV(N,VALUE) \
do { \
AliForwardUtil::PrintName(N); \
std::cout << (VALUE) << std::endl; } while(false)
void
AliSPDMCTrackDensity::Print(Option_t* option) const
{
AliBaseMCTrackDensity::Print(option);
gROOT->IncreaseDirLevel();
PF("R range", "[%f,%f]", fMinR, fMaxR);
PF("Z range", "[%f,%f]", fMinZ, fMaxZ);
gROOT->DecreaseDirLevel();
}
AliSPDMCTrackDensity.cxx:1 AliSPDMCTrackDensity.cxx:2 AliSPDMCTrackDensity.cxx:3 AliSPDMCTrackDensity.cxx:4 AliSPDMCTrackDensity.cxx:5 AliSPDMCTrackDensity.cxx:6 AliSPDMCTrackDensity.cxx:7 AliSPDMCTrackDensity.cxx:8 AliSPDMCTrackDensity.cxx:9 AliSPDMCTrackDensity.cxx:10 AliSPDMCTrackDensity.cxx:11 AliSPDMCTrackDensity.cxx:12 AliSPDMCTrackDensity.cxx:13 AliSPDMCTrackDensity.cxx:14 AliSPDMCTrackDensity.cxx:15 AliSPDMCTrackDensity.cxx:16 AliSPDMCTrackDensity.cxx:17 AliSPDMCTrackDensity.cxx:18 AliSPDMCTrackDensity.cxx:19 AliSPDMCTrackDensity.cxx:20 AliSPDMCTrackDensity.cxx:21 AliSPDMCTrackDensity.cxx:22 AliSPDMCTrackDensity.cxx:23 AliSPDMCTrackDensity.cxx:24 AliSPDMCTrackDensity.cxx:25 AliSPDMCTrackDensity.cxx:26 AliSPDMCTrackDensity.cxx:27 AliSPDMCTrackDensity.cxx:28 AliSPDMCTrackDensity.cxx:29 AliSPDMCTrackDensity.cxx:30 AliSPDMCTrackDensity.cxx:31 AliSPDMCTrackDensity.cxx:32 AliSPDMCTrackDensity.cxx:33 AliSPDMCTrackDensity.cxx:34 AliSPDMCTrackDensity.cxx:35 AliSPDMCTrackDensity.cxx:36 AliSPDMCTrackDensity.cxx:37 AliSPDMCTrackDensity.cxx:38 AliSPDMCTrackDensity.cxx:39 AliSPDMCTrackDensity.cxx:40 AliSPDMCTrackDensity.cxx:41 AliSPDMCTrackDensity.cxx:42 AliSPDMCTrackDensity.cxx:43 AliSPDMCTrackDensity.cxx:44 AliSPDMCTrackDensity.cxx:45 AliSPDMCTrackDensity.cxx:46 AliSPDMCTrackDensity.cxx:47 AliSPDMCTrackDensity.cxx:48 AliSPDMCTrackDensity.cxx:49 AliSPDMCTrackDensity.cxx:50 AliSPDMCTrackDensity.cxx:51 AliSPDMCTrackDensity.cxx:52 AliSPDMCTrackDensity.cxx:53 AliSPDMCTrackDensity.cxx:54 AliSPDMCTrackDensity.cxx:55 AliSPDMCTrackDensity.cxx:56 AliSPDMCTrackDensity.cxx:57 AliSPDMCTrackDensity.cxx:58 AliSPDMCTrackDensity.cxx:59 AliSPDMCTrackDensity.cxx:60 AliSPDMCTrackDensity.cxx:61 AliSPDMCTrackDensity.cxx:62 AliSPDMCTrackDensity.cxx:63 AliSPDMCTrackDensity.cxx:64 AliSPDMCTrackDensity.cxx:65 AliSPDMCTrackDensity.cxx:66 AliSPDMCTrackDensity.cxx:67 AliSPDMCTrackDensity.cxx:68 AliSPDMCTrackDensity.cxx:69 AliSPDMCTrackDensity.cxx:70 AliSPDMCTrackDensity.cxx:71 AliSPDMCTrackDensity.cxx:72 AliSPDMCTrackDensity.cxx:73 AliSPDMCTrackDensity.cxx:74 AliSPDMCTrackDensity.cxx:75 AliSPDMCTrackDensity.cxx:76 AliSPDMCTrackDensity.cxx:77 AliSPDMCTrackDensity.cxx:78 AliSPDMCTrackDensity.cxx:79 AliSPDMCTrackDensity.cxx:80 AliSPDMCTrackDensity.cxx:81 AliSPDMCTrackDensity.cxx:82 AliSPDMCTrackDensity.cxx:83 AliSPDMCTrackDensity.cxx:84 AliSPDMCTrackDensity.cxx:85 AliSPDMCTrackDensity.cxx:86 AliSPDMCTrackDensity.cxx:87 AliSPDMCTrackDensity.cxx:88 AliSPDMCTrackDensity.cxx:89 AliSPDMCTrackDensity.cxx:90 AliSPDMCTrackDensity.cxx:91 AliSPDMCTrackDensity.cxx:92 AliSPDMCTrackDensity.cxx:93 AliSPDMCTrackDensity.cxx:94 AliSPDMCTrackDensity.cxx:95 AliSPDMCTrackDensity.cxx:96 AliSPDMCTrackDensity.cxx:97 AliSPDMCTrackDensity.cxx:98 AliSPDMCTrackDensity.cxx:99 AliSPDMCTrackDensity.cxx:100 AliSPDMCTrackDensity.cxx:101 AliSPDMCTrackDensity.cxx:102 AliSPDMCTrackDensity.cxx:103 AliSPDMCTrackDensity.cxx:104 AliSPDMCTrackDensity.cxx:105 AliSPDMCTrackDensity.cxx:106 AliSPDMCTrackDensity.cxx:107 AliSPDMCTrackDensity.cxx:108 AliSPDMCTrackDensity.cxx:109 AliSPDMCTrackDensity.cxx:110 AliSPDMCTrackDensity.cxx:111 AliSPDMCTrackDensity.cxx:112 AliSPDMCTrackDensity.cxx:113 AliSPDMCTrackDensity.cxx:114 AliSPDMCTrackDensity.cxx:115 AliSPDMCTrackDensity.cxx:116 AliSPDMCTrackDensity.cxx:117 AliSPDMCTrackDensity.cxx:118 AliSPDMCTrackDensity.cxx:119 AliSPDMCTrackDensity.cxx:120 AliSPDMCTrackDensity.cxx:121 AliSPDMCTrackDensity.cxx:122 AliSPDMCTrackDensity.cxx:123 AliSPDMCTrackDensity.cxx:124 AliSPDMCTrackDensity.cxx:125 AliSPDMCTrackDensity.cxx:126 AliSPDMCTrackDensity.cxx:127 AliSPDMCTrackDensity.cxx:128 AliSPDMCTrackDensity.cxx:129 AliSPDMCTrackDensity.cxx:130 AliSPDMCTrackDensity.cxx:131 AliSPDMCTrackDensity.cxx:132 AliSPDMCTrackDensity.cxx:133 AliSPDMCTrackDensity.cxx:134 AliSPDMCTrackDensity.cxx:135 AliSPDMCTrackDensity.cxx:136 AliSPDMCTrackDensity.cxx:137 AliSPDMCTrackDensity.cxx:138 AliSPDMCTrackDensity.cxx:139 AliSPDMCTrackDensity.cxx:140 AliSPDMCTrackDensity.cxx:141 AliSPDMCTrackDensity.cxx:142 AliSPDMCTrackDensity.cxx:143 AliSPDMCTrackDensity.cxx:144 AliSPDMCTrackDensity.cxx:145 AliSPDMCTrackDensity.cxx:146 AliSPDMCTrackDensity.cxx:147 AliSPDMCTrackDensity.cxx:148 AliSPDMCTrackDensity.cxx:149 AliSPDMCTrackDensity.cxx:150 AliSPDMCTrackDensity.cxx:151 AliSPDMCTrackDensity.cxx:152 AliSPDMCTrackDensity.cxx:153 AliSPDMCTrackDensity.cxx:154 AliSPDMCTrackDensity.cxx:155 AliSPDMCTrackDensity.cxx:156 AliSPDMCTrackDensity.cxx:157 AliSPDMCTrackDensity.cxx:158 AliSPDMCTrackDensity.cxx:159 AliSPDMCTrackDensity.cxx:160 AliSPDMCTrackDensity.cxx:161 AliSPDMCTrackDensity.cxx:162 AliSPDMCTrackDensity.cxx:163 AliSPDMCTrackDensity.cxx:164 AliSPDMCTrackDensity.cxx:165 AliSPDMCTrackDensity.cxx:166 AliSPDMCTrackDensity.cxx:167 AliSPDMCTrackDensity.cxx:168 AliSPDMCTrackDensity.cxx:169 AliSPDMCTrackDensity.cxx:170 AliSPDMCTrackDensity.cxx:171 AliSPDMCTrackDensity.cxx:172 AliSPDMCTrackDensity.cxx:173 AliSPDMCTrackDensity.cxx:174 AliSPDMCTrackDensity.cxx:175