]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
Updates from Salvatore for Embedding
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetResponseMaker.h
index b25f0ceae5fa0f3698bc4d67a9eb197d3a81bfa0..fe7d9d1835f32020d6a13ae157aaed04e7a616af 100644 (file)
@@ -5,8 +5,9 @@
 
 class AliGenPythiaEventHeader;
 class TClonesArray;
-class TH1F;
-class TH2F;
+class TH1;
+class TH2;
+class TH3;
 
 #include "AliAnalysisTaskEmcalJet.h"
 
@@ -16,75 +17,90 @@ class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
   AliJetResponseMaker(const char *name);
   virtual ~AliJetResponseMaker();
 
+  enum MatchingType{
+    kNoMatching = 0,
+    kGeometrical = 1,
+    kMCLabel = 2
+  };
+
   void                        UserCreateOutputObjects();
 
-  void                        SetMCJetsName(const char *n)       { fMCJetsName      = n; }
-  void                        SetMCTracksName(const char *n)     { fMCTracksName    = n; }
-  void                        SetMaxDistance(Double_t d)         { fMaxDistance     = d; }
-  void                        SetDoWeighting(Bool_t d = kTRUE)   { fDoWeighting     = d; }
-  void                        SetMCFiducial(Bool_t f = kTRUE)    { fMCFiducial      = f; }
-  void                        SetEventWeightHist(Bool_t h)       { fEventWeightHist = h; }
-  void                        SetPtHardBin(Int_t b)              { fSelectPtHardBin = b; }
-  void                        SetDoMatching(Bool_t b)            { fDoMatching      = b; }
+  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         ; }
 
  protected:
   Bool_t                      IsEventSelected();
-  Bool_t                      AcceptJet(AliEmcalJet* jet)   const;
+  Bool_t                      AcceptJet(AliEmcalJet* jet) const;
+  Bool_t                      AcceptBiasJet2(AliEmcalJet *jet) const;
   void                        ExecOnce();
   void                        DoJetLoop(TClonesArray *jets1, TClonesArray *jets2, Bool_t mc);
   Bool_t                      FillHistograms();
   Bool_t                      RetrieveEventObjects();
   Bool_t                      Run();
+  Double_t                    GetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2) const;
 
-  TString                     fMCTracksName;              // name of MC particle collection
-  TString                     fMCJetsName;                // name of MC jet collection
-  Double_t                    fMaxDistance;               // maximum distance between matched particle and detector level jets
-  Bool_t                      fDoWeighting;               // = true, weight using trials and given x section
-  Bool_t                      fEventWeightHist;           // = true create event weight histogram
-  Bool_t                      fMCFiducial;                // = true MC jets in fiducial acceptance
-  Double_t                    fMCminEta;                  // MC jets minimum eta
-  Double_t                    fMCmaxEta;                  // MC jets maximum eta
-  Double_t                    fMCminPhi;                  // MC jets minimum phi
-  Double_t                    fMCmaxPhi;                  // MC jets maximum phi
-  Int_t                       fSelectPtHardBin;           // select one pt hard bin for analysis
-  Bool_t                      fDoMatching;                // whether or not it should run the matching between MC and rec jets
+  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
-  Double_t                    fEventWeight;               //!event weight
-  Int_t                       fPtHardBin;                 //!event pt hard bin
-  Int_t                       fNTrials;                   //!event trials
-  TClonesArray               *fMCTracks;                  //!MC particles
-  TClonesArray               *fMCJets;                    //!MC jets
+  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 
   // General histograms
-  TH1F                       *fHistNTrials;               //!total number of trials per pt hard bin
-  TH1F                       *fHistEvents;                //!total number of events per pt hard bin
-  TH1F                       *fHistEventWeight[11];       //!event weight
-  // Particle level jets
-  TH2F                       *fHistMCJetPhiEta;           //!phi-eta distribution of jets
-  TH1F                       *fHistMCJetsPt;              //!inclusive jet pt spectrum
-  TH2F                       *fHistMCJetPhiEtaFiducial;   //!phi-eta distribution of jets in fiducial acceptance (plus lead hadron bias)
-  TH1F                       *fHistMCJetsPtFiducial;      //!inclusive jet pt spectrum in fiducial acceptance (plus lead hadron bias)
-  TH2F                       *fHistMCJetsNEFvsPt;         //!jet neutral energy fraction vs. jet pt
-  TH2F                       *fHistMCJetsZvsPt;           //!constituent Pt over Jet Pt ratio vs. jet pt
-  // Detector level jets
-  TH2F                       *fHistJetPhiEta;             //!phi-eta distribution of jets
-  TH1F                       *fHistJetsPt;                //!inclusive jet pt spectrum
-  TH2F                       *fHistJetsNEFvsPt;           //!jet neutral energy fraction vs. jet pt
-  TH2F                       *fHistJetsZvsPt;             //!constituent Pt over Jet Pt ratio vs. jet pt
-  // Detector-particle level matching
-  TH1F                       *fHistClosestDistance;       //!distance between closest particle to detector level jet
-  TH1F                       *fHistClosestDeltaPhi;       //!delta phi between closest particle to detector level jet
-  TH1F                       *fHistClosestDeltaEta;       //!delta eta between closest particle to detector level jet
-  TH1F                       *fHistClosestDeltaPt;        //!delta pt between closest particle to detector level jet
-  TH1F                       *fHistNonMatchedMCJetPt;     //!non-matched mc jet pt distribution
-  TH1F                       *fHistNonMatchedJetPt;       //!non-matched jet pt distribution
-  TH2F                       *fHistPartvsDetecPt;         //!particle vs detector level jet pt
-  TH1F                       *fHistMissedMCJets;          //!mc jets not measured
+  TH1                        *fHistNTrials;                   //!total number of trials per pt hard bin
+  TH1                        *fHistEvents;                    //!total number of events per pt hard bin
+  // 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
+  // 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
+  // Jet1-Jet2 matching
+  TH2                        *fHistMatchingLevelvsJet2Pt;              //!matching level vs jet 2 pt
+  TH3                        *fHistClosestDeltaEtaPhivsJet2Pt;         //!delta eta-phi between matched jets vs jet 2 pt
+  TH2                        *fHistClosestDeltaPtvsJet2Pt;             //!delta pt between matched jets vs jet 2 pt
+  TH2                        *fHistClosestDeltaCorrPtvsJet2Pt;         //!delta pt corr between matched jets vs jet 2 pt
+  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                        *fHistJet1PtvsJet2Pt;                     //!correlation jet 1 pt vs jet 2 pt
+  TH2                        *fHistJet1CorrPtvsJet2CorrPt;             //!correlation jet 1 corr pt vs jet 2 corr pt
+  TH2                        *fHistMissedJets2PtArea;                  //!jets 2 not found in jet 1 collection
 
  private:
   AliJetResponseMaker(const AliJetResponseMaker&);            // not implemented
   AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented
 
-  ClassDef(AliJetResponseMaker, 8) // Jet response matrix producing task
+  ClassDef(AliJetResponseMaker, 10) // Jet response matrix producing task
 };
 #endif