]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/AliAnalysisTaskFilteredTree.h
The default cuts are now for PbPb (Maximiliano)
[u/mrichter/AliRoot.git] / PWGPP / AliAnalysisTaskFilteredTree.h
index 342df52d2f50a3261443c45422c3de61c19c3d37..1120ec4d5112fbb4286c4d748bf2e309039baaba 100644 (file)
@@ -21,6 +21,7 @@ class AliKFParticle;
 class AliESDv0; 
 class AliExternalTrackParam;
 class AliESDtrack;
+class AliESDfriendTrack;
 class AliESDVertex;
 class AliStack;
 class TList;
@@ -28,6 +29,7 @@ class TObjArray;
 class TTree;
 class TTreeSRedirector;
 class TParticle;
+class TH3D;
 
 #include "AliTriggerAnalysis.h"
 #include "AliAnalysisTaskSE.h"
@@ -48,7 +50,7 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   virtual Bool_t Notify();
   virtual void   FinishTaskOutput();
   void SetUseMCInfo(Bool_t info)           { fUseMCInfo = info; }
-  Bool_t IsUseMCInfo() const               { return fUseMCInfo; }
+  Bool_t IsUseMCInfo() const               { return (fMC)?kTRUE:kFALSE; }
   void SetUseESDfriends(Bool_t friends)    { fUseESDfriends = friends; }
   Bool_t IsUseESDfriends() const              { return fUseESDfriends; }
   
@@ -59,14 +61,17 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   void ProcessdEdx(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0, AliESDfriend *const esdFriend=0);
   void ProcessLaser(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0, AliESDfriend *const esdFriend=0);
   void ProcessMCEff(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0, AliESDfriend *const esdFriend=0);
-  void ProcessCosmics(AliESDEvent *const esdEvent=0); 
+  void ProcessCosmics(AliESDEvent *const esdEvent=0, AliESDfriend* esdFriend=0); 
+
+  void ProcessITSTPCmatchOut(AliESDEvent *const esdEvent=0,  AliESDfriend *const esdFriend=0);
+  void ProcessTrackMatch(AliESDEvent *const esdEvent=0,  AliESDfriend *const esdFriend=0);
 
   void SetEventCuts(AliFilteredTreeEventCuts* const cuts)              { fFilteredTreeEventCuts = cuts; }
   void SetAcceptanceCuts(AliFilteredTreeAcceptanceCuts* const cuts)    { fFilteredTreeAcceptanceCuts = cuts; }
   void SetRecAcceptanceCuts(AliFilteredTreeAcceptanceCuts* const cuts) { fFilteredTreeRecAcceptanceCuts = cuts; }
   void SetTrackCuts(AliESDtrackCuts* const cuts)                { fEsdTrackCuts = cuts; }
   void SetTrigger(const AliTriggerAnalysis::Trigger trigger)    { fTrigger = trigger; }
-  void SetAnalysisMode(const EAnalysisMode mode) { fAnalysisMode = mode; }
+  void SetAnalysisMode(EAnalysisMode mode) { fAnalysisMode = mode; }
 
   AliFilteredTreeEventCuts* GetEventCuts() const                       { return fFilteredTreeEventCuts; }
   AliFilteredTreeAcceptanceCuts* GetAcceptanceCuts() const             { return fFilteredTreeAcceptanceCuts; }
@@ -78,9 +83,9 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   TString GetCentralityEstimator() const {return fCentralityEstimator; }
   void SetCentralityEstimator(TString centEst="V0M") { fCentralityEstimator = centEst; }
 
-  Bool_t IsFromConversion(const Int_t label, AliStack *const stack);
-  Bool_t IsFromMaterial(const Int_t label, AliStack *const stack);
-  Bool_t IsFromStrangeness(const Int_t label, AliStack *const stack);
+  Bool_t IsFromConversion(Int_t label, AliStack *const stack);
+  Bool_t IsFromMaterial(Int_t label, AliStack *const stack);
+  Bool_t IsFromStrangeness(Int_t label, AliStack *const stack);
   TParticle *GetMother(TParticle *const particle, AliStack *const stack);
 
   Bool_t ConstrainTPCInner(AliExternalTrackParam *const tpcInnerC, const AliESDVertex* vtx, Double_t b[3]);
@@ -93,13 +98,23 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
 
   void SetLowPtTrackDownscaligF(Double_t fact) { fLowPtTrackDownscaligF = fact; }
   void SetLowPtV0DownscaligF(Double_t fact)    { fLowPtV0DownscaligF = fact; }
+  void SetFriendDownscaling(Double_t fact)    { fFriendDownscaling = fact; }
   
   void   SetProcessCosmics(Bool_t flag) { fProcessCosmics = flag; }
   Bool_t GetProcessCosmics() { return fProcessCosmics; }
