8 #include "AliAnalysisTask.h" 9 #include "AliAnalysisManager.h" 12 #include "AliESDEvent.h" 13 #include "AliESDCaloCluster.h" 14 #include "AliESDInputHandler.h" 16 #include "AliAODPWG4ParticleCorrelation.h" 17 #include "AliAODEvent.h" 18 #include "AliAODHandler.h" 19 #include "AliAODCaloCluster.h" 21 #include "AliAODJet.h" 23 #include "AliAODInputHandler.h" 25 #include "AliAODMCParticle.h" 28 #include "AliAODMCHeader.h" 40 fDeltaAODFileName(""),
41 fGammaCutString("GammaConv"),
42 fPionCutString("GammaConv"),
43 fAODBranchName("GammaConv_gamma"),
44 fAODPWG4Photons(NULL),
55 delete fAODPWG4Photons;
56 fAODPWG4Photons = NULL;
70 fDeltaAODFileName(
""),
71 fGammaCutString(
"GammaConv"),
72 fPionCutString(
"GammaConv"),
73 fAODBranchName(
"GammaConv_gamma"),
74 fAODPWG4Photons(NULL),
79 DefineInput(0, TChain::Class());
83 DefineOutput(1, TList::Class());
95 fAODPWG4Pi0 =
new TClonesArray(
"AliAODPWG4ParticleCorrelation", 0);
113 AliError(
"No AOD event!!");
127 TClonesArray * tracks = aodEvent->GetTracks();
129 cout <<
"No tracks!!!"<<endl;
142 for (
Int_t iPhot = 0; iPhot < convGamma->GetEntriesFast(); iPhot++) {
144 AliAODPWG4ParticleCorrelation * photon = NULL;
154 printf(
"Added conversion photon number %d, pt: %f \n", iPhot, photon->Pt());
160 TClonesArray * pions =
GetPions(aodEvent);
166 for (
Int_t iPhot = 0; iPhot < pions->GetEntriesFast(); iPhot++) {
167 AliAODPWG4ParticleCorrelation * pion = NULL;
177 printf(
"Added conversion pion number %d, pt: %f \n", iPhot, pion->Pt());
191 new((*branch)[branch->GetEntriesFast()]) AliAODPWG4ParticleCorrelation(aodO->Px(), aodO->Py(), aodO->Pz(), aodO->E());
192 AliAODPWG4ParticleCorrelation * photon =
dynamic_cast<AliAODPWG4ParticleCorrelation*
>(branch->Last());
195 photon->SetDetectorTag(detector);
206 new((*branch)[branch->GetEntriesFast()]) AliAODPWG4ParticleCorrelation(pion->Px(), pion->Py(), pion->Pz(), pion->E());
207 AliAODPWG4ParticleCorrelation * pwg4Pion =
dynamic_cast<AliAODPWG4ParticleCorrelation*
>(branch->Last());
209 Int_t tl[4] = {-1, -1, -1, -1};
211 pwg4Pion->SetTrackLabel(tl[0], tl[1], tl[2], tl[3]);
212 pwg4Pion->SetDetectorTag(detector);
213 for(
Int_t i = 0; i < 4; i++) {
214 cout << tl[i] <<
" ";
216 cout <<
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
238 aodEvent = AODEvent();
250 TClonesArray * branch =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(branchName.Data()));
254 if(branch)
return branch;
260 AliAODHandler * aodHandler =
dynamic_cast<AliAODHandler*
>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
262 AliAODExtension * gExt =
dynamic_cast<AliAODExtension*
>(aodHandler->GetExtensions()->FindObject(
fDeltaAODFileName));
265 return dynamic_cast<TClonesArray*
>(gcEvent->FindListObject(branchName.Data()));
294 AliAODTrack * track1 = NULL;
295 AliAODTrack * track2 = NULL;
296 for(
Int_t i = 0; i < tracks->GetEntriesFast(); i++) {
297 AliAODTrack * track =
dynamic_cast<AliAODTrack*
>(tracks->At(i));
299 if(track->GetID() == photon->
GetLabel1()) track1 = track;
300 else if (track->GetID() == photon->
GetLabel2()) track2 = track;
301 if(track1 && track2)
break;
305 if(track1 && track2) {
308 cout <<
"Could not get both tracks!!! labels " << photon->
GetLabel1() <<
" " << photon->
GetLabel2() <<endl;
320 if(photon1 && photon2) {
325 cout <<
"can't find both photons "<< endl;
AliAnalysisTaskGCPartToPWG4Part()
TString fPionCutString
The cut string of the conversion analysis used to produce input AOD.
TString fGammaCutString
File where Gamma Conv AOD is located, if not in default AOD.
virtual ~AliAnalysisTaskGCPartToPWG4Part()
AliAODPWG4ParticleCorrelation * AddToAOD(AliAODConversionPhoton *aodO, TClonesArray *branch, Int_t detector)
AliAODEvent * GetAODEvent()
virtual Int_t GetLabel1() const
TClonesArray * GetConversionGammas(const AliAODEvent *aodEvent) const
TString fDeltaAODFileName
Bool_t BothGammaPresent(const AliAODConversionPhoton *const pion, const TClonesArray *const photons, const TClonesArray *const tracks) const
AliAODPWG4ParticleCorrelation * AddPionToAOD(AliAODConversionPhoton *pion, TClonesArray *branch, Int_t detector)
virtual Int_t GetLabel2() const
TClonesArray * GetAODBranch(const AliAODEvent *aodEvent, TString branchName) const
virtual void UserCreateOutputObjects()
void ProcessConvGamma(const AliAODEvent *const aodEvent)
virtual void UserExec(Option_t *option)
virtual void Terminate(Option_t *)
Bool_t BothTracksPresent(const AliAODConversionPhoton *const photon, const TClonesArray *const tracks) const
TClonesArray * fAODPWG4Pi0
TClonesArray * GetPions(const AliAODEvent *aodEvent) const
TClonesArray * fAODPWG4Photons
TString fAODBranchName
The cut string of the conversion analysis used to produce input AOD.