17 #include <TLorentzVector.h>
34 fUseAsymmetryCut(0), fM(0),
35 fInvMassMaxCut(0.), fInvMassMinCut(0.),
36 fLeftBandMinCut(0.), fLeftBandMaxCut(0.),
37 fRightBandMinCut(0.), fRightBandMaxCut(0.),
38 fAngleMaxParam(), fUseAngleCut(0),
39 fKeepNeutralMesonHistos(0),
40 fParticle(
""), fDecayBit(0),
43 fhAnglePairNoCut(0), fhAnglePairOpeningAngleCut(0),
44 fhAnglePairAsymmetryCut(0), fhAnglePairAllCut(0),
45 fhInvMassPairNoCut(0), fhInvMassPairOpeningAngleCut(0),
46 fhInvMassPairAsymmetryCut(0), fhInvMassPairAllCut(0),
47 fhAsymmetryNoCut(0), fhAsymmetryOpeningAngleCut(0),
50 fHistoNEBins(0), fHistoEMax(0.), fHistoEMin(0.),
51 fHistoNAngleBins(0), fHistoAngleMax(0.), fHistoAngleMin(0.),
52 fHistoNIMBins(0), fHistoIMMax(0.), fHistoIMMin(0.)
64 outputContainer->SetName(
"MesonDecayHistos") ;
68 outputContainer->SetOwner(kFALSE);
77 (
"AsymmetryNoCut",
"Asymmetry of all #gamma pair vs E_{#pi^{0}}",
83 (
"InvMassPairNoCut",
"Invariant Mass of all #gamma pair vs E_{#pi^{0}}",
94 (
"AnglePairOpeningAngleCut",
95 "Angle between all #gamma pair (opening angle) vs E_{#pi^{0}}"
101 (
"AsymmetryOpeningAngleCut",
102 "Asymmetry of #gamma pair (angle cut) vs E_{#pi^{0}}",
108 (
"InvMassPairOpeningAngleCut",
109 "Invariant Mass of #gamma pair (angle cut) vs E_{#pi^{0}}",
121 (
"AnglePairAsymmetryCut",
122 "Angle between all #gamma pair (opening angle + asymetry cut) vs E_{#pi^{0}}"
128 (
"InvMassPairAsymmetryCut",
129 "Invariant Mass of #gamma pair (opening angle + asymmetry) vs E_{#pi^{0}}",
141 "Angle between all #gamma pair (opening angle + asymmetry + inv mass cut) vs E_{#pi^{0}}"
147 (
"InvMassPairAllCut",
148 "Invariant Mass of #gamma pair (opening angle + asymmetry + invmass cut) vs E_{#pi^{0}}",
155 "Asymmetry of #gamma pair (opening angle+invmass cut) vs E_{#pi^{0}}",
166 return outputContainer;
203 if((angle<max)&&(angle>=min))
return kTRUE ;
216 TLorentzVector gammaj,
222 Double_t phi = (gammai+gammaj).Phi();
226 Double_t invmass = (gammai+gammaj).M();
227 Double_t angle = gammaj.Angle(gammai.Vect());
229 Double_t asy = TMath::Abs((gammai-gammaj).E())/(gammai+gammaj).E();
251 AliDebug(2,Form(
"Angle cut: energy %f, phi %f",e,phi));
279 if(calo==0 && e > 6.)
298 else AliWarning(
"Unexpected particle peak name!");
307 AliDebug(2,Form(
"IM in peak cut: energy %f, im %f, bit map %d",e,invmass,
fDecayBit));
327 else AliWarning(
"Unexpected particle side_band name!");
333 if( invmass > invmassRightBandMinCut && invmass < invmassRightBandMaxCut )
337 else AliWarning(
"Unexpected particle side_band name!");
352 AliDebug(2,Form(
"IM side band cut: energy %f, im %f, bit map %d",e,invmass,
fDecayBit));
371 if(particleName.Contains(
"Pi0"))
398 else if(particleName.Contains(
"Eta"))
426 printf(
"AliAnaNeutralMesonSelection::SetParticle(%s) *** Particle NOT defined (Pi0 or Eta), Pi0 settings by default *** \n",particleName.Data());
437 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
447 printf(
"Angle selection param: \n");
Float_t fHistoAngleMin
Minimum value of angle histogram range.
Float_t fHistoAngleMax
Maximum value of angle histogram range.
Double_t fLeftBandMaxCut
Side Band selection, max left band cut.
Float_t fAsymmetryCut
Asymmetry cut.
void InitParameters()
Initialize the parameters of the analysis.
TH2F * fhInvMassPairAllCut
! Invariant mass of decay photons, all cuts.
AliNeutralMesonSelection()
Default constructor. Initialize parameters.
Double_t fRightBandMinCut
Side Band selection, min right band cut.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Double_t fLeftBandMinCut
Side Band selection, min left band cut.
TH2F * fhAsymmetryOpeningAngleCut
! Asymmetry of decay photons, cut on opening angle.
TH2F * fhInvMassPairNoCut
! Invariant mass of decay photons, no cuts.
Bool_t fKeepNeutralMesonHistos
Keep neutral meson selection histograms.
Bool_t IsAngleInWindow(Float_t angle, Float_t e) const
Bool_t fUseAngleCut
Select pairs depending on their opening angle.
TList * GetCreateOutputObjects()
Double_t fRightBandMaxCut
Side Band selection, max right band cut.
Int_t fHistoNIMBins
Number of bins in Invariant Mass axis.
Float_t fHistoEMax
Maximum value of pi0 E histogram range.
Double_t fInvMassMaxCutParam[3]
Variable invariant mass max cut, for pi0 in EMCAL.
Double_t fInvMassMaxCut
Invariant Mass cut maximum.
TArrayD fAngleMaxParam
Maximum opening angle selection parameters.
void SetParticle(TString particleName)
Set some default parameters for selection of pi0 or eta.
Float_t fShiftMinAngle[2]
Correction shift for min angle from true kinematic limit, resolution effects.
Bool_t SelectPair(TLorentzVector particlei, TLorentzVector particlej, Int_t calo)
TH2F * fhAnglePairAllCut
! Aperture angle of decay photons, all cuts.
Double_t fM
Mass of the neutral meson.
Int_t fHistoNEBins
Number of bins in pi0 E axis.
TH2F * fhAnglePairNoCut
! Aperture angle of decay photons, no cuts.
TH2F * fhAsymmetryNoCut
! Asymmetry of decay photons, no cuts.
Float_t fHistoEMin
Minimum value of pi0 E histogram range.
Float_t fHistoIMMin
Minimum value of Invariant Mass histogram range.
TH2F * fhAnglePairOpeningAngleCut
! Aperture angle of decay photons, cut on opening angle.
UInt_t fDecayBit
Decay type flag, set while selecting, depending on fParticle and side range. See enum decayTypes for ...
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Float_t fHistoIMMax
Maximum value of Invariant Mass histogram range.
Class that contains methods to select candidate cluster pairs to neutral meson.
TH2F * fhInvMassPairAsymmetryCut
! Invariant mass of decay photons, asymmetry cut.
Bool_t fUseAsymmetryCut
Use the asymmetry cut.
Double_t fInvMassMinCut
Invariant Masscut minimun.
Int_t fHistoNAngleBins
Number of bins in angle axis.
TH2F * fhAsymmetryAllCut
! Asymmetry of decay photons, all cuts.
TH2F * fhAnglePairAsymmetryCut
! Aperture angle of decay photons, asymmetry cut.
TString fParticle
Meutral meson name (Pi0, Eta, +SideBand).
TH2F * fhInvMassPairOpeningAngleCut
! Invariant mass of decay photons, cut on opening angle.