// Main
- void FillPileUpHistograms(Float_t energy, Float_t time) ;
+ void FillPileUpHistograms(const Float_t energy, const Float_t time) ;
+
+ void FillRejectedClusterHistograms(const TLorentzVector mom, const Int_t mctag);
void FillSelectedClusterHistograms(AliVCluster* cluster,
const Int_t nLocMax,
void SetCalorimeter(TString & det) { fCalorimeter = det ; }
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
- fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3 ; }
+ fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3 ; }
+
+ void SetNLMCut(Int_t min, Int_t max) { fNLMCutMin = min;
+ fNLMCutMax = max ; }
+ Int_t GetNLMCutMin() const { return fNLMCutMin ; }
+ Int_t GetNLMCutMax() const { return fNLMCutMax ; }
- void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
+ void SetNLMMinEnergy(Int_t i, Float_t min) { if (i < 3 && i >=0 ) fNLMECutMin[i] = min ; }
+ Float_t GetNLMMinEnergy(Int_t i) const { if( i < 3 && i >=0 ) return fNLMECutMin[i] ; else return 0 ; }
+
+ void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
fTimeCutMax = max ; }
Double_t GetTimeCutMin() const { return fTimeCutMin ; }
- Double_t GetTimeCutMax() const { return fTimeCutMax ; }
-
+ Double_t GetTimeCutMax() const { return fTimeCutMax ; }
+
void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
void SwitchOffOnlySimpleHistoFill() { fFillOnlySimpleSSHisto = kFALSE ; }
+
//For histograms
enum mcTypes { kmcPhoton = 0, kmcConversion = 1, kmcPi0 = 2,
kmcEta = 3, kmcElectron = 4, kmcHadron = 5 };
Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
+ Int_t fNLMCutMin ; // Remove clusters/cells with number of local maxima smaller than this value
+ Int_t fNLMCutMax ; // Remove clusters/cells with number of local maxima larger than this value
+ Float_t fNLMECutMin[3] ; // Minimum energy of the cluster, depending on nlm.
+
Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns
Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns
Bool_t fFillSelectClHisto; // Fill selected cluster histograms
Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms
+
//Only for combination of calorimeter and conversion photons, kIMCaloTracks
TString fInputAODGammaConvName; // Name of AOD branch with conversion photons
TH2F * fhEPhi ; //! E vs phi of identified pi0/eta
TH2F * fhEtaPhi ; //! eta vs phi of identified pi0/eta
+ TH2F * fhPtCentrality ; //! centrality vs pi0/eta pT
+ TH2F * fhPtEventPlane ; //! event plane vs pi0/eta pT
+
+ TH1F * fhPtReject ; //! Number of rejected as pi0/eta vs pT
+ TH1F * fhEReject ; //! Number of rejected as pi0/eta vs E
+ TH2F * fhEEtaReject ; //! E vs eta of rejected as pi0/eta
+ TH2F * fhEPhiReject ; //! E vs phi of rejected as pi0/eta
+ TH2F * fhEtaPhiReject ; //! eta vs phi of rejected as pi0/eta
+
+ TH2F * fhMass ; //! pair mass vs E, for all pairs
+ TH2F * fhAsymmetry ; //! cluster E vs asymmetry of 2 splitted clusters
+ TH2F * fhSelectedMass ; //! pair mass vs E, for selected pairs
+ TH2F * fhSelectedAsymmetry ; //! cluster E vs asymmetry of 2 splitted clusters, for selected pairs
+
TH1F * fhPtDecay ; //! Number of identified pi0/eta decay photons vs pT
TH1F * fhEDecay ; //! Number of identified pi0/eta decay photons vs E
TH2F * fhDispEtaPhiDiffE ; //! shower dispersion eta - phi
TH2F * fhSphericityE ; //! shower sphericity in eta vs phi
TH2F * fhDispEtaDispPhi[7] ; //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
- TH2F * fhAsymmetryE ; //! E asymmetry of 2 splitted clusters vs cluster E
TH2F * fhAsymmetryLambda0[7] ; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhAsymmetryDispEta[7] ; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhAsymmetryDispPhi[7] ; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhMCAsymmetryDispEta[7][6] ; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
TH2F * fhMCAsymmetryDispPhi[7][6] ; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
- TH1F * fhMCPt[6]; //! Number of identified as pi0, coming from X
+ TH1F * fhMCE[6]; //! Number of identified as pi0 vs E coming from X
+ TH1F * fhMCPt[6]; //! Number of identified as pi0 vs Pt coming from X
TH2F * fhMCPhi[6]; //! Phi of identified as pi0, coming from X
TH2F * fhMCEta[6]; //! eta of identified as pi0, coming from X
+ TH1F * fhMCEReject[6]; //! Number of rejected as pi0 vs E coming from X
+ TH1F * fhMCPtReject[6]; //! Number of rejected as pi0 vs Pt coming from X
+ TH2F * fhMCPtCentrality[6] ; //! centrality vs pi0/eta pT coming from X
+
+
TH2F * fhMCPi0PtGenRecoFraction; //! SS id, clusters id as pi0 (eta), coming from 2 photon, pi0 primary, pt vs E prim pi0 / E reco
TH2F * fhMCEtaPtGenRecoFraction; //! SS id, clusters id as pi0 (eta), coming from 2 photon, eta primary, pt vs E prim eta / E reco
TH1F * fhMCPi0DecayPt; //! SS id, clusters id as pi0 (eta), coming from 1 photon, pi0 decay primary, pt
TH2F * fhMassPairLocMax[8]; //! pair mass, origin is same pi0, combine clusters depending on number of maxima
// Pile-up
- TH2F * fhTimeENoCut; //! time of cluster vs E, no cut
+ TH1F * fhPtPi0PileUp[7]; //! pT distribution of selected pi0/eta
+ TH2F * fhTimeENoCut; //! time of cluster vs E, no cut
TH2F * fhTimeESPD; //! time of cluster vs E, IsSPDPileUp
TH2F * fhTimeESPDMulti; //! time of cluster vs E, IsSPDPileUpMulti
TH2F * fhTimeNPileUpVertSPD; //! time of cluster vs n pile-up vertices from SPD
AliAnaPi0EbE( const AliAnaPi0EbE & pi0ebe) ; // cpy ctor
AliAnaPi0EbE & operator = (const AliAnaPi0EbE & pi0ebe) ; // cpy assignment
- ClassDef(AliAnaPi0EbE,21)
+ ClassDef(AliAnaPi0EbE,24)
} ;