]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/GammaConv/AliAnalysisTaskGammaConversion.h
Added Pi0 and Omega AOD branches
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskGammaConversion.h
index e57c0df5898b941b52769d0cb07a572014c51428..d0726b4bdc2fbbde88bbe9c9d3421daa64c24f55 100644 (file)
@@ -20,7 +20,9 @@ class AliGammaConversionAODObject;
 class TNtuple;
 class AliGammaConversionHistograms;
 class AliESDv0;
+class AliV0;
 class AliKFParticle;
+class AliKFVertex;
 class AliESDInputHandler;
 class AliESDEvent;
 class AliAODEvent;
@@ -31,6 +33,7 @@ class AliESDtrackCuts;
 class AliCFManager; // for CF
 class AliCFContainer; // for CF
 
+
 class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
 {
        
@@ -45,7 +48,7 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   virtual void LocalInit() {Init();}
   virtual void UserExec(Option_t *option);
   virtual void Terminate(Option_t *option);
-  virtual void ConnectInputData(Option_t * option);
+  //virtual void ConnectInputData(Option_t * option);
                
   void ProcessMCData();
   void ProcessV0sNoCut();
@@ -53,7 +56,7 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void ProcessGammasForNeutralMesonAnalysis();
   void ProcessGammasForOmegaMesonAnalysis();
   void ProcessConvPHOSGammasForNeutralMesonAnalysis();
-               
+  void RecalculateV0ForGamma();
   // for CF
   void SetCFManager(AliCFManager * const io) {fCFManager = io;};
   AliCFManager *GetCFManager() const {return fCFManager;}
@@ -62,6 +65,7 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   // AOD
   TString GetAODBranchName() const {return  fAODBranchName;}
   void SetAODBranchName(TString name)  {fAODBranchName = name ;}       
+  void SetForceAOD(Bool_t forceAOD ) { fKFForceAOD = forceAOD; }
   void FillAODWithConversionGammas();
   // end AOD
                
@@ -94,7 +98,8 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void SetDoNeutralMesonV0MCCheck(Bool_t flag){fDoNeutralMesonV0MCCheck=flag;}
   void SetDoJet(Bool_t flag){fDoJet=flag;}
   void SetDoChic(Bool_t flag){fDoChic=flag;}
-               
+  void SetRecalculateV0ForGamma(Bool_t flag){fRecalculateV0ForGamma=flag;}             
+
   void SetElectronMass(Double_t electronMass){fElectronMass = electronMass;}
   void SetGammaMass(Double_t gammaMass){fGammaMass = gammaMass;}
   void SetGammaWidth(Double_t gammaWidth){fGammaWidth = gammaWidth;}
@@ -110,7 +115,7 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void FillNtuple();
   Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const;
   void CheckV0Efficiency();
-
+  void SetDeltaAODFileName(TString fn) { fKFDeltaAODFileName = fn; };
                
   //////////////////Chi_c Analysis////////////////////////////
   void GetPID(AliESDtrack *track, Stat_t &pid, Stat_t &weight);        
@@ -129,6 +134,10 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
  private:
   AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
   AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
+  
+  /// Add reconstructed pions to aod
+  void AddPionToAOD(AliKFParticle * pionkf, Double_t mass, Int_t daughter1, Int_t daughter2); 
+  void AddOmegaToAOD(AliKFParticle * pionkf, Double_t mass, Int_t daughter1, Int_t daughter2); 
                
   // for CF
   enum{
@@ -145,11 +154,13 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
     kStepR = 10,
     kStepLine = 11,
     kStepZ = 12,
-    kStepNDF = 13,
-    kStepChi2 = 14,
-    kStepEta = 15,
-    kStepPt = 16,
-    kStepTrueGamma = 17
+    kStepMinClsTPC = 13,
+    kStepSinglePt = 14,
+    kStepNDF = 15,
+    kStepChi2 = 16,
+    kStepEta = 17,
+    kStepPt = 18,
+    kStepTrueGamma = 19
   };
   
   AliV0Reader* fV0Reader; // The V0 reader object 
@@ -171,9 +182,11 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   Bool_t fDoOmegaMeson; // flag
   Bool_t fDoJet; // flag
   Bool_t fDoChic; // flag
+  Bool_t fRecalculateV0ForGamma;//flag
                
   TClonesArray * fKFReconstructedGammasTClone; //! transient
   TClonesArray * fKFReconstructedPi0sTClone; //! transient
+  TClonesArray * fKFRecalculatedGammasTClone; //! transient
   TClonesArray * fCurrentEventPosElectronTClone; //! transient
   TClonesArray * fCurrentEventNegElectronTClone; //! transient
   TClonesArray * fKFReconstructedGammasCutTClone; //! transient
@@ -186,7 +199,11 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
                
   vector<Int_t> fGammav1; // vector containing index of gamma 1
   vector<Int_t> fGammav2; // vector containing index of gamma 2
+
+  vector<Int_t> fElectronRecalculatedv1; // vector containing index of electron 1
+  vector<Int_t> fElectronRecalculatedv2; // vector containing index of electron 2
                
+  //  AliESDpid * fESDpid; // esd pid
 
 
   ///////Chi_c Analysis///////////////////////////
@@ -233,14 +250,17 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   Double_t fHighPtMapping; //! transient
   Bool_t fDoCF; //! transient
                
-  TClonesArray* fAODBranch ;        //! selected particles branch
+  TClonesArray * fAODGamma; //TClonesArray for gammas to put in AOD
+  TClonesArray * fAODPi0; //TTClonesArray for Pi0s to put in AOD
+  TClonesArray * fAODOmega; //TTClonesArray for omegas to put in AOD
   TString fAODBranchName; // New AOD branch name
-
+  Bool_t fKFForceAOD;  //Set the Analysis Manager FillAOD variable to true every event
+  TString fKFDeltaAODFileName; //! File name for delta AOD (if any)
   Bool_t fDoNeutralMesonV0MCCheck; //flag
 
   vector<Int_t>fKFReconstructedGammasV0Index; // index of the reconstructed v0s
 
-  ClassDef(AliAnalysisTaskGammaConversion, 8); // Analysis task for gamma conversions
+  ClassDef(AliAnalysisTaskGammaConversion, 9); // Analysis task for gamma conversions
 };
 
 #endif //ALIANALYSISTASKGAMMA_H