]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/AliAnalysisTaskFilteredTree.h
fixing clang issues
[u/mrichter/AliRoot.git] / PWGPP / AliAnalysisTaskFilteredTree.h
index bd6c5b15ce292a45282da54afee300222833cca0..946ff6237ed9887ec326d86009ee6bccffaf34fa 100644 (file)
@@ -19,10 +19,17 @@ class AliESDEvent;
 class AliMCEvent; 
 class AliKFParticle; 
 class AliESDv0; 
+class AliExternalTrackParam;
+class AliESDtrack;
+class AliESDfriendTrack;
+class AliESDVertex;
+class AliStack;
 class TList;
 class TObjArray;
 class TTree;
 class TTreeSRedirector;
+class TParticle;
+class TH3D;
 
 #include "AliTriggerAnalysis.h"
 #include "AliAnalysisTaskSE.h"
@@ -43,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; }
   
@@ -54,14 +61,16 @@ 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 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; }
@@ -73,9 +82,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]);
@@ -91,10 +100,19 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   
   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
@@ -104,7 +122,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  
@@ -122,7 +142,8 @@ class AliAnalysisTaskFilteredTree : public AliAnalysisTaskSE {
   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
@@ -130,9 +151,24 @@ 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
+
   AliAnalysisTaskFilteredTree(const AliAnalysisTaskFilteredTree&); // not implemented
   AliAnalysisTaskFilteredTree& operator=(const AliAnalysisTaskFilteredTree&); // not implemented
   
+  AliESDfriendTrack* fDummyFriendTrack; //! needed for proper init of the output tree
+  AliESDtrack* fDummyTrack; //! dummy track for tree init
+
   ClassDef(AliAnalysisTaskFilteredTree, 1); // example of analysis
 };