]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliAnalysisTaskJetCorePP.h
change method name
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetCorePP.h
index aaf9d289f3dcdfedab811841a55746b0bbf0e681..b1bd2fae550c8c2596699d1b169d55e2ba980e4d 100644 (file)
@@ -7,7 +7,7 @@
 // **************************************
 // This task performs hadron-trigger recoil jet correlations 
 // Output pT spectrum of jet given trigger pT 
-// Author: filip krizek 1st March 2013
+// Author: filip krizek 16th March 2013
 // *******************************************
 
 class TH1F;
@@ -16,7 +16,9 @@ class TH1I;
 class TH2F;
 class TH3F;
 class TList;
+class TClonesArray;
 class THnSparse;
+class TRandom3;
 class TArrayI; 
 class TProfile;
 class TFile;
@@ -25,6 +27,9 @@ class AliESDEvent;
 class AliAODExtension;
 class AliAODEvent;
 class AliGenPythiaEventHeader;
+class AliMCEvent;    //FK//
+class AliMCEventHandler; //FK//
+class AliGenEventHeader; //FK//
 
 #include "AliAnalysisTaskSE.h"
 #include "AliVEvent.h"
@@ -44,10 +49,20 @@ public:
    virtual Bool_t Notify();
  
    virtual void  SetBranchName(const TString &name){ fJetBranchName = name; } 
-   virtual void  SetBranchNameMC(const TString &name){ fJetBranchNameMC = name; } 
+   virtual void  SetBranchNameChargMC(const TString &name){ fJetBranchNameChargMC = name; } 
+   virtual void  SetBranchNameKine(const TString &name){ fJetBranchNameKine = name; } 
+   virtual void  SetBranchNameFullMC(const TString &name){ fJetBranchNameFullMC = name; } 
+   virtual void  SetBranchNameBg(const TString &name){ fJetBranchNameBg = name; } 
+   virtual void  SetBranchNameBgChargMC(const TString &name){ fJetBranchNameBgChargMC = name; } 
+   virtual void  SetBranchNameBgKine(const TString &name){ fJetBranchNameBgKine = name; } 
    virtual void  SetNonStdFile(char* c){fNonStdFile = c;} 
    virtual void  SetSystem(Int_t sys) { fSystem = sys; } 
    virtual void  SetJetR(Float_t jR) { fJetParamR = jR; }
+   virtual void  SetBgJetR(Float_t bgjR) { fBgJetParamR = bgjR; }
+   virtual void  SetBgMaxJetPt(Float_t mpt){ fBgMaxJetPt = mpt;}
+   virtual void  SetRndTrials(Int_t nt){ fnTrials = nt;}
+   virtual void  SetFreeAreaFrac(Float_t frac){ fJetFreeAreaFrac = frac;}
+   virtual void  SetBgConeR(Float_t cr){ fBgConeR = cr; } 
    virtual void  SetOfflineTrgMask(AliVEvent::EOfflineTriggerTypes mask) { fOfflineTrgMask = mask; } 
    virtual void  SetMinContribVtx(Int_t n) { fMinContribVtx = n; } 
    virtual void  SetVtxZMin(Float_t z) { fVtxZMin = z; }
@@ -60,33 +75,59 @@ public:
    virtual void  SetTriggerEtaCut(Float_t eta) { fTriggerEtaCut = eta; }
    virtual void  SetTrackEtaCut(Float_t eta) { fTrackEtaCut = eta; }
    virtual void  SetTrackLowPtCut(Float_t pt) { fTrackLowPtCut=pt; } 
