class TH2F ;
class TH1F;
class TH3D;
-class TString ;
class TObjString;
// --- ANALYSIS system ---
// Analysis methods
- Bool_t ClusterSelected(AliVCluster* cl, TLorentzVector mom) ;
+ Bool_t ClusterSelected(AliVCluster* cl, Int_t nMaxima) ;
- void FillShowerShapeHistograms( AliVCluster* cluster, const Int_t mcTag , const Int_t pidTag) ;
+ void FillShowerShapeHistograms( AliVCluster* cluster, Int_t mcTag , Int_t pidTag) ;
void SwitchOnFillShowerShapeHistograms() { fFillSSHistograms = kTRUE ; }
void SwitchOffFillShowerShapeHistograms() { fFillSSHistograms = kFALSE ; }
// Analysis parameters setters getters
//---------------------------------------
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
-
// ** Cluster selection methods **
void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ;
void SetNCellCut(Int_t n) { fNCellsCut = n ; }
Double_t GetNCellCut() const { return fNCellsCut ; }
-
+
+ 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 FillNOriginHistograms(Int_t n) { fNOriginHistograms = n ;
- if(n > 10) fNOriginHistograms = 10; }
+ if(n > 10) fNOriginHistograms = 10; }
+
+
+ void FillAODWithElectrons() { fAODParticle = AliCaloPID::kElectron ; }
+ void FillAODWithHadrons() { fAODParticle = AliCaloPID::kChargedHadron ; }
+ void FillAODWithAny() { fAODParticle = 0 ; }
+ void SwitchOnOnlySimpleSSHistoFill() { fFillOnlySimpleSSHisto = kTRUE ; }
+ void SwitchOffOnlySimpleHistoFill() { fFillOnlySimpleSSHisto = kFALSE ; }
+
// For histograms in arrays, index in the array, corresponding to a particle
enum mcTypes { kmcPhoton = 0, kmcPi0Decay = 1, kmcOtherDecay = 2,
kmcPi0 = 3, kmcEta = 4, kmcElectron = 5,
private:
- TString fCalorimeter ; // Calorimeter where the gamma is searched;
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
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
Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells
+ 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
Bool_t fFillSSHistograms ; // Fill shower shape histograms
+ Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms
Bool_t fFillWeightHistograms ; // Fill weigth histograms
Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types
Float_t fEOverPMin; // Max E/p for electrons, after dEdx cut
Float_t fEOverPMax; // Min E/p for electrons, after dEdx cut
- //Histograms
+ Int_t fAODParticle; // Select the type of particle to put in AODs for other analysis
+
+ TLorentzVector fMomentum; //! cluster momentum
+ TLorentzVector fMomentumMC; //! mc particle momentum
+ TVector3 fProdVertex; //! mc particle production vertex
+
+ //Histograms
TH2F * fhdEdxvsE; //! matched track dEdx vs cluster E
TH2F * fhdEdxvsP; //! matched track dEdx vs track P
TH2F * fhEOverPvsE; //! matched track E cluster over P track vs cluster E, after dEdx cut
TH2F * fhEOverPvsP; //! matched track E cluster over P track vs track P, after dEdx cut
- TH2F * fhNCellsE[2]; //! number of cells in cluster vs E
+ TH2F * fhdEdxvsECutM02; //! matched track dEdx vs cluster E, mild M02 cut
+ TH2F * fhdEdxvsPCutM02; //! matched track dEdx vs track P, mild M02 cut
+ TH2F * fhEOverPvsECutM02; //! matched track E cluster over P track vs cluster E, after dEdx cut, mild M02 cut
+ TH2F * fhEOverPvsPCutM02; //! matched track E cluster over P track vs track P, after dEdx cut, mild M02 cut
+
+ TH2F * fhdEdxvsECutEOverP; //! matched track dEdx vs cluster E , cut on EOverP
+ TH2F * fhdEdxvsPCutEOverP; //! matched track dEdx vs track P, cut on EOverP
+ TH2F * fhEOverPvsECutM02CutdEdx; //! matched track E cluster over P track vs cluster E, after dEdx cut and mild M02 cut
+ TH2F * fhEOverPvsPCutM02CutdEdx; //! matched track E cluster over P track vs track P, after dEdx cut and mild M02 cut
+
+ TH2F * fhMCdEdxvsE[10]; //! matched track dEdx vs cluster E, coming from MC particle
+ TH2F * fhMCdEdxvsP[10]; //! matched track dEdx vs track P, coming from MC particle
+ TH2F * fhMCEOverPvsE[10]; //! matched track E cluster over P track vs cluster E, after dEdx cut, coming from MC particle
+ TH2F * fhMCEOverPvsP[10]; //! matched track E cluster over P track vs track P, after dEdx cut, coming from MC particle
+
+ TH2F * fhNCellsE[2]; //! number of cells in cluster vs E
+ TH2F * fhNLME[2]; //! number of local maxima in cluster vs E
TH2F * fhMaxCellDiffClusterE[2]; //! Fraction of energy carried by cell with maximum energy
TH2F * fhTimeE[2]; //! E vs Time of selected cluster
TH2F * fhMCESumEtaPhi[2][6] ; //! shower dispersion in eta vs phi direction from MC particle
TH2F * fhMCEDispEtaPhiDiff[2][6] ; //! shower dispersion in eta -phi direction from MC particle
TH2F * fhMCESphericity[2][6] ; //! shower sphericity, eta vs phi from MC particle
- TH2F * fhMCDispEtaDispPhiEBin[2][6][5] ; //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
TH2F * fhMCElectronELambda0NoOverlap ; //! E vs Lambda0 from MC electrons, no overlap
TH2F * fhMCElectronELambda0TwoOverlap ; //! E vs Lambda0 from MC electrons, 2 particles overlap
TH2F * fhEmbedElectronELambda0MostlyBkg ; //! Lambda0 vs E for embedded electrons with 50%<fraction<10%
TH2F * fhEmbedElectronELambda0FullBkg ; //! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
- AliAnaElectron( const AliAnaElectron & g) ; // cpy ctor
- AliAnaElectron & operator = (const AliAnaElectron & g) ; // cpy assignment
+ AliAnaElectron( const AliAnaElectron & el) ; // cpy ctor
+ AliAnaElectron & operator = (const AliAnaElectron & el) ; // cpy assignment
- ClassDef(AliAnaElectron,3)
+ ClassDef(AliAnaElectron,5)
} ;