]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/STRANGENESS/LambdaK0/AliAnalysisTaskExtractPerformanceV0.h
Modifications to run over Injected MC: Ability to separate non-injected and injected
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / AliAnalysisTaskExtractPerformanceV0.h
index f2f0715b0576e5105fb63c43bd6235c42c2d5c0e..4367b019aaf2d7fd2cb4c7e6ac44bd9ab749c033 100644 (file)
@@ -52,27 +52,33 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
   Double_t MyRapidity(Double_t rE, Double_t rPz) const;
+  void CheckChargeV0(AliESDv0 *thisv0);
 
   void SetIsNuclear           (Bool_t lIsNuclear   = kTRUE ) { fkIsNuclear   = lIsNuclear;   }
   void SetIsLowEnergyPP       (Bool_t lLowEnergyPP = kTRUE ) { fkLowEnergyPP = lLowEnergyPP; }
   void SetUseOnTheFly         (Bool_t lUseOnTheFly = kTRUE ) { fkUseOnTheFly = lUseOnTheFly; }
+  void SetTakeAllTracks       (Bool_t lTakeAllTracks = kTRUE ) { fkTakeAllTracks = lTakeAllTracks; }
   
  private:
         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
         // your data member object is created on the worker nodes and streaming is not needed.
         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
   TList  *fListHistV0;  //! List of Cascade histograms
-  TTree  *fTree;              //! Output Tree
+  TTree  *fTree;              //! Output Tree, V0
 
   AliPIDResponse *fPIDResponse;     // PID response object
+  AliESDtrackCuts *fESDtrackCuts;   // ESD track cuts used for primary track definition
 
   //Objects Controlling Task Behaviour 
   
   Bool_t fkIsNuclear;   //if true, replace multiplicity est. by centrality (default FALSE) 
   Bool_t fkLowEnergyPP; //if true, skip FASTOnly (default FALSE)
   Bool_t fkUseOnTheFly; //if true, will use On-the-fly V0s instead of Offline V0s (default FALSE)
+  Bool_t fkTakeAllTracks; // if true, no TPC crossed rows and ratio cut
 
-  //Variables for Tree
+//===========================================================================================
+//   Variables for Tree, V0s
+//===========================================================================================
    Int_t    fTreeVariablePrimaryStatus;      //!
    Int_t    fTreeVariablePrimaryStatusMother;      //!
    Float_t fTreeVariableChi2V0;             //!
@@ -113,15 +119,51 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
    Int_t fTreeVariableIndexStatus; //!
    Int_t fTreeVariableIndexStatusMother; //!
 
+   Int_t   fTreeVariableRunNumber; //! 
+   ULong64_t fTreeVariableEventNumber; //!
+
    //Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.
    Float_t fTreeVariableDistOverTotMom;//!
 
    Float_t fTreeVariablePosEta; //!
    Float_t fTreeVariableNegEta; //!
 
+   Float_t fTreeVariableVertexZ; //!
+
    Int_t fTreeVariableLeastNbrCrossedRows;//!
    Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
    Int_t fTreeVariableMultiplicity;//!
+   Int_t fTreeVariableMultiplicityMC;//!
+
+  Float_t fTreeVariableV0x; //!
+  Float_t fTreeVariableV0y; //!
+  Float_t fTreeVariableV0z; //!
+
+  Float_t fTreeVariableV0Px; //!
+  Float_t fTreeVariableV0Py; //!
+  Float_t fTreeVariableV0Pz; //!
+
+  Float_t fTreeVariableMCV0x; //!
+  Float_t fTreeVariableMCV0y; //!
+  Float_t fTreeVariableMCV0z; //!
+
+  Float_t fTreeVariableMCV0Px; //!
+  Float_t fTreeVariableMCV0Py; //!
+  Float_t fTreeVariableMCV0Pz; //!
+
+  Float_t fTreeVariablePVx; //!
+  Float_t fTreeVariablePVy; //!
+  Float_t fTreeVariablePVz; //!
+
+  Float_t fTreeVariableMCPVx; //!
+  Float_t fTreeVariableMCPVy; //!
+  Float_t fTreeVariableMCPVz; //!
+
+  Bool_t fTreeVariableIsNonInjected; //!
+
+//===========================================================================================
+//   Histograms
+//===========================================================================================
 
    TH1F      *fHistV0MultiplicityBeforeTrigSel;              //! V0 multiplicity distribution
    TH1F      *fHistV0MultiplicityForTrigEvt;                 //! V0 multiplicity distribution
@@ -135,6 +177,26 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
    TH1F      *fHistMultiplicityNoTPCOnly;         //! multiplicity distribution
    TH1F      *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution
 
