3 // Jet randomizer task.
5 // Author: S.Aiola, C.Loizides
7 #include <TClonesArray.h>
8 #include <TLorentzVector.h>
11 #include "AliAnalysisManager.h"
12 #include "AliVEvent.h"
13 #include "AliVCluster.h"
14 #include "AliEMCALDigit.h"
15 #include "AliEMCALRecPoint.h"
16 #include "AliPicoTrack.h"
17 #include "AliEMCALGeometry.h"
20 #include "AliJetRandomizerTask.h"
22 ClassImp(AliJetRandomizerTask)
24 //________________________________________________________________________
25 AliJetRandomizerTask::AliJetRandomizerTask() :
26 AliJetModelBaseTask("AliJetRandomizerTask"),
29 // Default constructor.
31 SetSuffix("Randomized");
35 //________________________________________________________________________
36 AliJetRandomizerTask::AliJetRandomizerTask(const char *name) :
37 AliJetModelBaseTask(name),
40 // Standard constructor.
42 SetSuffix("Randomized");
46 //________________________________________________________________________
47 AliJetRandomizerTask::~AliJetRandomizerTask()
52 //________________________________________________________________________
53 void AliJetRandomizerTask::UserExec(Option_t *)
58 AliWarning("fCopyArray == kFALSE not allowed for AliJetRandomizerTask, will set kTRUE");
70 //________________________________________________________________________
71 void AliJetRandomizerTask::Run()
73 // Randomize particles.
77 if (fNClusters > 0 && fOutClusters) {
78 const Int_t nClusters = fClusters->GetEntriesFast();
79 for (Int_t i = 0; i < nClusters; ++i) {
80 AliVCluster *cluster = dynamic_cast<AliVCluster*>(fClusters->At(i));
83 if (!cluster->IsEMCAL())
87 cluster->GetPosition(pos);
88 TVector3 clusVec(pos);
89 if (fRandomizeEta == 0)
91 else if (fRandomizeEta == 2)
93 AddCluster(cluster->E(), eta);
97 if (fNTracks > 0 && fOutTracks) {
98 const Int_t nTracks = fTracks->GetEntriesFast();
99 for (Int_t i = 0; i < nTracks; ++i) {
100 AliPicoTrack *track = dynamic_cast<AliPicoTrack*>(fTracks->At(i));
103 if (fRandomizeEta == 0)
105 else if (fRandomizeEta == 2)
107 AddTrack(track->Pt(), eta);