#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TCanvas.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDPmdTrack.h"
#include "AliESDVertex.h"
#include "AliESDVZERO.h"
#include "AliAnalysisTaskPMD.h"
ClassImp(AliAnalysisTaskPMD)
AliAnalysisTaskPMD::AliAnalysisTaskPMD(const char *name)
: AliAnalysisTaskSE(name),
fESD(0),
fOutputList(0),
fHistTotEvent(0),
fHistTotEventAfterPhySel(0),
fHistTotEventAfterVtx(0),
fHistVtxZ(0),
fHistXYPre(0),
fHistEta(0),
fHistEta1(0),
fHistMultMeas(0),
fHistMultMeas1(0)
{
for(Int_t i=0; i<10; i++){
fHistMultMeasEtaBinA[i] = 0;
fHistMultMeasEtaBinA1[i] = 0;
}
DefineInput(0, TChain::Class());
DefineOutput(1, TList::Class());
}
void AliAnalysisTaskPMD::UserCreateOutputObjects()
{
fOutputList = new TList();
Int_t kNbinsMultA = 50; Float_t XminMultA = -0.5; Float_t XmaxMultA = 49.5;
Int_t kNbinsXY = 200; Float_t XminXY = -100.0; Float_t XmaxXY = 100.0;
Int_t kNBinsEvent = 10; Float_t XminEvent = 0; Float_t XmaxEvent = 10;
Int_t kNBinsEta = 10; Float_t XminEta = 2.1; Float_t XmaxEta = 4.1;
fHistTotEvent = new TH1F("TotEvent","TotEvent",
kNBinsEvent,XminEvent,XmaxEvent);
fOutputList->Add(fHistTotEvent);
fHistTotEventAfterPhySel = new TH1F("TotEventAfterPhySel","TotEventAfterPhySel",
kNBinsEvent,XminEvent,XmaxEvent);
fOutputList->Add(fHistTotEventAfterPhySel);
fHistTotEventAfterVtx = new TH1F("TotEventAfterVtx","TotEventAfterVtx",
kNBinsEvent,XminEvent,XmaxEvent);
fOutputList->Add(fHistTotEventAfterVtx);
fHistVtxZ = new TH1F("VtxZ","VtxZ",100,-50,50);
fOutputList->Add(fHistVtxZ);
fHistXYPre = new TH2F("XYPre","XYPre",kNbinsXY,XminXY,XmaxXY,
kNbinsXY,XminXY,XmaxXY);
fOutputList->Add(fHistXYPre);
fHistEta = new TH1F ("Eta","Eta",kNBinsEta,XminEta,XmaxEta);
fOutputList->Add(fHistEta);
fHistEta1 = new TH1F ("Eta1","Eta1",kNBinsEta,XminEta,XmaxEta);
fOutputList->Add(fHistEta1);
fHistMultMeas = new TH1F("MultM","MultM",100,-0.5,99.5);
fOutputList->Add(fHistMultMeas);
fHistMultMeas1 = new TH1F("MultM1","MultM1",100,-0.5,99.5);
fOutputList->Add(fHistMultMeas1);
Char_t nameM[256], nameM1[256];
for(Int_t i=0; i<10; i++){
sprintf(nameM,"MultM_EtaBin%d",i+1);
fHistMultMeasEtaBinA[i] =
new TH1F(nameM,nameM,kNbinsMultA,
XminMultA,XmaxMultA);
fOutputList->Add(fHistMultMeasEtaBinA[i]);
sprintf(nameM1,"MultM1_EtaBin%d",i+1);
fHistMultMeasEtaBinA1[i] =
new TH1F(nameM1,nameM1,kNbinsMultA,
XminMultA,XmaxMultA);
fOutputList->Add(fHistMultMeasEtaBinA1[i]);
}
}
void AliAnalysisTaskPMD::UserExec(Option_t *)
{
Float_t MipCut1 = 432;
Float_t MipCut2 = 648;
Float_t etacls=0., theta=0., rdist=0.;
Int_t PhotonCls = 0;
Int_t PhotonCls1 = 0;
Int_t PhotonClsAEtaBin[10] = {0};
Int_t PhotonClsAEtaBin1[10] = {0};
fESD = dynamic_cast<AliESDEvent*>(InputEvent());
if (!fESD) {
printf("ERROR: fESD not available\n");
return;
}
fHistTotEvent->Fill(5);
Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
if (! isSelected) return;
fHistTotEventAfterPhySel->Fill(5);
const AliESDVertex *vertex = fESD->GetPrimaryVertex();
Float_t Vz = vertex->GetZ();
Bool_t zVerStatus = vertex->GetStatus();
if(zVerStatus){
fHistVtxZ->Fill(Vz);
if(TMath::Abs(Vz)<10){
fHistTotEventAfterVtx->Fill(5);
Int_t ptracks = fESD->GetNumberOfPmdTracks();
for(Int_t kk=0;kk<ptracks;kk++){
AliESDPmdTrack *pmdtr = fESD->GetPmdTrack(kk);
Int_t det = pmdtr->GetDetector();
Float_t clsX = pmdtr->GetClusterX();
Float_t clsY = pmdtr->GetClusterY();
Float_t clsZ = pmdtr->GetClusterZ();
clsZ -= Vz;
Float_t ncell = pmdtr->GetClusterCells();
Float_t adc = pmdtr->GetClusterADC();
rdist = TMath::Sqrt(clsX*clsX + clsY*clsY);
if(clsZ!=0) theta = TMath::ATan2(rdist,clsZ);
etacls = -TMath::Log(TMath::Tan(0.5*theta));
if(det==0 && adc>72)fHistXYPre->Fill(clsX,clsY);
if(det==0 && adc>MipCut1 && ncell>2){
if(etacls > 2.1 && etacls<= 2.3)PhotonClsAEtaBin[0]++;
if(etacls > 2.3 && etacls<= 2.5)PhotonClsAEtaBin[1]++;
if(etacls > 2.5 && etacls<= 2.7)PhotonClsAEtaBin[2]++;
if(etacls > 2.7 && etacls<= 2.9)PhotonClsAEtaBin[3]++;
if(etacls > 2.9 && etacls<= 3.1)PhotonClsAEtaBin[4]++;
if(etacls > 3.1 && etacls<= 3.3)PhotonClsAEtaBin[5]++;
if(etacls > 3.3 && etacls<= 3.5)PhotonClsAEtaBin[6]++;
if(etacls > 3.5 && etacls<= 3.7)PhotonClsAEtaBin[7]++;
if(etacls > 3.7 && etacls<= 3.9)PhotonClsAEtaBin[8]++;
if(etacls > 3.9 && etacls<= 4.1)PhotonClsAEtaBin[9]++;
if(etacls > 2.3 && etacls<= 3.9)PhotonCls++;
fHistEta->Fill(etacls);
}
if(det==0 && adc>MipCut2 && ncell>2){
if(etacls > 2.1 && etacls<= 2.3)PhotonClsAEtaBin1[0]++;
if(etacls > 2.3 && etacls<= 2.5)PhotonClsAEtaBin1[1]++;
if(etacls > 2.5 && etacls<= 2.7)PhotonClsAEtaBin1[2]++;
if(etacls > 2.7 && etacls<= 2.9)PhotonClsAEtaBin1[3]++;
if(etacls > 2.9 && etacls<= 3.1)PhotonClsAEtaBin1[4]++;
if(etacls > 3.1 && etacls<= 3.3)PhotonClsAEtaBin1[5]++;
if(etacls > 3.3 && etacls<= 3.5)PhotonClsAEtaBin1[6]++;
if(etacls > 3.5 && etacls<= 3.7)PhotonClsAEtaBin1[7]++;
if(etacls > 3.7 && etacls<= 3.9)PhotonClsAEtaBin1[8]++;
if(etacls > 3.9 && etacls<= 4.1)PhotonClsAEtaBin1[9]++;
if(etacls > 2.3 && etacls<= 3.9)PhotonCls1++;
fHistEta1->Fill(etacls);
}
}
for(Int_t i=0; i<10; i++){
fHistMultMeasEtaBinA[i]->Fill(PhotonClsAEtaBin[i]);
fHistMultMeasEtaBinA1[i]->Fill(PhotonClsAEtaBin1[i]);
}
fHistMultMeas->Fill(PhotonCls);
fHistMultMeas1->Fill(PhotonCls1);
}
}
PostData(1, fOutputList);
}
void AliAnalysisTaskPMD::Terminate(Option_t *)
{
fOutputList = dynamic_cast<TList*> (GetOutputData(1));
if (!fOutputList) {
printf("ERROR: Output list not available\n");
return;
}
}
AliAnalysisTaskPMD.cxx:10 AliAnalysisTaskPMD.cxx:11 AliAnalysisTaskPMD.cxx:12 AliAnalysisTaskPMD.cxx:13 AliAnalysisTaskPMD.cxx:14 AliAnalysisTaskPMD.cxx:15 AliAnalysisTaskPMD.cxx:16 AliAnalysisTaskPMD.cxx:17 AliAnalysisTaskPMD.cxx:18 AliAnalysisTaskPMD.cxx:19 AliAnalysisTaskPMD.cxx:20 AliAnalysisTaskPMD.cxx:21 AliAnalysisTaskPMD.cxx:22 AliAnalysisTaskPMD.cxx:23 AliAnalysisTaskPMD.cxx:24 AliAnalysisTaskPMD.cxx:25 AliAnalysisTaskPMD.cxx:26 AliAnalysisTaskPMD.cxx:27 AliAnalysisTaskPMD.cxx:28 AliAnalysisTaskPMD.cxx:29 AliAnalysisTaskPMD.cxx:30 AliAnalysisTaskPMD.cxx:31 AliAnalysisTaskPMD.cxx:32 AliAnalysisTaskPMD.cxx:33 AliAnalysisTaskPMD.cxx:34 AliAnalysisTaskPMD.cxx:35 AliAnalysisTaskPMD.cxx:36 AliAnalysisTaskPMD.cxx:37 AliAnalysisTaskPMD.cxx:38 AliAnalysisTaskPMD.cxx:39 AliAnalysisTaskPMD.cxx:40 AliAnalysisTaskPMD.cxx:41 AliAnalysisTaskPMD.cxx:42 AliAnalysisTaskPMD.cxx:43 AliAnalysisTaskPMD.cxx:44 AliAnalysisTaskPMD.cxx:45 AliAnalysisTaskPMD.cxx:46 AliAnalysisTaskPMD.cxx:47 AliAnalysisTaskPMD.cxx:48 AliAnalysisTaskPMD.cxx:49 AliAnalysisTaskPMD.cxx:50 AliAnalysisTaskPMD.cxx:51 AliAnalysisTaskPMD.cxx:52 AliAnalysisTaskPMD.cxx:53 AliAnalysisTaskPMD.cxx:54 AliAnalysisTaskPMD.cxx:55 AliAnalysisTaskPMD.cxx:56 AliAnalysisTaskPMD.cxx:57 AliAnalysisTaskPMD.cxx:58 AliAnalysisTaskPMD.cxx:59 AliAnalysisTaskPMD.cxx:60 AliAnalysisTaskPMD.cxx:61 AliAnalysisTaskPMD.cxx:62 AliAnalysisTaskPMD.cxx:63 AliAnalysisTaskPMD.cxx:64 AliAnalysisTaskPMD.cxx:65 AliAnalysisTaskPMD.cxx:66 AliAnalysisTaskPMD.cxx:67 AliAnalysisTaskPMD.cxx:68 AliAnalysisTaskPMD.cxx:69 AliAnalysisTaskPMD.cxx:70 AliAnalysisTaskPMD.cxx:71 AliAnalysisTaskPMD.cxx:72 AliAnalysisTaskPMD.cxx:73 AliAnalysisTaskPMD.cxx:74 AliAnalysisTaskPMD.cxx:75 AliAnalysisTaskPMD.cxx:76 AliAnalysisTaskPMD.cxx:77 AliAnalysisTaskPMD.cxx:78 AliAnalysisTaskPMD.cxx:79 AliAnalysisTaskPMD.cxx:80 AliAnalysisTaskPMD.cxx:81 AliAnalysisTaskPMD.cxx:82 AliAnalysisTaskPMD.cxx:83 AliAnalysisTaskPMD.cxx:84 AliAnalysisTaskPMD.cxx:85 AliAnalysisTaskPMD.cxx:86 AliAnalysisTaskPMD.cxx:87 AliAnalysisTaskPMD.cxx:88 AliAnalysisTaskPMD.cxx:89 AliAnalysisTaskPMD.cxx:90 AliAnalysisTaskPMD.cxx:91 AliAnalysisTaskPMD.cxx:92 AliAnalysisTaskPMD.cxx:93 AliAnalysisTaskPMD.cxx:94 AliAnalysisTaskPMD.cxx:95 AliAnalysisTaskPMD.cxx:96 AliAnalysisTaskPMD.cxx:97 AliAnalysisTaskPMD.cxx:98 AliAnalysisTaskPMD.cxx:99 AliAnalysisTaskPMD.cxx:100 AliAnalysisTaskPMD.cxx:101 AliAnalysisTaskPMD.cxx:102 AliAnalysisTaskPMD.cxx:103 AliAnalysisTaskPMD.cxx:104 AliAnalysisTaskPMD.cxx:105 AliAnalysisTaskPMD.cxx:106 AliAnalysisTaskPMD.cxx:107 AliAnalysisTaskPMD.cxx:108 AliAnalysisTaskPMD.cxx:109 AliAnalysisTaskPMD.cxx:110 AliAnalysisTaskPMD.cxx:111 AliAnalysisTaskPMD.cxx:112 AliAnalysisTaskPMD.cxx:113 AliAnalysisTaskPMD.cxx:114 AliAnalysisTaskPMD.cxx:115 AliAnalysisTaskPMD.cxx:116 AliAnalysisTaskPMD.cxx:117 AliAnalysisTaskPMD.cxx:118 AliAnalysisTaskPMD.cxx:119 AliAnalysisTaskPMD.cxx:120 AliAnalysisTaskPMD.cxx:121 AliAnalysisTaskPMD.cxx:122 AliAnalysisTaskPMD.cxx:123 AliAnalysisTaskPMD.cxx:124 AliAnalysisTaskPMD.cxx:125 AliAnalysisTaskPMD.cxx:126 AliAnalysisTaskPMD.cxx:127 AliAnalysisTaskPMD.cxx:128 AliAnalysisTaskPMD.cxx:129 AliAnalysisTaskPMD.cxx:130 AliAnalysisTaskPMD.cxx:131 AliAnalysisTaskPMD.cxx:132 AliAnalysisTaskPMD.cxx:133 AliAnalysisTaskPMD.cxx:134 AliAnalysisTaskPMD.cxx:135 AliAnalysisTaskPMD.cxx:136 AliAnalysisTaskPMD.cxx:137 AliAnalysisTaskPMD.cxx:138 AliAnalysisTaskPMD.cxx:139 AliAnalysisTaskPMD.cxx:140 AliAnalysisTaskPMD.cxx:141 AliAnalysisTaskPMD.cxx:142 AliAnalysisTaskPMD.cxx:143 AliAnalysisTaskPMD.cxx:144 AliAnalysisTaskPMD.cxx:145 AliAnalysisTaskPMD.cxx:146 AliAnalysisTaskPMD.cxx:147 AliAnalysisTaskPMD.cxx:148 AliAnalysisTaskPMD.cxx:149 AliAnalysisTaskPMD.cxx:150 AliAnalysisTaskPMD.cxx:151 AliAnalysisTaskPMD.cxx:152 AliAnalysisTaskPMD.cxx:153 AliAnalysisTaskPMD.cxx:154 AliAnalysisTaskPMD.cxx:155 AliAnalysisTaskPMD.cxx:156 AliAnalysisTaskPMD.cxx:157 AliAnalysisTaskPMD.cxx:158 AliAnalysisTaskPMD.cxx:159 AliAnalysisTaskPMD.cxx:160 AliAnalysisTaskPMD.cxx:161 AliAnalysisTaskPMD.cxx:162 AliAnalysisTaskPMD.cxx:163 AliAnalysisTaskPMD.cxx:164 AliAnalysisTaskPMD.cxx:165 AliAnalysisTaskPMD.cxx:166 AliAnalysisTaskPMD.cxx:167 AliAnalysisTaskPMD.cxx:168 AliAnalysisTaskPMD.cxx:169 AliAnalysisTaskPMD.cxx:170 AliAnalysisTaskPMD.cxx:171 AliAnalysisTaskPMD.cxx:172 AliAnalysisTaskPMD.cxx:173 AliAnalysisTaskPMD.cxx:174 AliAnalysisTaskPMD.cxx:175 AliAnalysisTaskPMD.cxx:176 AliAnalysisTaskPMD.cxx:177 AliAnalysisTaskPMD.cxx:178 AliAnalysisTaskPMD.cxx:179 AliAnalysisTaskPMD.cxx:180 AliAnalysisTaskPMD.cxx:181 AliAnalysisTaskPMD.cxx:182 AliAnalysisTaskPMD.cxx:183 AliAnalysisTaskPMD.cxx:184 AliAnalysisTaskPMD.cxx:185 AliAnalysisTaskPMD.cxx:186 AliAnalysisTaskPMD.cxx:187 AliAnalysisTaskPMD.cxx:188 AliAnalysisTaskPMD.cxx:189 AliAnalysisTaskPMD.cxx:190 AliAnalysisTaskPMD.cxx:191 AliAnalysisTaskPMD.cxx:192 AliAnalysisTaskPMD.cxx:193 AliAnalysisTaskPMD.cxx:194 AliAnalysisTaskPMD.cxx:195 AliAnalysisTaskPMD.cxx:196 AliAnalysisTaskPMD.cxx:197 AliAnalysisTaskPMD.cxx:198 AliAnalysisTaskPMD.cxx:199 AliAnalysisTaskPMD.cxx:200 AliAnalysisTaskPMD.cxx:201