+   virtual void  SetTriggerType(Int_t tt){ fHardest=tt;}
+   virtual void  SetEventNumberRangeLow(Int_t rl){ fEventNumberRangeLow=rl;}
+   virtual void  SetEventNumberRangeHigh(Int_t rh){ fEventNumberRangeHigh=rh;}  
+   virtual void  SetTriggerPtRangeLow(Float_t tl){ fTriggerPtRangeLow=tl;}   
+   virtual void  SetTriggerPtRangeHigh(Float_t th){ fTriggerPtRangeHigh=th;}  
+   virtual void  SetFillResponseMatrix(Bool_t brm){ fFillRespMx = brm;}
+   virtual void  SetBinning(Bool_t bbb) { fDoubleBinning = bbb; } 
+   virtual void  SetUseExchangeContainerInput(Bool_t b){ fUseExchContainer = b;} 
 
    Double_t RelativePhi(Double_t angle1, Double_t angle2); 
 
 private:
    //private member functions
-   Int_t   GetListOfTracks(TList *list); //returns index of trig and track list 
-   //Double_t GetBackgroundInPerpCone(Float_t jetR, Double_t jetPhi, Double_t jetEta, TList* trkList); //sums pT in the cone perp in phi to jet
+   Int_t   GetListOfTracks(TList *list); //returns index of trig and track list
+
    Bool_t SelectMCGenTracks(AliVParticle *trk, TList *trkList, Double_t &ptLeading, Int_t &index, Int_t counter);
    void FillEffHistos(TList *recList, TList *genList);
-
+   
+   void EstimateBgRhoMedian(TList *listJet, TList* listPart, Double_t &rhoMedian, Int_t mode);//median method to estimate bg
+   void EstimateBgCone(TList *listJet, TList* listPart, Double_t &rhoPerpCone);//perp cone method to estimate bg
+   void ReadTClonesArray(TString bname, TList *list); //init jets lists
    //private member objects
    AliESDEvent *fESD;    //! ESD object
    AliAODEvent *fAODIn;  //! AOD event for AOD input tracks
    AliAODEvent *fAODOut; //! AOD event 
    AliAODExtension  *fAODExtension; //! where we take the jets from can be input or output AOD
+   AliMCEvent           *fMcEvent;    //! MC event                       
+   AliInputEventHandler *fMcHandler;  //! MCEventHandler                 
+
 
    // jets to compare
    TString fJetBranchName; //  name of jet branch 
-   TString fJetBranchNameMC; //  name of jet branch 
+   TString fJetBranchNameChargMC;   //  name of jet branch output AOD
+   TString fJetBranchNameKine; //  name of jet branch kine
+   TString fJetBranchNameFullMC; //  name of jet branch 
+   TString fJetBranchNameBg; //  name of bg (kt) jet branch 
+   TString fJetBranchNameBgChargMC; //  name of bg (kT) jet branch 
+   TString fJetBranchNameBgKine; //  name of bg (kT) jet branch 
    TList  *fListJets;      //! jet list reconstructed level
-   TList  *fListJetsGen;   //! jet list generator level  
+   TList  *fListJetsGen;   //! jet list generator level 
+   TList  *fListJetsGenFull; //! jet list generator level full jets 
+   TList  *fListJetsBg;      //! jet list reconstructed level to be removed from bg
+   TList  *fListJetsBgGen;   //! jet list generator level to be removed from bg  
+
 
    TString fNonStdFile;    // name of delta aod file to catch the extension
 
    // event selection
    Int_t   fSystem;        // collision system  pp=0, pPb=1  
    Float_t fJetParamR;     // jet cone resolution (radius) R 
+   Float_t fBgJetParamR;   // jet cone resolution (radius) R of jet to be removed from bg
+   Float_t fBgMaxJetPt;    // max pt of jets accepted in bg 
+   Float_t fBgConeR;       //perp cone R used to assess bg
    AliVEvent::EOfflineTriggerTypes fOfflineTrgMask; // mask of offline trigs 
    Int_t   fMinContribVtx; // min numb of trk contrib for prim vertex 
    Float_t fVtxZMin;      // lower bound on vertex z 
