]>
Commit | Line | Data |
---|---|---|
762e8424 | 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) { | |
8613f8d9 | 52 | const Int_t nClusters = fClusters->GetEntriesFast(); |
762e8424 | 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; | |
8613f8d9 | 59 | |
60 | Float_t pos[3]; | |
61 | cluster->GetPosition(pos); | |
62 | TVector3 clusVec(pos); | |
63 | ||
64 | AddCluster(cluster->E(), clusVec.Eta()); | |
762e8424 | 65 | } |
66 | } | |
67 | ||
68 | if (fNTracks > 0 && fOutTracks) { | |
8613f8d9 | 69 | const Int_t nTracks = fTracks->GetEntriesFast(); |
762e8424 | 70 | for (Int_t i = 0; i < nTracks; ++i) { |
71 | AliPicoTrack *track = dynamic_cast<AliPicoTrack*>(fTracks->At(i)); | |
72 | if (!track) | |
73 | continue; | |
8613f8d9 | 74 | |
75 | AddTrack(track->Pt(), track->Eta()); | |
762e8424 | 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 | } |