X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG%2Fmuon%2FAliVAnalysisMuon.h;h=ebd142756fd5e5ad1d7ecf6b5d21be8862d9d381;hb=0d360687e3cab9241d0fa3d10271f76217a17d18;hp=ad6794ac56c44f5cd644456732d02f62fd42a2a8;hpb=12e33589bac950fd5eeee7acce6cea7865315c77;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG/muon/AliVAnalysisMuon.h b/PWG/muon/AliVAnalysisMuon.h index ad6794ac56c..ebd142756fd 100644 --- a/PWG/muon/AliVAnalysisMuon.h +++ b/PWG/muon/AliVAnalysisMuon.h @@ -16,15 +16,18 @@ class TObjArray; class TAxis; class TLorentzVector; class TList; +class THashList; class AliMergeableCollection; class AliCounterCollection; class AliVParticle; class AliAODEvent; class AliESDEvent; class AliCFGridSparse; +class AliMuonEventCuts; class AliMuonTrackCuts; class AliMuonPairCuts; class AliVVertex; +class AliUtilityMuonAncestor; class AliVAnalysisMuon : public AliAnalysisTaskSE { public: @@ -42,10 +45,18 @@ class AliVAnalysisMuon : public AliAnalysisTaskSE { virtual void FinishTaskOutput(); void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0); + TAxis* GetCentralityClasses() const; + Bool_t SetCentralityClassesFromOutput(); - void SetTrigClassPatterns(TString pattern = "CINT CMU !CMUP CMBAC CPBI !-ACE- !-AC- !-E- !WU !EGA !EJE"); + void SetTrigClassPatterns(const TString pattern); + TString GetDefaultTrigClassPatterns() const; + /// Get trigger classes + TList* GetAllSelectedTrigClasses() const; + void SetTerminateOptions(TString physSel="All", TString trigClass="ANY", TString centralityRange="", TString furtherOpts=""); + /// Get muon event cuts + AliMuonEventCuts* GetMuonEventCuts() { return fMuonEventCuts; } /// Get muon track cuts AliMuonTrackCuts* GetMuonTrackCuts() { return fMuonTrackCuts; } /// Get muon pair cuts @@ -56,6 +67,29 @@ class AliVAnalysisMuon : public AliAnalysisTaskSE { Int_t ivar, TString labelName, Double_t varMin, Double_t varMax, TString option = ""); + + void SetWeight ( TObject* wgtObj ); + TObject* GetWeight ( const char* wgtName ); + + enum { + kPhysSelPass, ///< Physics selected events + kPhysSelReject, ///< Events non-passing selection + kNselections ///< Number of selections + }; + + enum { + kCharmMu, ///< Mu from charm + kBeautyMu, ///< Mu from beauty + kQuarkoniumMu, ///< Mu from resonance + kWbosonMu, ///< Mu from W + kZbosonMu, ///< Mu from Z + kDecayMu, ///< Decay mu + kSecondaryMu, ///< Secondary mu + kRecoHadron, ///< Reconstructed hadron + kUnidentified, ///< Particle that fails matching kine + kNtrackSources ///< Total number of track sources + }; + protected: @@ -78,56 +112,17 @@ class AliVAnalysisMuon : public AliAnalysisTaskSE { ///////////////////// // Utility methods // ///////////////////// - - // Transparently handle tracks in ESD/AOD - Int_t GetNTracks(); - AliVParticle* GetTrack(Int_t itrack); - TLorentzVector GetTrackPair(AliVParticle* track1, AliVParticle* track2) const; - + // Methods for MC - Bool_t IsMC(); - Int_t GetNMCTracks(); - AliVParticle* GetMCTrack(Int_t trackLabel); - Int_t GetMotherIndex(AliVParticle* mcParticle); - Int_t GetDaughterIndex(AliVParticle* mcParticle, Int_t idaughter); - Int_t GetParticleType(AliVParticle* track); - Int_t RecoTrackMother(AliVParticle* mcParticle); + Int_t GetParticleType ( AliVParticle* track ); // Methods for mergeable object collections Bool_t AddObjectToCollection(TObject* object, Int_t index = -1); TObject* GetMergeableObject(TString physSel, TString trigClassName, TString centrality, TString objectName); TObject* GetSum(TString physSel, TString trigClassNames, TString centrality, TString objectPattern); - // A useful constant - Double_t MuonMass2() const; - - // Handle triggers - Bool_t TrackPtCutMatchTrigClass(AliVParticle* track, TString trigClassName); - Int_t GetTrigClassPtCutLevel(TString trigClassName); - - // Methods for event information - AliVVertex* GetVertexSPD() const; - /// Set minimum number of vertex contributors - void SetMinNvtxContributors(Int_t minNvtxContributors) { fMinNvtxContirbutors = minNvtxContributors; } - - enum { - kPhysSelPass, ///< Physics selected events - kPhysSelReject, ///< Events non-passing selection - kNselections ///< Number of selections - }; - - enum { - kCharmMu, ///< Mu from charm - kBeautyMu, ///< Mu from beauty - kQuarkoniumMu, ///< Mu from resonance - kWbosonMu, ///< Mu from W - kDecayMu, ///< Decay mu - kSecondaryMu, ///< Secondary mu - kRecoHadron, ///< Reconstructed hadron - kUnidentified, ///< Particle that fails matching kine - kNtrackSources ///< Total number of track sources - }; + AliMuonEventCuts* fMuonEventCuts; ///< Muon event cuts AliMuonTrackCuts* fMuonTrackCuts; ///< Muon track cuts AliMuonPairCuts* fMuonPairCuts; ///< Muon pair track cuts AliESDEvent* fESDEvent; //!< ESD event, not owner @@ -136,13 +131,12 @@ class AliVAnalysisMuon : public AliAnalysisTaskSE { TObjArray* fChargeKeys; ///< Muon charge keys TObjArray* fSrcKeys; ///< MC sources names TObjArray* fPhysSelKeys; ///< Physics selection names - TList* fTriggerClasses; ///< List of trigger classes - TAxis* fCentralityClasses; ///< Centrality classes + THashList* fWeights; ///< List of objects to weight histograms + AliUtilityMuonAncestor* fUtilityMuonAncestor; ///< Utility to get the muon ancestor AliCounterCollection* fEventCounters; //!< event counters AliMergeableCollection* fMergeableCollection; //!< collection of mergeable objects TObjArray* fOutputList; //!< List of outputs - Int_t fMinNvtxContirbutors; ///< Minimum number of vertex contributors private: AliVAnalysisMuon(const AliVAnalysisMuon&); @@ -150,14 +144,9 @@ class AliVAnalysisMuon : public AliAnalysisTaskSE { void InitKeys(); void CreateMergeableObjects(TString physSel, TString trigClassName, TString centrality); - TObjArray* BuildTriggerClasses(TString firedTrigClasses); - - TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept - TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected - TObjArray* fSelectedTrigLevel; ///< Track-trigger pt cut for selected trigger class TObjArray* fOutputPrototypeList; //!< List of prototype object to be used in collection - ClassDef(AliVAnalysisMuon, 3); + ClassDef(AliVAnalysisMuon, 6); }; #endif