#define AliAnalysisTaskLUT_cxx
#include "Riostream.h"
#include "TChain.h"
#include "TTree.h"
#include "TNtuple.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDMuonTrack.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisTaskLUT.h"
ClassImp(AliAnalysisTaskLUT)
AliAnalysisTaskLUT::AliAnalysisTaskLUT(const char *name) :
AliAnalysisTask(name,""),
fESDEvent(0),
fTracksLUT(0)
{
DefineInput(0, TChain::Class());
DefineOutput(0, TNtuple::Class());
}
void AliAnalysisTaskLUT::ConnectInputData(Option_t *)
{
printf(" ConnectInputData of task %s\n", GetName());
TTree *tinput = (TTree*)GetInputData(0);
fESDEvent = new AliESDEvent();
fESDEvent->ReadFromTree(tinput);
}
void AliAnalysisTaskLUT::CreateOutputObjects()
{
printf(" CreateOutputObjects of task %s\n", GetName());
fTracksLUT = new TNtuple("ntTracksLUT","ntTracksLUT","TrigMask:VertZ:NHit:Circ:StripX:StripY:Dev:Lpt:Hpt:Chi2:Chi2trg:Z:P:Pt:Phi:The:TrackZ:PU:PtU:PhiU:TheU:TrackZU");
}
void AliAnalysisTaskLUT::Exec(Option_t *)
{
Float_t ntvar[22];
Float_t px, py, pz, pt;
Float_t zVertex;
Int_t dev;
if (!fESDEvent) return;
Int_t nTracks = fESDEvent->GetNumberOfMuonTracks();
AliESDVertex* vertex = (AliESDVertex*) fESDEvent->GetVertex();
zVertex = 0.0;
if (vertex) {
zVertex = vertex->GetZ();
}
ULong64_t mask = fESDEvent->GetTriggerMask();
ntvar[ 0] = mask;
ntvar[ 1] = zVertex;
for(Int_t iTracks = 0; iTracks < nTracks; iTracks++) {
AliESDMuonTrack* muonTrack = fESDEvent->GetMuonTrack(iTracks);
if (muonTrack == 0x0) continue;
if (!muonTrack->GetMatchTrigger()) continue;
dev = muonTrack->LoDev();
dev *= (Int_t)(TMath::Sign(1.0,muonTrack->GetInverseBendingMomentum()));
dev += 15;
ntvar[ 2] = muonTrack->GetNHit();
ntvar[ 3] = muonTrack->LoCircuit();
ntvar[ 4] = muonTrack->LoStripX();
ntvar[ 5] = muonTrack->LoStripY();
ntvar[ 6] = dev;
ntvar[ 7] = muonTrack->LoLpt();
ntvar[ 8] = muonTrack->LoHpt();
ntvar[ 9] = muonTrack->GetChi2() / (2.0 * muonTrack->GetNHit() - 5);
ntvar[10] = muonTrack->GetChi2MatchTrigger();
ntvar[11] = TMath::Sign(1.,muonTrack->GetInverseBendingMomentum());
px = muonTrack->Px();
py = muonTrack->Py();
pz = muonTrack->Pz();
pt = TMath::Sqrt(px*px+py*py);
ntvar[12] = muonTrack->P();
ntvar[13] = TMath::Sqrt(px*px+py*py);
ntvar[14] = TMath::ATan2(py,px)*180./TMath::Pi();
ntvar[15] = TMath::ATan2(pt,pz)*180./TMath::Pi();
ntvar[16] = muonTrack->GetZ();
px = muonTrack->PxUncorrected();
py = muonTrack->PyUncorrected();
pz = muonTrack->PzUncorrected();
pt = TMath::Sqrt(px*px+py*py);
ntvar[17] = muonTrack->PUncorrected();
ntvar[18] = TMath::Sqrt(px*px+py*py);
ntvar[19] = TMath::ATan2(py,px)*180./TMath::Pi();
ntvar[20] = TMath::ATan2(pt,pz)*180./TMath::Pi();
ntvar[21] = muonTrack->GetZUncorrected();
fTracksLUT->Fill(ntvar);
}
PostData(0, fTracksLUT);
}
void AliAnalysisTaskLUT::Terminate(Option_t *) {
}
AliAnalysisTaskLUT.cxx:10 AliAnalysisTaskLUT.cxx:11 AliAnalysisTaskLUT.cxx:12 AliAnalysisTaskLUT.cxx:13 AliAnalysisTaskLUT.cxx:14 AliAnalysisTaskLUT.cxx:15 AliAnalysisTaskLUT.cxx:16 AliAnalysisTaskLUT.cxx:17 AliAnalysisTaskLUT.cxx:18 AliAnalysisTaskLUT.cxx:19 AliAnalysisTaskLUT.cxx:20 AliAnalysisTaskLUT.cxx:21 AliAnalysisTaskLUT.cxx:22 AliAnalysisTaskLUT.cxx:23 AliAnalysisTaskLUT.cxx:24 AliAnalysisTaskLUT.cxx:25 AliAnalysisTaskLUT.cxx:26 AliAnalysisTaskLUT.cxx:27 AliAnalysisTaskLUT.cxx:28 AliAnalysisTaskLUT.cxx:29 AliAnalysisTaskLUT.cxx:30 AliAnalysisTaskLUT.cxx:31 AliAnalysisTaskLUT.cxx:32 AliAnalysisTaskLUT.cxx:33 AliAnalysisTaskLUT.cxx:34 AliAnalysisTaskLUT.cxx:35 AliAnalysisTaskLUT.cxx:36 AliAnalysisTaskLUT.cxx:37 AliAnalysisTaskLUT.cxx:38 AliAnalysisTaskLUT.cxx:39 AliAnalysisTaskLUT.cxx:40 AliAnalysisTaskLUT.cxx:41 AliAnalysisTaskLUT.cxx:42 AliAnalysisTaskLUT.cxx:43 AliAnalysisTaskLUT.cxx:44 AliAnalysisTaskLUT.cxx:45 AliAnalysisTaskLUT.cxx:46 AliAnalysisTaskLUT.cxx:47 AliAnalysisTaskLUT.cxx:48 AliAnalysisTaskLUT.cxx:49 AliAnalysisTaskLUT.cxx:50 AliAnalysisTaskLUT.cxx:51 AliAnalysisTaskLUT.cxx:52 AliAnalysisTaskLUT.cxx:53 AliAnalysisTaskLUT.cxx:54 AliAnalysisTaskLUT.cxx:55 AliAnalysisTaskLUT.cxx:56 AliAnalysisTaskLUT.cxx:57 AliAnalysisTaskLUT.cxx:58 AliAnalysisTaskLUT.cxx:59 AliAnalysisTaskLUT.cxx:60 AliAnalysisTaskLUT.cxx:61 AliAnalysisTaskLUT.cxx:62 AliAnalysisTaskLUT.cxx:63 AliAnalysisTaskLUT.cxx:64 AliAnalysisTaskLUT.cxx:65 AliAnalysisTaskLUT.cxx:66 AliAnalysisTaskLUT.cxx:67 AliAnalysisTaskLUT.cxx:68 AliAnalysisTaskLUT.cxx:69 AliAnalysisTaskLUT.cxx:70 AliAnalysisTaskLUT.cxx:71 AliAnalysisTaskLUT.cxx:72 AliAnalysisTaskLUT.cxx:73 AliAnalysisTaskLUT.cxx:74 AliAnalysisTaskLUT.cxx:75 AliAnalysisTaskLUT.cxx:76 AliAnalysisTaskLUT.cxx:77 AliAnalysisTaskLUT.cxx:78 AliAnalysisTaskLUT.cxx:79 AliAnalysisTaskLUT.cxx:80 AliAnalysisTaskLUT.cxx:81 AliAnalysisTaskLUT.cxx:82 AliAnalysisTaskLUT.cxx:83 AliAnalysisTaskLUT.cxx:84 AliAnalysisTaskLUT.cxx:85 AliAnalysisTaskLUT.cxx:86 AliAnalysisTaskLUT.cxx:87 AliAnalysisTaskLUT.cxx:88 AliAnalysisTaskLUT.cxx:89 AliAnalysisTaskLUT.cxx:90 AliAnalysisTaskLUT.cxx:91 AliAnalysisTaskLUT.cxx:92 AliAnalysisTaskLUT.cxx:93 AliAnalysisTaskLUT.cxx:94 AliAnalysisTaskLUT.cxx:95 AliAnalysisTaskLUT.cxx:96 AliAnalysisTaskLUT.cxx:97 AliAnalysisTaskLUT.cxx:98 AliAnalysisTaskLUT.cxx:99 AliAnalysisTaskLUT.cxx:100 AliAnalysisTaskLUT.cxx:101 AliAnalysisTaskLUT.cxx:102 AliAnalysisTaskLUT.cxx:103 AliAnalysisTaskLUT.cxx:104 AliAnalysisTaskLUT.cxx:105 AliAnalysisTaskLUT.cxx:106 AliAnalysisTaskLUT.cxx:107 AliAnalysisTaskLUT.cxx:108 AliAnalysisTaskLUT.cxx:109 AliAnalysisTaskLUT.cxx:110 AliAnalysisTaskLUT.cxx:111 AliAnalysisTaskLUT.cxx:112 AliAnalysisTaskLUT.cxx:113 AliAnalysisTaskLUT.cxx:114 AliAnalysisTaskLUT.cxx:115 AliAnalysisTaskLUT.cxx:116 AliAnalysisTaskLUT.cxx:117 AliAnalysisTaskLUT.cxx:118 AliAnalysisTaskLUT.cxx:119 AliAnalysisTaskLUT.cxx:120 AliAnalysisTaskLUT.cxx:121 AliAnalysisTaskLUT.cxx:122 AliAnalysisTaskLUT.cxx:123 AliAnalysisTaskLUT.cxx:124 AliAnalysisTaskLUT.cxx:125 AliAnalysisTaskLUT.cxx:126 AliAnalysisTaskLUT.cxx:127 AliAnalysisTaskLUT.cxx:128 AliAnalysisTaskLUT.cxx:129 AliAnalysisTaskLUT.cxx:130 AliAnalysisTaskLUT.cxx:131 AliAnalysisTaskLUT.cxx:132 AliAnalysisTaskLUT.cxx:133 AliAnalysisTaskLUT.cxx:134 AliAnalysisTaskLUT.cxx:135 AliAnalysisTaskLUT.cxx:136 AliAnalysisTaskLUT.cxx:137 AliAnalysisTaskLUT.cxx:138 AliAnalysisTaskLUT.cxx:139 AliAnalysisTaskLUT.cxx:140 AliAnalysisTaskLUT.cxx:141 AliAnalysisTaskLUT.cxx:142 AliAnalysisTaskLUT.cxx:143 AliAnalysisTaskLUT.cxx:144 AliAnalysisTaskLUT.cxx:145 AliAnalysisTaskLUT.cxx:146 AliAnalysisTaskLUT.cxx:147 AliAnalysisTaskLUT.cxx:148 AliAnalysisTaskLUT.cxx:149 AliAnalysisTaskLUT.cxx:150