+  //
+  void   SetProcessProcessITSTPCmatchOut(Bool_t flag) { fProcessITSTPCmatchOut = flag; }
+  Bool_t GetProcessProcessITSTPCmatchOut() { return fProcessITSTPCmatchOut; }
 
+  
   void SetProcessAll(Bool_t proc) { fProcessAll = proc; }
   static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AliFilteredTreeEventCuts *const evtCuts, AliFilteredTreeAcceptanceCuts *const accCuts);
 
+  void SetFillTrees(Bool_t filltree) { fFillTree = filltree ;}
+  Bool_t GetFillTrees() { return fFillTree ;}
+
+  void FillHistograms(AliESDtrack* const ptrack, AliExternalTrackParam* const ptpcInnerC, Double_t centralityF, Double_t chi2TPCInnerC);
+
  private:
 
   AliESDEvent *fESD;    //! ESD event
@@ -109,7 +124,9 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   TIterator *fPitList;  //! iterator over the output objetcs  
 
   Bool_t fUseMCInfo;        // use MC information
-  Bool_t fUseESDfriends;        // use esd friends
+  Bool_t fUseESDfriends;    // use esd friends
+  Bool_t fReducePileUp;     // downscale the information for the pile-up TPC tracks
+  Bool_t fFillTree;         // do not fill trees
 
   AliFilteredTreeEventCuts      *fFilteredTreeEventCuts;      // event cuts
   AliFilteredTreeAcceptanceCuts *fFilteredTreeAcceptanceCuts; // acceptance cuts  
@@ -123,11 +140,13 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   TString fCentralityEstimator;     // use centrality can be "VOM" (default), "FMD", "TRK", "TKL", "CL0", "CL1", "V0MvsFMD", "TKLvsV0M", "ZEMvsZDC"
 
   Double_t fLowPtTrackDownscaligF; // low pT track downscaling factor
-  Double_t fLowPtV0DownscaligF; // low pT V0 downscaling factor
+  Double_t fLowPtV0DownscaligF;    // low pT V0 downscaling factor
+  Double_t fFriendDownscaling;     // friend info downscaling )absolute value used), Modes>=1 downscaling in respect to the amount of tracks, Mode<=-1 (downscaling in respect to the data volume)
   Double_t fProcessAll; // Calculate all track properties including MC
   
   Bool_t fProcessCosmics; // look for cosmic pairs from random trigger
-  
+  Bool_t fProcessITSTPCmatchOut;  // swittch to process ITS/TPC standalone tracks
+
   TTree* fHighPtTree;       //! list send on output slot 0
   TTree* fV0Tree;           //! list send on output slot 0
   TTree* fdEdxTree;         //! list send on output slot 0
@@ -135,9 +154,22 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   TTree* fMCEffTree;        //! list send on output slot 0
   TTree* fCosmicPairsTree;  //! list send on output slot 0
 
+  TH3D* fPtResPhiPtTPC;    //! sigma(pt)/pt vs Phi vs Pt for prim. TPC tracks
+  TH3D* fPtResPhiPtTPCc;   //! sigma(pt)/pt vs Phi vs Pt for prim. TPC contrained to vertex tracks
+  TH3D* fPtResPhiPtTPCITS; //! sigma(pt)/pt vs Phi vs Pt for prim. TPC+ITS tracks
+
+  TH3D* fPtResEtaPtTPC;    //! sigma(pt)/pt vs Eta vs Pt for prim. TPC tracks
+  TH3D* fPtResEtaPtTPCc;   //! sigma(pt)/pt vs Eta vs Pt for prim. TPC contrained to vertex tracks
+  TH3D* fPtResEtaPtTPCITS; //! sigma(pt)/pt vs Eta vs Pt for prim. TPC+ITS tracks
+
+  TH3D* fPtResCentPtTPC;    //! sigma(pt)/pt vs Cent vs Pt for prim. TPC tracks
+  TH3D* fPtResCentPtTPCc;   //! sigma(pt)/pt vs Cent vs Pt for prim. TPC contrained to vertex tracks
+  TH3D* fPtResCentPtTPCITS; //! sigma(pt)/pt vs Cent vs Pt for prim. TPC+ITS tracks
+  TObjString fCurrentFileName; // cached value of current file name
+  AliESDtrack* fDummyTrack; //! dummy track for tree init
+
   AliAnalysisTaskFilteredTree(const AliAnalysisTaskFilteredTree&); // not implemented
   AliAnalysisTaskFilteredTree& operator=(const AliAnalysisTaskFilteredTree&); // not implemented
-  
   ClassDef(AliAnalysisTaskFilteredTree, 1); // example of analysis
 };