@@ -99,16 +140,25 @@ private:
    Float_t fTriggerEtaCut; // lower bound on eta for trigger track
    Float_t fTrackEtaCut;   // upper bound on eta for trigger track 
    Float_t fTrackLowPtCut; // upper bound on eta for trigger track
-   
+   Bool_t  fUseExchContainer; //use exhange container
    
    TList *fOutputList;          //! output data container 
    TH1I  *fHistEvtSelection;    //! event selection statistic 
    TH2F      *fh2Ntriggers;     //trigger pT versus centrality 
    THnSparse *fHJetSpec;      //Recoil jet spectrum  
+   THnSparse *fHJetSpecSubUeMedian; //Recoil jet spectrum, jet pT corrected by kT median  
+   THnSparse *fHJetSpecSubUeCone;  //Recoil jet spectrum, jet pT corrected by perp cone rho 
    
+   THnSparse *fHJetPhiCorr; // Dphi distribution jet-triger
+   THnSparse *fHJetPhiCorrSubUeMedian; // Dphi distribution jet-triger
+   THnSparse *fHJetPhiCorrSubUeCone; // Dphi distribution jet-triger
+
    //Diagnostics
-   THnSparse *fHJetDensity;       //density of jet with A>0.07  //fk
-   THnSparse *fHJetDensityA4;     //density of jets with A>0.4 //fk
+   THnSparse *fHJetUeMedian;   //UE background from kT median
+   THnSparse *fHJetUeCone;      //UE background from perp cone 
+   THnSparse *fHRhoUeMedianVsCone;    //EBE UE from perp cone
+   //THnSparse *fHJetDensity;       //density of jet with A>0.07  //fk
+   //THnSparse *fHJetDensityA4;     //density of jets with A>0.4 //fk
    TH2D *fhJetPhi;     //Azimuthal distribution of jets
    TH2D *fhTriggerPhi; //Azimuthal distribution of trigger hadron
    TH2D *fhJetEta;     //Pseudorapidity distribution of jets
@@ -122,20 +172,42 @@ private:
    TH1D *fhCentrality;  //Deltaphi between trigger and jet 
    TH1D *fhCentralityAccept;  //Deltaphi between trigger and jet after cut
 
-   THnSparse *fHJetPtRaw;      //bg unsubtr. vs bg subtr. pT spectrum of jets vs jet area
-   THnSparse *fHLeadingJetPtRaw; //bg unsubtr. vs bg. subtr. leading jet pT vs area 
-   THnSparse *fHDphiVsJetPtAll;   //Dphitrigger-jet  versus jet pt for all jets given pTtrigg  
+   //THnSparse *fHJetPtRaw;      //bg unsubtr. vs bg subtr. pT spectrum of jets vs jet area
+   //THnSparse *fHLeadingJetPtRaw; //bg unsubtr. vs bg. subtr. leading jet pT vs area 
+   //THnSparse *fHDphiVsJetPtAll;   //Dphitrigger-jet  versus jet pt for all jets given pTtrigg  
 
    //MC generator level
    TH2D      *fhJetPtGenVsJetPtRec; //jet respose matrix  
+   TH2D      *fhJetPtGenVsJetPtRecSubUeMedian; //jet respose matrix both pT with subtracted kT median bg 
+   TH2D      *fhJetPtGenVsJetPtRecSubUeCone; //jet respose matrix both pT with subtracted weighted kT median bg 
    TH1D      *fhJetPtGen;           //generated pT spectrum of jets  
+   TH1D      *fhJetPtSubUeMedianGen; //generated pT spectrum of jets with subtracted kT median  
+   TH1D      *fhJetPtSubUeConeGen;    //generated pT spectrum of jets with perp cone
+   TH2D      *fhJetPtGenChargVsJetPtGenFull; //generated pT spectrum of full jets
+   TH1D      *fhJetPtGenFull; // generated pT spectrum of full jets
    TH2F      *fh2NtriggersGen; //trigger pT versus centrality in generator level
