5 # include <TParticle.h>
6 # include <TObjArray.h>
36 "Charged particle pseudo-rapidity density",
37 nEta, -maxEta, +maxEta);
39 eta->SetXTitle(
"#it{#eta}");
40 eta->SetYTitle(
"1/N d#it{N}_{ch}/d#it{#eta}");
41 eta->SetMarkerColor(kRed+2);
42 eta->SetMarkerStyle(20);
52 Info(
"SlaveBegin",
"Making dN/deta histogram");
54 fdNdeta->SetMarkerColor(kBlack);
68 Double_t theta = TMath::ATan2(pT, pZ);
69 Double_t eta = (pT < 1e-10 ? 1024 : -TMath::Log(TMath::Tan(theta/2)));
70 if (TMath::Abs(eta) > 1000)
return false;
85 Warning(
"Terminate",
"No events selected");
91 Warning(
"Terminate",
"No dN/deta histogram found");
94 Printf(
"A total of %ld events",
fOK);
110 m1->SetUniqueID(0x8);
134 :
Base(verbose, monitor)
164 :
Base(verbose,monitor)
189 :
Base(verbose,monitor)
218 :
Base(verbose,monitor),
302 Printf(
"Centrality %6.2f-%6.2f (bin %4d) "
303 "Nch=%8.1f/%4.2f=%8.1f out=%s (%d)",
309 Int_t(out->GetBinContent(0)));
318 out->SetBinContent(0, out->GetBinContent(0)+1);
331 Warning(
"Terminate",
"No events selected");
349 m3->SetUniqueID(0x8);
381 Double_t bins[]={ 0, 3, 6, 9, 14, 19, 24, 29, 39, 49, 59, 69, 79, 89, 99};
414 if (t.EqualTo(
"INEL"))
return new dNdeta::INEL(verbose,monitor);
415 else if (t.EqualTo(
"NSD"))
return new dNdeta::NSD(verbose,monitor);
416 else if (t.EqualTo(
"INELGt0"))
return new dNdeta::INELGt0(verbose,monitor);
417 else if (t.BeginsWith(
"MULT") || t.BeginsWith(
"CENT")) {
419 if (!(w.BeginsWith(
"RefMult") ||
420 w.BeginsWith(
"ZNA") ||
421 w.BeginsWith(
"ZNC") ||
422 w.BeginsWith(
"ZPA") ||
423 w.BeginsWith(
"ZPC") ||
424 w.BeginsWith(
"V0M") ||
425 w.BeginsWith(
"V0A") ||
426 w.BeginsWith(
"V0C") ||
429 Printf(
"Warning: dNdetaMaker::Make: Unknown estimator: %s",
433 if (t.BeginsWith(
"MULT"))
438 Printf(
"Error: dNdetaMaker::Run: Invalid spec: %s", t.Data());
447 Printf(
" INEL - inelastic");
448 Printf(
" INELGt0 - inelastic with at least 1 particle in |eta|<1");
449 Printf(
" NSD - Non-single diffractive");
450 Printf(
" CENT<est> - Centrality classes. <est> is one of ");
451 Printf(
" ZNA - ZNA signal");
452 Printf(
" ZNC - ZNC signal");
453 Printf(
" ZPA - ZPA signal");
454 Printf(
" ZPC - ZPC signal");
455 Printf(
" V0M - V0-A + -C");
456 Printf(
" V0A - V0-A");
457 Printf(
" V0C - V0-C");
462 const char*
Script()
const {
return __FILE__; }
470 #pragma link C++ nestedclasses;
471 #pragma link C++ namespace dNdeta;
TObject * GetOutputObject(const char *name, TClass *cls)
virtual Bool_t ProcessHeader()
virtual Bool_t ProcessParticle(const TParticle *p)
Cent(const char *method="V0M", Bool_t verbose=true, Int_t monitor=0)
FastShortHeader * fHeader
virtual Bool_t SetupEstimator()
This script defines classes for looping over the data produced by FastSim.C.
NSD(Bool_t verbose=false, Int_t monitor=0)
virtual Bool_t ProcessHeader()
virtual void Fill(Double_t eta)
void CreateHistos(TCollection *output, TH1D *(*callback)())
dNdetaMaker * _dNdetaMaker
const char * Script() const
virtual void Clear(Option_t *option="")
virtual TList * GetMonitorObjects()
void SetCentAxis(Int_t n, Double_t low, Double_t high)
virtual Bool_t SetupEstimator()
virtual void SlaveBegin(TTree *t)
static TH1D * CreatedNdeta()
virtual Bool_t ProcessHeader()
Base(Bool_t verbose=false, Int_t monitor=0)
Double_t GetCentrality() const
virtual void ProcessParticles()
Mult(const char *method="RefMult00d80", Bool_t verbose=false, Int_t monitor=0)
INEL(Bool_t verbose=false, Int_t monitor=0)
virtual Bool_t ProcessHeader()
void CreateDiagnostics(TCollection *output, TH1 *centHist)
Bool_t Finalize(TCollection *output, Long_t minEvents)
Int_t CheckCentrality(Double_t cent, Double_t mult, Double_t b, Double_t nPart, Double_t nBin)
virtual void ProcessParticles()
INELGt0(Bool_t verbose=false, Int_t monitor=0)
FastAnalysis * Make(const TString &subtype, Int_t monitor, Bool_t verbose, TString &uopt)
virtual TList * GetMonitorObjects()
Maker(const char *type="")
virtual TH1 * CreateSingle()
virtual void SlaveBegin(TTree *)
virtual void Clear(Option_t *option="")