24 #include "AliAnalysisManager.h" 25 #include "TParticle.h" 27 #include "AliPIDResponse.h" 28 #include "AliESDtrackCuts.h" 39 fV0ReaderName("V0ReaderV1"),
40 fConversionGammas(NULL),
41 fConversionCuts(NULL),
46 fAllMCGammaList(NULL),
47 fAllMCConvGammaList(NULL),
49 fTreeMaterialRec(NULL),
50 fTreeMaterialAllGamma(NULL),
51 fTreeMaterialConvGamma(NULL),
55 fNESDtracksEta0914(0),
60 fGammaMCConvTheta(0.),
62 fMCConvDaughterProp(4),
81 fV0ReaderName(
"V0ReaderV1"),
82 fConversionGammas(NULL),
83 fConversionCuts(NULL),
88 fAllMCGammaList(NULL),
89 fAllMCConvGammaList(NULL),
91 fTreeMaterialRec(NULL),
92 fTreeMaterialAllGamma(NULL),
93 fTreeMaterialConvGamma(NULL),
97 fNESDtracksEta0914(0),
102 fGammaMCConvTheta(0.),
104 fMCConvDaughterProp(4),
118 DefineInput(0, TChain::Class());
119 DefineOutput(1, TList::Class());
224 if(eventQuality != 0){
254 if(
fESDEvent->GetPrimaryVertexTracks()->GetNContributors()>0) {
348 if (gamma ==NULL)
continue;
374 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
375 Double_t mcProdVtxX = primVtxMC->GetX();
376 Double_t mcProdVtxY = primVtxMC->GetY();
377 Double_t mcProdVtxZ = primVtxMC->GetZ();
384 Int_t isPosFromMBHeader
386 Int_t isNegFromMBHeader
388 if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1))
continue;
391 if(posDaughter == NULL || negDaughter == NULL){
394 }
else if(posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)){
399 if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode();
else continue;
401 if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode();
else continue;
403 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11)
405 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11 && (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1))
408 if(TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==211)
410 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==2212) ||
411 (TMath::Abs(pdgCodePos)==2212 && TMath::Abs(pdgCodeNeg)==211))
413 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==11) ||
414 (TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==211))
416 if (TMath::Abs(pdgCodePos)==321 || TMath::Abs(pdgCodeNeg)==321)
422 if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode();
else continue;
424 if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode();
else continue;
429 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
431 else if ( !(pdgCodeNeg==pdgCodePos)){
435 else if (pdgCode == 221)
437 else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
438 if(pdgCode == 22 && gammaIsPrimary){
440 }
else if (pdgCode == 22){
456 Int_t fNumberOfESDTracks = 0;
457 if(fInputEvent->IsA()==AliESDEvent::Class()){
461 Bool_t selectPrimaries=kTRUE;
462 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
463 EsdTrackCuts->SetMaxDCAToVertexZ(2);
464 EsdTrackCuts->SetEtaRange(-0.9, 0.9);
465 EsdTrackCuts->SetPtRange(0.15);
467 for(
Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
468 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
469 if(!curTrack)
continue;
470 if(EsdTrackCuts->AcceptTrack(curTrack) ){
474 if( (isFromMBHeader < 1) )
continue;
477 fNumberOfESDTracks++;
483 return fNumberOfESDTracks;
488 Int_t fNumberOfESDTracks = 0;
489 if(fInputEvent->IsA()==AliESDEvent::Class()){
492 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
493 EsdTrackCuts->SetMaxDCAToVertexZ(5);
494 EsdTrackCuts->SetEtaRange(0.9, 1.4);
495 EsdTrackCuts->SetPtRange(0.15);
497 for(
Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
498 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
499 if(!curTrack)
continue;
500 if(EsdTrackCuts->AcceptTrack(curTrack) ){
504 if( (isFromMBHeader < 1) )
continue;
507 fNumberOfESDTracks++;
510 EsdTrackCuts->SetEtaRange(-1.4, -0.9);
511 for(
Int_t iTracks = 0; iTracks <
fESDEvent->GetNumberOfTracks(); iTracks++){
512 AliESDtrack* curTrack =
fESDEvent->GetTrack(iTracks);
513 if(!curTrack)
continue;
514 if(EsdTrackCuts->AcceptTrack(curTrack) ){
518 if( (isFromMBHeader < 1) )
continue;
521 fNumberOfESDTracks++;
528 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
Int_t GetSignalRejection()
AliConversionPhotonCuts * fConversionCuts
virtual void Terminate(Option_t *)
PeriodVar GetPeriodEnum()
void SetPeriodEnumExplicit(PeriodVar periodEnum)
virtual Double_t GetPhotonTheta() const
Double_t GetConversionZ() const
AliAnalysisTaskMaterial()
TParticle * GetPositiveMCDaughter(AliMCEvent *mcEvent)
AliESDtrack * GetESDTrack(AliESDEvent *event, Int_t label)
virtual ~AliAnalysisTaskMaterial()
Bool_t GetProduceV0FindingEfficiency()
TParticle * GetNegativeMCDaughter(AliMCEvent *mcEvent)
Float_t GetChi2perNDF() const
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *event)
AliV0ReaderV1 * fV0Reader
Int_t GetTrackLabelNegative() const
TClonesArray * fConversionGammas
Bool_t IsConversionPrimaryESD(AliMCEvent *mcEvent, Long_t eventpos, Double_t prodVtxX, Double_t prodVtxY, Double_t prodVtxZ)
Int_t GetTrackLabelPositive() const
Bool_t IsCentralitySelected(AliVEvent *event, AliMCEvent *mcEvent)
AliConvEventCuts * fEventCuts
virtual void UserCreateOutputObjects()
Int_t GetMCLabelNegative() const
Double_t GetConversionY() const
TClonesArray * GetReconstructedGammas() const
virtual Double_t GetPhotonPt() const
TList * GetAcceptedHeader()
Class handling all kinds of selection cuts for Gamma Conversion analysis.
AliConvEventCuts * GetEventCuts()
Double_t GetConversionRadius() const
Double_t GetConversionX() const
Bool_t PhotonIsSelected(AliConversionPhotonBase *photon, AliVEvent *event)
TList * GetV0FindingEfficiencyHistograms()
virtual void UserExec(Option_t *option)