]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetRandomizerTask.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetRandomizerTask.cxx
CommitLineData
762e8424 1// $Id$
2//
297edd60 3// Jet randomizer task.
762e8424 4//
297edd60 5// Author: S.Aiola, C.Loizides
762e8424 6
7#include <TClonesArray.h>
8#include <TLorentzVector.h>
9#include <TRandom3.h>
10
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"
18#include "AliLog.h"
19
20#include "AliJetRandomizerTask.h"
21
22ClassImp(AliJetRandomizerTask)
23
24//________________________________________________________________________
25AliJetRandomizerTask::AliJetRandomizerTask() :
58285fc6 26 AliJetModelBaseTask("AliJetRandomizerTask"),
27 fRandomizeEta(0)
762e8424 28{
29 // Default constructor.
5f93a9f5 30
762e8424 31 SetSuffix("Randomized");
7f76e479 32 SetMarkMC(0);
762e8424 33}
34
35//________________________________________________________________________
36AliJetRandomizerTask::AliJetRandomizerTask(const char *name) :
58285fc6 37 AliJetModelBaseTask(name),
38 fRandomizeEta(0)
762e8424 39{
40 // Standard constructor.
5f93a9f5 41
762e8424 42 SetSuffix("Randomized");
7f76e479 43 SetMarkMC(0);
762e8424 44}
45
46//________________________________________________________________________
47AliJetRandomizerTask::~AliJetRandomizerTask()
48{
49 // Destructor
50}
51
ffe32451 52//________________________________________________________________________
53void AliJetRandomizerTask::UserExec(Option_t *)
54{
55 // Execute per event.
56
57 if (!fCopyArray) {
58 AliWarning("fCopyArray == kFALSE not allowed for AliJetRandomizerTask, will set kTRUE");
59 fCopyArray = kTRUE;
60 }
61
62 if (!fIsInit) {
63 ExecOnce();
64 fIsInit = 1;
65 }
66
67 Run();
68}
69
762e8424 70//________________________________________________________________________
71void AliJetRandomizerTask::Run()
72{
73 // Randomize particles.
74
58285fc6 75 Double_t eta = -999;
76
762e8424 77 if (fNClusters > 0 && fOutClusters) {
8613f8d9 78 const Int_t nClusters = fClusters->GetEntriesFast();
762e8424 79 for (Int_t i = 0; i < nClusters; ++i) {
80 AliVCluster *cluster = dynamic_cast<AliVCluster*>(fClusters->At(i));
81 if (!cluster)
82 continue;
83 if (!cluster->IsEMCAL())
84 continue;
8613f8d9 85
86 Float_t pos[3];
87 cluster->GetPosition(pos);
88 TVector3 clusVec(pos);
58285fc6 89 if (fRandomizeEta == 0)
90 eta = clusVec.Eta();
91 else if (fRandomizeEta == 2)
92 eta = -clusVec.Eta();
93 AddCluster(cluster->E(), eta);
762e8424 94 }
95 }
96
97 if (fNTracks > 0 && fOutTracks) {
8613f8d9 98 const Int_t nTracks = fTracks->GetEntriesFast();
762e8424 99 for (Int_t i = 0; i < nTracks; ++i) {
100 AliPicoTrack *track = dynamic_cast<AliPicoTrack*>(fTracks->At(i));
101 if (!track)
102 continue;
58285fc6 103 if (fRandomizeEta == 0)
104 eta = track->Eta();
105 else if (fRandomizeEta == 2)
106 eta = -track->Eta();
107 AddTrack(track->Pt(), eta);
762e8424 108 }
109 }
110}