3 #include "AliTrackReference.h" 27 if (alsoCount)
count = 0;
34 if (&o ==
this)
return *
this;
98 if (&o ==
this)
return *
this;
117 TList* ll =
static_cast<TList*
>(l->FindObject(GetTitle()));
120 fNr =
new TH1D(
"clusterRefs",
"# track references per cluster",
122 fNr->SetXTitle(
"# of track references/cluster");
123 fNr->SetFillColor(kRed+1);
124 fNr->SetFillStyle(3001);
125 fNr->SetDirectory(0);
128 fNt =
new TH1D(
"clusterSize",
"cluster length in strips", 21, -.5, 20.5);
129 fNt->SetXTitle(
"Cluster size [strips]");
130 fNt->SetFillColor(kBlue+1);
131 fNt->SetFillStyle(3001);
132 fNt->SetDirectory(0);
135 fNc =
new TH1D(
"nClusters",
"# clusters per track", 21, -.5, 20.5);
136 fNc->SetXTitle(
"# clusters");
137 fNc->SetFillColor(kGreen+1);
138 fNc->SetFillStyle(3001);
139 fNc->SetDirectory(0);
142 fNcr =
new TH2D(
"clusterVsRefs",
"# clusters vs. # refs",
143 21, -.5, 20.5, 21, -.5, 20.5);
144 fNcr->SetXTitle(
"# References");
145 fNcr->SetYTitle(
"# Clusters");
146 fNcr->SetOption(
"COLZ");
147 fNcr->SetDirectory(0);
156 return AliTrackReference::kFMD;
178 const AliMCParticle* mother,
179 AliTrackReference* ref)
191 Double_t edep, length, dEdep, dLength;
196 normaldEdx=(edep/length)/4.406;
213 if (
fDebug) Info(
"Process",
"New because new sector");
217 if (
fDebug) Info(
"Process",
"New because too long: %d (%d,%d,%d)",
224 Info(
"Process",
"I=%p L=%p D=%d (was %d), R=%c (was %c), " 225 "S=%2d (was %2d) t=%3d (was %3d) nT=%3d/%4d",
256 Info(
"Process",
"New cluster starting at FMD%d%c[%2d,%3d]",
259 Info(
"Process",
"Adding to cluster starting at FMD%d%c[%2d,%3d], " 260 "length=%3d (now in %3d, previous %3d)",
277 const AliMCParticle* mother,
278 AliTrackReference* ref)
const 282 if (w <= 0)
return w;
293 if (old == AliESDFMD::kInvalidMult) old = 0;
297 fOutput->SetMultiplicity(d,r,s,t,old+w);
311 const AliMCEvent& event,
334 for (
UShort_t ed = 1; ed <= 3; ed++) {
336 for (
UShort_t eq = 0; eq < nq; eq++) {
337 Char_t er = (eq == 0 ?
'I' :
'O');
339 UShort_t nt = (eq == 0 ? 512 : 256);
340 for (
UShort_t es = 0; es < ns; es++) {
341 for (
UShort_t et = 0; et < nt; et++) {
344 output.SetEta(ed, er, es, et, eta);
354 #define PFV(N,VALUE) \ 356 AliForwardUtil::PrintName(N); \ 357 std::cout << (VALUE) << std::endl; } while(false) 363 gROOT->IncreaseDirLevel();
365 gROOT->DecreaseDirLevel();
State & operator=(const State &o)
void Clear(Bool_t alsoCount=false)
Longest track through.
static Bool_t GetEtaPhi(UShort_t det, Char_t ring, UShort_t sec, UShort_t str, const TVector3 &ip, Double_t &eta, Double_t &phi)
virtual void CreateOutputObjects(TList *list)
Bool_t Calculate(const AliESDFMD &esd, const AliMCEvent &event, const TVector3 &ip, AliESDFMD &output, TH2D *primary)
AliTrackReference * ProcessRef(AliMCParticle *particle, const AliMCParticle *mother, AliTrackReference *ref)
void EndTrackRefs(Int_t nRefs)
void CreateOutputObjects(TList *list)
virtual Double_t StoreParticle(AliMCParticle *particle, const AliMCParticle *mother, AliTrackReference *ref) const
virtual void Print(Option_t *option="") const
Double_t GetTrackRefTheta(const AliTrackReference *ref) const
Int_t GetDetectorId() const
static void Decode(UInt_t bits, Double_t &edep, Double_t &length)
Class to encode the energy loss and path length of a particle into track reference bits...
AliBaseMCTrackDensity & operator=(const AliBaseMCTrackDensity &o)
void Print(Option_t *option="") const
Double_t StoreParticle(AliMCParticle *particle, const AliMCParticle *mother, AliTrackReference *ref) const
UShort_t fMaxConsequtiveStrips
State.
AliTrackReference * longest
Bool_t ProcessTracks(const AliMCEvent &event, const TVector3 &ip, TH2D *primary)
AliFMDMCTrackDensity & operator=(const AliFMDMCTrackDensity &o)
struct AliFMDMCTrackDensity::State fState
static void Unpack(UInt_t id, UShort_t &det, Char_t &rng, UShort_t &sec, UShort_t &str)