22 #include <AliESDEvent.h> 23 #include <AliAODEvent.h> 24 #include "AliESDVertex.h" 25 #include "AliAODVertex.h" 26 #include <AliAODTrack.h> 27 #include <TClonesArray.h> 34 AliAnalysisTaskSE("
AliAnalysisTaskChargedJetsHadronToy"), fCreateUE(1), fCreateJets(1), fUEMultDistribution(0), fUEDistribution(0), fUEMultiplicity(1000), fGeneratedJetParticleDistribution(0), fGeneratedJetPtDistribution(0), fGeneratedJetCount(1), fGeneratedJetPtMin(20.), fGeneratedJetPtMax(30.), fGeneratedJetWidthPhi(0.2), fGeneratedJetWidthEta(0.2), fGeneratedJetMinEta(-0.9), fGeneratedJetMaxEta(0.9), fInputArrTracks(0), fInputArrTracksName(""), fOutputArrTracks(0), fOutputArrTracksName(""), fGeneratedJetsArr(0), fGeneratedJetsArrName(""), fDistEtaGaussian(0), fDistPhiGaussian(0), fRandom(), fInitialized()
74 AliFatal(Form(
"Input array has track type %s. Only AliAODTracks are supported.",
fInputArrTracks->GetClass()->GetName()));
79 AliFatal(Form(
"Output array '%s' already exists in the event! Rename it.",
fOutputArrTracksName.Data()));
81 AliFatal(Form(
"Output array '%s' already exists in the event! Rename it.",
fGeneratedJetsArrName.Data()));
93 std::cout <<
"\n### Distribution for the UE not given -- using default thermal distribution ###\n\n";
107 std::cout <<
"\n### Distribution for the particles in jets not given -- using default power law distribution ###\n\n";
115 std::cout <<
"\n### Distribution for the jet pt not given -- only min jet pT ###\n\n";
122 if(i < minBin || i > maxBin)
160 if(dynamic_cast<AliESDEvent*>(InputEvent()))
162 if(!(dynamic_cast<AliESDEvent*>(InputEvent()))->GetPrimaryVertexTracks()->GetNContributors())
163 static_cast<AliESDEvent*
>(fInputEvent)->SetPrimaryVertexTracks(
new AliESDVertex(0.,0., 100));
165 else if(dynamic_cast<AliAODEvent*>(InputEvent()))
167 if( (!(dynamic_cast<AliAODEvent*>(InputEvent()))->GetPrimaryVertex()) || (!(
dynamic_cast<AliAODEvent*
>(InputEvent()))->GetPrimaryVertex()->GetNContributors()) )
170 p[0] = 0.; p[1] = 0.; p[2] = 0.;
171 AliAODVertex* vertex =
new AliAODVertex(p,1.);
172 vertex->SetNContributors(100);
173 vertex->SetName(
"PrimaryVertex");
174 static_cast<AliAODEvent*
>(fInputEvent)->AddVertex(vertex);
191 for(
Int_t i=0;i<UEmultiplicity; i++)
195 Double_t trackTheta = 2.*atan(exp(-trackEta));
199 if(trackCharge>0) trackCharge = 1;
else trackCharge = -1;
202 new ((*fOutputArrTracks)[count]) AliAODTrack();
205 static_cast<AliAODTrack*
>(
fOutputArrTracks->At(count))->SetTheta(trackTheta);
206 static_cast<AliAODTrack*
>(
fOutputArrTracks->At(count))->SetCharge(trackCharge);
208 UEthrownPt += trackPt;
228 Int_t particlesInJet = 0;
230 while(JETthrownPt < jetPt)
234 Double_t trackTheta = 2.*atan(exp(-trackEta));
237 if(trackCharge>0) trackCharge = 1;
else trackCharge = -1;
240 new ((*fOutputArrTracks)[count]) AliAODTrack();
243 static_cast<AliAODTrack*
>(
fOutputArrTracks->At(count))->SetTheta(trackTheta);
244 static_cast<AliAODTrack*
>(
fOutputArrTracks->At(count))->SetCharge(trackCharge);
248 JETthrownPt += trackPt;
252 new ((*fGeneratedJetsArr)[i])
AliEmcalJet(JETthrownPt, jetEta, jetPhi, 0);
256 std::cout << Form(
"Event has been generated using %3i particles UE (pT density: %5.2f). ", UEmultiplicity, UEthrownPt/(TMath::TwoPi()*(etaMax-etaMin))) << std::endl;
257 std::cout << Form(
" %i embedded gaussian jets (pT density: %5.2f). ",
fGeneratedJetCount, JETthrownPt/(TMath::TwoPi()*(etaMax-etaMin))) << std::endl;
TF1 * fGeneratedJetParticleDistribution
Double_t fGeneratedJetWidthEta
TF1 * fDistPhiGaussian
function for gaussian distribution in toy
TH1 * fGeneratedJetPtDistribution
Double_t fGeneratedJetMaxEta
TRandom3 * fRandom
function for gaussian distribution in toy
TClonesArray * fInputArrTracks
Double_t fGeneratedJetPtMin
TString fInputArrTracksName
input array containing tracks from events
Bool_t fInitialized
random number generator
virtual void UserCreateOutputObjects()
Double_t fGeneratedJetPtMax
TString fOutputArrTracksName
array holding tracks from toy model
TString fGeneratedJetsArrName
array holding generated jets from toy model
TH1 * fUEMultDistribution
TClonesArray * fOutputArrTracks
Represent a jet reconstructed using the EMCal jet framework.
virtual ~AliAnalysisTaskChargedJetsHadronToy()
Double_t fGeneratedJetMinEta
TClonesArray * fGeneratedJetsArr
virtual void UserExec(Option_t *)
Double_t fGeneratedJetWidthPhi