+  //Raw Data for J/Psi paper Technique
+       TH2F    *f2dHistMultiplicityVsTrueBeforeTrigSel;                //! multiplicity distribution    
+       TH2F    *f2dHistMultiplicityVsTrueForTrigEvt;                   //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsTrue;                                                     //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsTrueNoTPCOnly;                            //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsTrueNoTPCOnlyNoPileup;                    //! multiplicity distribution
+
+  //Raw Data for Vertex Z position estimator change
+       TH2F    *f2dHistMultiplicityVsVertexZBeforeTrigSel;             //! multiplicity distribution    
+       TH2F    *f2dHistMultiplicityVsVertexZForTrigEvt;                        //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsVertexZ;                                                  //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsVertexZNoTPCOnly;                         //! multiplicity distribution
+       TH2F    *f2dHistMultiplicityVsVertexZNoTPCOnlyNoPileup;                 //! multiplicity distribution
+
+   TH1F      *fHistGenVertexZBeforeTrigSel;     //! multiplicity distribution      
+   TH1F      *fHistGenVertexZForTrigEvt;        //! multiplicity distribution
+   TH1F      *fHistGenVertexZ;                  //! multiplicity distribution
+   TH1F      *fHistGenVertexZNoTPCOnly;         //! multiplicity distribution
+   TH1F      *fHistGenVertexZNoTPCOnlyNoPileup; //! multiplicity distribution
+
 //---> Filled At Analysis Scope
 
    TH3F      *f3dHistPrimAnalysisPtVsYVsMultLambda;     //! Lambda
@@ -147,6 +209,22 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
    TH3F      *f3dHistPrimRawPtVsYVsMultAntiLambda; //! AntiLambda
    TH3F      *f3dHistPrimRawPtVsYVsMultK0Short;    //! K0Short
 
+   TH3F      *f3dHistPrimRawPtVsYVsMultNonInjLambda;     //! Non-injected Lambda
+   TH3F      *f3dHistPrimRawPtVsYVsMultNonInjAntiLambda; //! Non-injected AntiLambda
+   TH3F      *f3dHistPrimRawPtVsYVsMultNonInjK0Short;    //! Non-injected K0Short
+
+   TH3F      *f3dHistPrimRawPtVsYVsMultMCLambda;     //! Lambda
+   TH3F      *f3dHistPrimRawPtVsYVsMultMCAntiLambda; //! AntiLambda
+   TH3F      *f3dHistPrimRawPtVsYVsMultMCK0Short;    //! K0Short
+
+   TH3F      *f3dHistPrimRawPtVsYVsVertexZLambda;     //! Lambda
+   TH3F      *f3dHistPrimRawPtVsYVsVertexZAntiLambda; //! AntiLambda
+   TH3F      *f3dHistPrimRawPtVsYVsVertexZK0Short;    //! K0Short
+
+   TH3F      *f3dHistPrimCloseToPVPtVsYVsMultLambda;     //! Lambda
+   TH3F      *f3dHistPrimCloseToPVPtVsYVsMultAntiLambda; //! AntiLambda
+   TH3F      *f3dHistPrimCloseToPVPtVsYVsMultK0Short;    //! K0Short
+
 //---> Filled vs Decay Length
 
    TH3F      *f3dHistPrimRawPtVsYVsDecayLengthLambda;     //! Lambda
@@ -157,6 +235,13 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
 
    TH3F      *f3dHistGenPtVsYVsMultXiMinus;      //! Generated Xi- Distrib
    TH3F      *f3dHistGenPtVsYVsMultXiPlus;       //! Generated Xi+ Distrib
+   TH3F      *f3dHistGenPtVsYVsMultOmegaMinus;      //! Generated Omega- Distrib
+   TH3F      *f3dHistGenPtVsYVsMultOmegaPlus;       //! Generated Omega+ Distrib
+
+   TH3F      *f3dHistGenSelectedPtVsYVsMultXiMinus;      //! Generated Xi- Distrib, at event selection level
+   TH3F      *f3dHistGenSelectedPtVsYVsMultXiPlus;       //! Generated Xi+ Distrib, at event selection level
+   TH3F      *f3dHistGenSelectedPtVsYVsMultOmegaMinus;      //! Generated Omega- Distrib, at event selection level
+   TH3F      *f3dHistGenSelectedPtVsYVsMultOmegaPlus;       //! Generated Omega+ Distrib, at event selection level
 
    TH1F      *fHistPVx;                      //! PVx distrib
    TH1F      *fHistPVy;                      //! PVy distrib
@@ -168,6 +253,8 @@ class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
    TH1F      *fHistPVyAnalysisHasHighPtLambda;                      //! PVy distrib
    TH1F      *fHistPVzAnalysisHasHighPtLambda;                      //! PVz distrib
 
+   TH1F      *fHistSwappedV0Counter;                      //! Swapped v0 counter
+
    AliAnalysisTaskExtractPerformanceV0(const AliAnalysisTaskExtractPerformanceV0&);            // not implemented
    AliAnalysisTaskExtractPerformanceV0& operator=(const AliAnalysisTaskExtractPerformanceV0&); // not implemented