24 #include "AliAnalysisManager.h" 25 #include "TParticle.h" 27 #include "AliPIDResponse.h" 28 #include "AliESDtrackCuts.h" 29 #include "AliAODEvent.h" 41 fV0ReaderName("V0ReaderV1"),
42 fConversionGammas(NULL),
44 fConversionCuts(NULL),
46 fTreeResolution(NULL),
50 fNESDtracksEta0914(0),
59 fResolutionList(NULL),
70 fV0ReaderName(
"V0ReaderV1"),
71 fConversionGammas(NULL),
73 fConversionCuts(NULL),
75 fTreeResolution(NULL),
79 fNESDtracksEta0914(0),
88 fResolutionList(NULL),
94 DefineInput(0, TChain::Class());
95 DefineOutput(1, TList::Class());
163 if(eventQuality != 0){
194 if(
fESDEvent->GetPrimaryVertexTracks()->GetNContributors()>0) {
230 if (gamma ==NULL)
continue;
246 if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1))
continue;
249 if(posDaughter == NULL || negDaughter == NULL){
251 }
else if(posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)){
256 if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode();
else continue;
258 if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode();
else continue;
263 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
265 else if ( !(pdgCodeNeg==pdgCodePos)){
269 else if (pdgCode == 221)
271 else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
292 Int_t fNumberOfESDTracks = 0;
293 if(fInputEvent->IsA()==AliESDEvent::Class()){
296 Bool_t selectPrimaries=kTRUE;
297 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
298 EsdTrackCuts->SetMaxDCAToVertexZ(2);
299 EsdTrackCuts->SetEtaRange(-0.9, 0.9);
300 EsdTrackCuts->SetPtRange(0.15);
302 for(
Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
303 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
304 if(!curTrack)
continue;
305 if(EsdTrackCuts->AcceptTrack(curTrack) ){
309 if( (isFromMBHeader < 1) )
continue;
312 fNumberOfESDTracks++;
317 }
else if(fInputEvent->IsA()==AliAODEvent::Class()){
318 for(
Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
319 AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
320 if(!curTrack->IsPrimaryCandidate())
continue;
321 if(TMath::Abs(curTrack->Eta())>0.9)
continue;
322 if(curTrack->Pt()<0.15)
continue;
323 if(TMath::Abs(curTrack->ZAtDCA())>2)
continue;
324 fNumberOfESDTracks++;
328 return fNumberOfESDTracks;
333 Int_t fNumberOfESDTracks = 0;
334 if(fInputEvent->IsA()==AliESDEvent::Class()){
337 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
338 EsdTrackCuts->SetMaxDCAToVertexZ(5);
339 EsdTrackCuts->SetEtaRange(0.9, 1.4);
340 EsdTrackCuts->SetPtRange(0.15);
342 for(
Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
343 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
344 if(!curTrack)
continue;
345 if(EsdTrackCuts->AcceptTrack(curTrack) ){
349 if( (isFromMBHeader < 1) )
continue;
352 fNumberOfESDTracks++;
355 EsdTrackCuts->SetEtaRange(-1.4, -0.9);
356 for(
Int_t iTracks = 0; iTracks <
fESDEvent->GetNumberOfTracks(); iTracks++){
357 AliESDtrack* curTrack =
fESDEvent->GetTrack(iTracks);
358 if(!curTrack)
continue;
359 if(EsdTrackCuts->AcceptTrack(curTrack) ){
363 if( (isFromMBHeader < 1) )
continue;
366 fNumberOfESDTracks++;
371 }
else if(fInputEvent->IsA()==AliAODEvent::Class()){
372 for(
Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
373 AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
374 if(TMath::Abs(curTrack->Eta())<0.9 || TMath::Abs(curTrack->Eta())>1.4 )
continue;
375 if(curTrack->Pt()<0.15)
continue;
376 if(TMath::Abs(curTrack->ZAtDCA())>5)
continue;
377 fNumberOfESDTracks++;
381 return fNumberOfESDTracks;
TParticle * GetMCParticle(AliMCEvent *mcEvent)
void SetPeriodEnum(TString periodName)
virtual Double_t GetPhotonPhi() const
Int_t IsParticleFromBGEvent(Int_t index, AliMCEvent *mcEvent, AliVEvent *event=0x0, Int_t debug=0)
Cut functions.
Int_t GetMCLabelPositive() const
AliAnalysisTaskResolution()
Int_t GetSignalRejection()
AliConversionPhotonCuts * fConversionCuts
AliV0ReaderV1 * fV0Reader
PeriodVar GetPeriodEnum()
void SetPeriodEnumExplicit(PeriodVar periodEnum)
Double_t GetConversionZ() const
TParticle * GetPositiveMCDaughter(AliMCEvent *mcEvent)
virtual void UserExec(Option_t *option)
TParticle * GetNegativeMCDaughter(AliMCEvent *mcEvent)
Float_t GetChi2perNDF() const
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *event)
AliConvEventCuts * fEventCuts
virtual void Terminate(Option_t *)
Bool_t IsCentralitySelected(AliVEvent *event, AliMCEvent *mcEvent)
TClonesArray * fConversionGammas
virtual Double_t GetPhotonEta() const
Int_t GetMCLabelNegative() const
virtual ~AliAnalysisTaskResolution()
TClonesArray * GetReconstructedGammas() const
virtual Double_t GetPhotonPt() const
TList * GetAcceptedHeader()
Class handling all kinds of selection cuts for Gamma Conversion analysis.
AliConvEventCuts * GetEventCuts()
virtual void UserCreateOutputObjects()
Double_t GetConversionRadius() const
Bool_t PhotonIsSelected(AliConversionPhotonBase *photon, AliVEvent *event)