X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGJE%2FEMCALJetTasks%2FAliJetResponseMaker.h;h=59e84abbf4d6d8496cd16d543342b9714e8d5532;hb=0560ee0fd567a02a3b31fadba9c07d0775776909;hp=0165e5469706e4167f79b4c57ac7cf5946bbc319;hpb=f660c2d6e24b41e34740abe35d9b63f83cfd3e18;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/EMCALJetTasks/AliJetResponseMaker.h b/PWGJE/EMCALJetTasks/AliJetResponseMaker.h index 0165e546970..59e84abbf4d 100644 --- a/PWGJE/EMCALJetTasks/AliJetResponseMaker.h +++ b/PWGJE/EMCALJetTasks/AliJetResponseMaker.h @@ -3,11 +3,10 @@ // $Id$ -class AliGenPythiaEventHeader; class TClonesArray; -class TH1; class TH2; -class TH3; +class THnSparse; +class AliNamedArrayI; #include "AliEmcalJet.h" #include "AliAnalysisTaskEmcalJet.h" @@ -21,95 +20,140 @@ class AliJetResponseMaker : public AliAnalysisTaskEmcalJet { enum MatchingType{ kNoMatching = 0, kGeometrical = 1, - kMCLabel = 2 + kMCLabel = 2, + kSameCollections = 3 }; void UserCreateOutputObjects(); - void SetJets2Name(const char *n) { fJets2Name = n ; } - void SetTracks2Name(const char *n) { fTracks2Name = n ; } - void SetClus2Name(const char *n) { fCalo2Name = n ; } - void SetJet2EtaLimits(Float_t min=-999, Float_t max=-999) { fJet2MinEta = min, fJet2MaxEta = max ; } - void SetJet2PhiLimits(Float_t min=-999, Float_t max=-999) { fJet2MinPhi = min, fJet2MaxPhi = max ; } - void SetRho2Name(const char *n) { fRho2Name = n ; } - void SetPtBiasJet2Clus(Float_t b) { fPtBiasJet2Clus = b ; } - void SetPtBiasJet2Track(Float_t b) { fPtBiasJet2Track = b ; } - void SetMatching(MatchingType t, Double_t p=1) { fMatching = t; fMatchingPar = p; } - void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; } - void SetMCflag1(Bool_t f) { fAreCollections1MC = f ; } - void SetMCflag2(Bool_t f) { fAreCollections2MC = f ; } + void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; } + void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; } + void SetUseCellsToMatch(Bool_t i) { fUseCellsToMatch = i ; } + void SetMinJetMCPt(Float_t pt) { fMinJetMCPt = pt ; } + void SetHistoType(Int_t b) { fHistoType = b ; } + void SetDeltaPtAxis(Int_t b) { fDeltaPtAxis = b ; } + void SetDeltaEtaDeltaPhiAxis(Int_t b) { fDeltaEtaDeltaPhiAxis= b ; } + void SetNEFAxis(Int_t b) { fNEFAxis = b ; } + void SetZAxis(Int_t b) { fZAxis = b ; } + void SetDoJet2Histogram(Int_t b) { fDoJet2Histogram = b ; } protected: - Bool_t IsEventSelected(); - Bool_t AcceptJet(AliEmcalJet* jet) const; - Bool_t AcceptBiasJet2(AliEmcalJet *jet) const; void ExecOnce(); - void DoJetLoop(Bool_t order); + void DoJetLoop(); Bool_t FillHistograms(); - Bool_t RetrieveEventObjects(); Bool_t Run(); Bool_t DoJetMatching(); - Double_t GetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching); - - TString fTracks2Name; // name of second track collection - TString fCalo2Name; // name of second cluster collection - TString fJets2Name; // name of second jet collection - TString fRho2Name; // name of second jet collection - Float_t fPtBiasJet2Track; // select jets 2 with a minimum pt track - Float_t fPtBiasJet2Clus; // select jets 2 with a minimum pt cluster - Bool_t fAreCollections1MC; // collections 1 MC - Bool_t fAreCollections2MC; // collections 1 MC - MatchingType fMatching; // matching type - Double_t fMatchingPar; // maximum distance between matched particle and detector level jets - Float_t fJet2MinEta; // minimum eta jet 2 acceptance - Float_t fJet2MaxEta; // maximum eta jet 2 acceptance - Float_t fJet2MinPhi; // minimum phi jet 2 acceptance - Float_t fJet2MaxPhi; // maximum phi jet 2 acceptance - Int_t fSelectPtHardBin; // select one pt hard bin for analysis - - AliGenPythiaEventHeader *fPythiaHeader; //!event Pythia header - Int_t fPtHardBin; //!event pt hard bin - Int_t fNTrials; //!event trials - TClonesArray *fTracks2; //!Tracks 2 - TClonesArray *fCaloClusters2; //!Clusters 2 - TClonesArray *fJets2; //!Jets 2 - AliRhoParameter *fRho2; //!Event rho 2 - Double_t fRho2Val; //!Event rho 2 value - TH1 *fTracks2Map; //!MC particle map - // General histograms - TH1 *fHistNTrials; //!total number of trials per pt hard bin - TH1 *fHistEvents; //!total number of events per pt hard bin + void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching); + void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const; + void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; + void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; + void FillMatchingHistos(Double_t Pt1, Double_t Pt2, Double_t Eta1, Double_t Eta2, Double_t Phi1, Double_t Phi2, + Double_t A1, Double_t A2, Double_t d, Double_t CE1, Double_t CE2, Double_t CorrPt1, Double_t CorrPt2, + Double_t MCPt1, Double_t NEF1, Double_t NEF2, Double_t Z1, Double_t Z2); + void FillJetHisto(Double_t Phi, Double_t Eta, Double_t Pt, Double_t A, Double_t NEF, Double_t Z, Double_t CorrPt, Double_t MCPt, Int_t Set); + void AllocateTH2(); + void AllocateTHnSparse(); + + MatchingType fMatching; // matching type + Double_t fMatchingPar1; // matching parameter for jet1-jet2 matching + Double_t fMatchingPar2; // matching parameter for jet2-jet1 matching + Bool_t fUseCellsToMatch; // use cells instead of clusters to match jets (slower but sometimes needed) + Double_t fMinJetMCPt; // minimum jet MC pt + Int_t fHistoType; // histogram type (0=TH2, 1=THnSparse) + Int_t fDeltaPtAxis; // add delta pt axis in THnSparse (default=0) + Int_t fDeltaEtaDeltaPhiAxis; // add delta eta and delta phi axes in THnSparse (default=0) + Int_t fNEFAxis; // add NEF axis in matching THnSparse (default=0) + Int_t fZAxis; // add Z axis in matching THnSparse (default=0) + Int_t fDoJet2Histogram; // add unbiased jet2 histogram (potentially memory consuming if on particle level) + + Bool_t fIsJet1Rho; //!whether the jet1 collection has to be average subtracted + Bool_t fIsJet2Rho; //!whether the jet2 collection has to be average subtracted + + // General histos + TH2 *fHistLeadingJets1PtArea; //!leading jet pt vs. area histogram 1 + TH2 *fHistLeadingJets1CorrPtArea; //!leading jet corr pt vs. area histogram 1 + TH2 *fHistLeadingJets2PtArea; //!leading jet pt vs. area histogram 2 + TH2 *fHistLeadingJets2CorrPtArea; //!leading jet corr pt vs. area histogram 2 + TH2 *fHistLeadingJets2PtAreaAcceptance; //!leading jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + TH2 *fHistLeadingJets2CorrPtAreaAcceptance; //!leading jet corr pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + + // THnSparse + THnSparse *fHistJets1; //!jet1 THnSparse + THnSparse *fHistJets2; //!jet2 THnSparse + THnSparse *fHistJets2Acceptance; //!jet2 acceptance THnSparse + THnSparse *fHistMatching; //!matching THnSparse + // Jets 1 - TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1 - TH2 *fHistJets1PtArea; //!inclusive jet pt vs area histogram 1 - TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1 + TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1 + TH2 *fHistJets1PtArea; //!inclusive jet pt vs. area histogram 1 + TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1 + TH2 *fHistJets1NEFvsPt; //!Jet neutral energy fraction vs. jet pt 1 + TH2 *fHistJets1CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 1 + TH2 *fHistJets1ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 1 + // Jets 2 - TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2 - TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2 - TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2 - TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...) - TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) - TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2 + TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2 + TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2 + TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) + TH2 *fHistJets2NEFvsPt; //!Jet neutral energy fraction vs. jet pt 2 + TH2 *fHistJets2CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 2 + TH2 *fHistJets2ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 2 + // Jet1-Jet2 matching - TH2 *fHistMatchingLevelvsJet2Pt; //!matching level vs jet 2 pt - TH2 *fHistDistancevsCommonEnergy; //!distance vs common energy (%) - TH3 *fHistDeltaEtaPhivsJet2Pt; //!delta eta-phi between matched jets vs jet 2 pt + TH2 *fHistCommonEnergy1vsJet1Pt; //!common energy 1 (%) vs jet 1 pt + TH2 *fHistCommonEnergy2vsJet2Pt; //!common energy 2 (%) vs jet 2 pt + TH2 *fHistDistancevsJet1Pt; //!distance vs jet 1 pt + TH2 *fHistDistancevsJet2Pt; //!distance vs jet 2 pt + TH2 *fHistDistancevsCommonEnergy1; //!distance vs common energy 1 (%) + TH2 *fHistDistancevsCommonEnergy2; //!distance vs common energy 2 (%) + TH2 *fHistCommonEnergy1vsCommonEnergy2; //!common energy 1 (%) vs common energy 2 (%) + TH2 *fHistDeltaEtaDeltaPhi; //!delta eta vs delta phi of matched jets + + TH2 *fHistJet2PtOverJet1PtvsJet2Pt; //!jet 2 pt over jet 1 pt vs jet 2 pt + TH2 *fHistJet1PtOverJet2PtvsJet1Pt; //!jet 1 pt over jet 2 pt vs jet 1 pt + TH2 *fHistDeltaPtvsJet1Pt; //!delta pt between matched jets vs jet 1 pt TH2 *fHistDeltaPtvsJet2Pt; //!delta pt between matched jets vs jet 2 pt - TH2 *fHistDeltaPtvsMatchingLevel; //!delta pt between matched jets vs matching level - TH2 *fHistDeltaCorrPtvsJet2Pt; //!delta pt corr between matched jets vs jet 2 pt - TH2 *fHistDeltaCorrPtvsMatchingLevel; //!delta pt corr between matched jets vs matching level - TH2 *fHistNonMatchedJets1PtArea; //!non-matched jet 1 pt distribution - TH2 *fHistNonMatchedJets2PtArea; //!non-matched jet 2 pt distribution - TH2 *fHistNonMatchedJets1CorrPtArea; //!non-matched jet pt distribution - TH2 *fHistNonMatchedJets2CorrPtArea; //!non-matched jet pt distribution + TH2 *fHistDeltaPtOverJet1PtvsJet1Pt; //!delta pt / jet 1 pt between matched jets vs jet 1 pt + TH2 *fHistDeltaPtOverJet2PtvsJet2Pt; //!delta pt / jet 2 pt between matched jets vs jet 2 pt + TH2 *fHistDeltaPtvsDistance; //!delta pt between matched jets vs distance + TH2 *fHistDeltaPtvsCommonEnergy1; //!delta pt between matched jets vs common energy 1 (%) + TH2 *fHistDeltaPtvsCommonEnergy2; //!delta pt between matched jets vs common energy 2 (%) + TH2 *fHistDeltaPtvsArea1; //!delta pt between matched jets vs jet 1 area + TH2 *fHistDeltaPtvsArea2; //!delta pt between matched jets vs jet 2 area + TH2 *fHistDeltaPtvsDeltaArea; //!delta pt between matched jets vs delta area TH2 *fHistJet1PtvsJet2Pt; //!correlation jet 1 pt vs jet 2 pt + + TH2 *fHistDeltaCorrPtOverJet1CorrPtvsJet1CorrPt;//!delta pt corr / jet 1 corr pt between matched jets vs jet 1 corr pt + TH2 *fHistDeltaCorrPtOverJet2CorrPtvsJet2CorrPt;//!delta pt corr / jet 2 corr pt between matched jets vs jet 2 corr pt + TH2 *fHistDeltaCorrPtvsJet1CorrPt; //!delta pt corr between matched jets vs jet 1 corr pt + TH2 *fHistDeltaCorrPtvsJet2CorrPt; //!delta pt corr between matched jets vs jet 2 corr pt + TH2 *fHistDeltaCorrPtvsDistance; //!delta pt corr between matched jets vs distance + TH2 *fHistDeltaCorrPtvsCommonEnergy1; //!delta pt corr between matched jets vs common energy 1 (%) + TH2 *fHistDeltaCorrPtvsCommonEnergy2; //!delta pt corr between matched jets vs common energy 2 (%) + TH2 *fHistDeltaCorrPtvsArea1; //!delta pt corr between matched jets vs jet 1 area + TH2 *fHistDeltaCorrPtvsArea2; //!delta pt corr between matched jets vs jet 2 area + TH2 *fHistDeltaCorrPtvsDeltaArea; //!delta pt corr between matched jets vs delta area TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt - TH2 *fHistMissedJets2PtArea; //!jets 2 not found in jet 1 collection + + TH2 *fHistDeltaMCPtOverJet1MCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt / jet 1 MC pt vs jet 1 pt + TH2 *fHistDeltaMCPtOverJet2PtvsJet2Pt; //!jet 1 MC pt - jet2 pt / jet 2 pt vs jet 2 pt + TH2 *fHistDeltaMCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt vs jet 1 MC pt + TH2 *fHistDeltaMCPtvsJet2Pt; //!jet 1 MC pt - jet2 pt vs jet 2 pt + TH2 *fHistDeltaMCPtvsDistance; //!jet 1 MC pt - jet2 pt vs distance + TH2 *fHistDeltaMCPtvsCommonEnergy1; //!jet 1 MC pt - jet2 pt vs common energy 1 (%) + TH2 *fHistDeltaMCPtvsCommonEnergy2; //!jet 1 MC pt - jet2 pt vs common energy 2 (%) + TH2 *fHistDeltaMCPtvsArea1; //!jet 1 MC pt - jet2 pt vs jet 1 area + TH2 *fHistDeltaMCPtvsArea2; //!jet 1 MC pt - jet2 pt vs jet 2 area + TH2 *fHistDeltaMCPtvsDeltaArea; //!jet 1 MC pt - jet2 pt vs delta area + TH2 *fHistJet1MCPtvsJet2Pt; //!correlation jet 1 MC pt vs jet 2 pt private: AliJetResponseMaker(const AliJetResponseMaker&); // not implemented AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented - ClassDef(AliJetResponseMaker, 10) // Jet response matrix producing task + ClassDef(AliJetResponseMaker, 23) // Jet response matrix producing task }; #endif