]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx
integrate mc jets
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliJetRandomizerTask.cxx
1 // $Id$
2 //
3 // Jet embedding task.
4 //
5 // Author: Salvatore Aiola, Constantin Loizides
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
22 ClassImp(AliJetRandomizerTask)
23
24 //________________________________________________________________________
25 AliJetRandomizerTask::AliJetRandomizerTask() : 
26   AliJetModelBaseTask("AliJetRandomizerTask")
27 {
28   // Default constructor.
29   SetSuffix("Randomized");
30 }
31
32 //________________________________________________________________________
33 AliJetRandomizerTask::AliJetRandomizerTask(const char *name) : 
34   AliJetModelBaseTask(name)
35 {
36   // Standard constructor.
37   SetSuffix("Randomized");
38 }
39
40 //________________________________________________________________________
41 AliJetRandomizerTask::~AliJetRandomizerTask()
42 {
43   // Destructor
44 }
45
46 //________________________________________________________________________
47 void AliJetRandomizerTask::Run() 
48 {
49   // Randomize particles.
50
51   if (fNClusters > 0 && fOutClusters) {
52     const Int_t nClusters = fClusters->GetEntriesFast();
53     for (Int_t i = 0; i < nClusters; ++i) {
54       AliVCluster *cluster = dynamic_cast<AliVCluster*>(fClusters->At(i));
55       if (!cluster)
56         continue;
57       if (!cluster->IsEMCAL())
58         continue;
59
60       Float_t pos[3];
61       cluster->GetPosition(pos);
62       TVector3 clusVec(pos);
63
64       AddCluster(cluster->E(), clusVec.Eta());
65     }
66   }
67  
68   if (fNTracks > 0 && fOutTracks) {
69     const Int_t nTracks = fTracks->GetEntriesFast();
70     for (Int_t i = 0; i < nTracks; ++i) {
71       AliPicoTrack *track = dynamic_cast<AliPicoTrack*>(fTracks->At(i));
72       if (!track)
73         continue;
74
75       AddTrack(track->Pt(), track->Eta());
76     }
77   }
78 }
79
80 //________________________________________________________________________
81 void AliJetRandomizerTask::UserExec(Option_t *) 
82 {
83   // Execute per event.
84
85   if (!fCopyArray) {
86     AliWarning("fCopyArray == kFALSE not allowed for AliJetRandomizerTask, will set kTRUE");
87     fCopyArray = kTRUE;
88   }
89
90   Init();
91
92   Run();
93 }