-   THnSparse *fHJetSpecGen;    //Recoil jet spectrum in generator level 
+   THnSparse *fHJetSpecGen;    //Recoil jet spectrum at generator level 
+   THnSparse *fHJetSpecSubUeMedianGen;  //Recoil jet spectrum at gen level, jet pT corrected by kT median 
+   THnSparse *fHJetSpecSubUeConeGen; //Recoil jet spectrum at gen level, jet pT corrected with rho from cone
+   THnSparse *fHJetPhiCorrGen; // Dphi distribution jet-triger
+   THnSparse *fHJetPhiCorrSubUeMedianGen; // Dphi distribution jet-triger
+   THnSparse *fHJetPhiCorrSubUeConeGen; // Dphi distribution jet-triger
+   THnSparse *fHJetUeMedianGen;   //UE background from kT median
+   THnSparse *fHJetUeConeGen;      //UE background from Perp Cone 
    TH2D      *fhPtTrkTruePrimRec; // pt spectrum of true reconstructed primary tracks    
    TH2D      *fhPtTrkTruePrimGen; // pt spectrum of true generated primary track    
    TH2D      *fhPtTrkSecOrFakeRec; // pt spectrum of reconstructed fake or secondary tracks    
-   
-   Bool_t fIsMC;   //flag analysis on MC data with true and on the real data false
+   THnSparse *fHRhoUeMedianVsConeGen; //EBE UE from Median vs Perp Cone  generator level 
+  
+   TH1D  *fhEntriesToMedian; //how many entries were used to calculate
+   TH1D  *fhEntriesToMedianGen; //how many entries were used to calculate in MC
+   TH1D  *fhCellAreaToMedian; //how many entries were used to calculate
+   TH1D  *fhCellAreaToMedianGen; //how many entries were used to calculate in MC
+
+   Bool_t fIsChargedMC;   //flag analysis on MC data with true and on the real+kine data false
+   Bool_t fIsKine;       //flag analysis on kine data with true and on the real+MC data false
+   Bool_t fIsFullMC;   //flag analysis on MC data with true and on the real+kine data false
    TArrayI faGenIndex;   // labels of particles on MC generator level  
    TArrayI faRecIndex;   // labels of particles on reconstructed track level
    const Double_t fkAcceptance; //eta times phi  Alice coverage  
@@ -149,7 +221,29 @@ private:
    TH1F*         fh1PtHardTrials;  //! Number of trials
    Float_t       fAvgTrials;       // Average number of trials
 
-   ClassDef(AliAnalysisTaskJetCorePP, 4);  //has to end with number larger than 0
+   
+   Int_t   fHardest;               // trigger type 0=single incl, 1=LP 
+   Int_t   fEventNumberRangeLow;   // lower range of selected event numbers  
+   Int_t   fEventNumberRangeHigh;  // high range of selected event numbers  
+   Float_t fTriggerPtRangeLow;   // lower range of selected trigger pt
+   Float_t fTriggerPtRangeHigh;  // upper range of selected trigger pt
+
+   Bool_t  fFillRespMx;    //fill response matrix files
+
+
+   TRandom3* fRandom;           // TRandom3 
+   Int_t fnTrials;  //number of random trials to measure cell area
+   Float_t fJetFreeAreaFrac; //fraction of area in cell free of jets  
+   const Int_t  fnPhi; //number of cells in phi
+   const Int_t  fnEta; //number of cells in eta
+   const Double_t fEtaSize; //cell size in eta 
+   const Double_t fPhiSize; //cell size in phi
+   const Double_t fCellArea; //cell area
+   Double_t fSafetyMargin; //enlarge a bit the jet size to avoid contamination of UE
+
+   Bool_t fDoubleBinning; //0=use 2 GeV/c bins  ; 1= use 1 GeV/c bins
+   ClassDef(AliAnalysisTaskJetCorePP, 12);  //has to end with number larger than 0
 };
 
 #endif