]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/GammaConv/AliAnalysisTaskGammaConversion.h
Multiplicity selection in pp as cut number
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskGammaConversion.h
index e66820ff312d52362b388681f204e140cf4f9125..91039dd8d4f8c1324da6fcdc5a3312f4dbf626a5 100644 (file)
@@ -14,7 +14,7 @@
 #include <vector>
 #include "AliV0Reader.h"
 #include "AliGammaConversionBGHandler.h"
-#include "TRandom.h"
+//#include "TRandom3.h"
 //#include "AliCFManager.h"  // for CF
 //#include "AliCFContainer.h"   // for CF
 
@@ -32,13 +32,16 @@ class AliMCEvent;
 class TList;
 class AliStack;
 class AliESDtrackCuts;
+class AliTriggerAnalysis;
 class AliCFManager; // for CF
 class AliCFContainer; // for CF
+class TRandom3;
 
 class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
 {
        
  public:
+  typedef enum { kProcSD, kProcDD, kProcND, kProcUnknown, kNProcs } ProcType_t; 
   AliAnalysisTaskGammaConversion();
   AliAnalysisTaskGammaConversion(const char* name);
   virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor
@@ -50,13 +53,14 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   virtual void UserExec(Option_t *option);
   virtual void Terminate(Option_t *option);
   //virtual void ConnectInputData(Option_t * option);
-               
+  void CheckMesonProcessTypeEventQuality(Int_t evtQ);
+  Int_t GetProcessType(const AliMCEvent * mcEvt) ;
   void ProcessMCData();
   void ProcessV0sNoCut();
   void ProcessV0s();
   void ProcessGammasForNeutralMesonAnalysis();
   void ProcessGammasForOmegaMesonAnalysis();
-  void ProcessConvPHOSGammasForNeutralMesonAnalysis();
+  //  void ProcessConvPHOSGammasForNeutralMesonAnalysis();
   void RecalculateV0ForGamma();
   // for CF
   void SetCFManager(AliCFManager * const io) {fCFManager = io;};
@@ -70,7 +74,7 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void FillAODWithConversionGammas();
   // end AOD
                
-  static Bool_t IsGoodImpPar(AliESDtrack *const track);
+  static Bool_t IsGoodImpPar(const AliESDtrack *const track);
        
   // for GammaJetAnalysis
   void ProcessGammasForGammaJetAnalysis();
@@ -114,13 +118,13 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void CalculateBackground();
   void SetWriteNtuple(Bool_t writeNtuple){fWriteNtuple = writeNtuple;}
   void FillNtuple();
-  Double_t GetMCOpeningAngle(TParticle* const daughter0, TParticle* const daughter1) const;
+  Double_t GetMCOpeningAngle(const TParticle* const daughter0,const 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);        
-  double GetSigmaToVertex(AliESDtrack* t);
+  void GetPID(const AliESDtrack *track, Stat_t &pid, Stat_t &weight);  
+  double GetSigmaToVertex(const AliESDtrack* t);
   void ElectronBackground(TString hBg, TClonesArray e);
   void FillAngle(TString histoName,TClonesArray const tlVeNeg, TClonesArray const tlVePos);
   void FillElectronInvMass(TString histoName, TClonesArray const negativeElectron, TClonesArray const positiveElectron);
@@ -136,27 +140,33 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
 
   void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
 
-  void MoveParticleAccordingToVertex(AliKFParticle *particle,AliGammaConversionBGHandler::GammaConversionVertex *vertex);
+  void MoveParticleAccordingToVertex(AliKFParticle * particle,const AliGammaConversionBGHandler::GammaConversionVertex *vertex);
 
   void SetApplyChi2Cut(Bool_t flag){fApplyChi2Cut = flag;}
 
   void SetDoRotation(Bool_t flag){fDoRotation = flag;}
 
-  void SetPMDegreesBG(Int_t deg){nDegreesPMBackground=deg;}
+  void SetPMDegreesBG(Int_t deg){fNDegreesPMBackground=deg;}
 
-  void SetNumberOfRotationsBG(Int_t nRot){nRandomEventsForBG=nRot;}
+  void SetNumberOfRotationsBG(Int_t nRot){fNRandomEventsForBG=nRot;}
 
   void RotateKFParticle(AliKFParticle * kfParticle,Double_t angle);
 
   void SetCheckBGProbability(Bool_t flag){fCheckBGProbability = flag;}
 
+  void SetRemovePileUp(Bool_t removePileUp) { fRemovePileUp = removePileUp; }
+
+  void SetSelectV0AND(Bool_t selectV0AND) { fSelectV0AND = selectV0AND; }
+  void SetUseMultiplicity(Int_t useMultiplicity) {fUseMultiplicity=useMultiplicity;}
+  void SetUseMultiplicityBin(Int_t useMultiplicityBin) {fUseMultiplicityBin=useMultiplicityBin;}
+  Int_t CalculateMultiplicityBin();
  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); 
+  void AddPionToAOD(const AliKFParticle * const pionkf, Double_t mass, Int_t daughter1, Int_t daughter2); 
+  void AddOmegaToAOD(const AliKFParticle * const omegakf, Double_t mass, Int_t daughter1, Int_t daughter2); 
                
   // for CF
   enum{
@@ -166,8 +176,8 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
     kStepLikeSign = 3,
     kStepTPCRefit = 4,
     kStepKinks = 5,
-    kStepdEdx_electronselection = 6,
-    kStepdEdx_pionrejection = 7,
+    kStepdEdxElectronSelection = 6,
+    kStepdEdxPpionRejection = 7,
     kStepNContributors = 8,
     kStepTPCPID = 9,
     kStepR = 10,
@@ -276,16 +286,21 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   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
-  Bool_t fUseTrackMultiplicityForBG;
-  Bool_t fMoveParticleAccordingToVertex;
-  Bool_t fApplyChi2Cut;
-  Int_t nRandomEventsForBG;
-  Int_t nDegreesPMBackground;
-  Bool_t fDoRotation;
-  Bool_t fCheckBGProbability;
+  Bool_t fUseTrackMultiplicityForBG; //flag
+  Bool_t fMoveParticleAccordingToVertex; //flag
+  Bool_t fApplyChi2Cut; //flag
+  Int_t fNRandomEventsForBG; //number of random events to use in rotation method
+  Int_t fNDegreesPMBackground; // number of degree window to rotate particles for rotation method
+  Bool_t fDoRotation; //flag
+  Bool_t fCheckBGProbability; //flag
   vector<Int_t>fKFReconstructedGammasV0Index; // index of the reconstructed v0s
-
-  ClassDef(AliAnalysisTaskGammaConversion, 12); // Analysis task for gamma conversions
+  Bool_t fRemovePileUp;                 // Remove Pile Up
+  Bool_t fSelectV0AND;                 // Select V0AND
+  AliTriggerAnalysis *fTriggerAnalysis; //! Trigger Analysis for Normalisation
+  Int_t fMultiplicity;
+  Int_t fUseMultiplicity;
+  Int_t fUseMultiplicityBin;
+  ClassDef(AliAnalysisTaskGammaConversion, 15); // Analysis task for gamma conversions
 };
 
 #endif //ALIANALYSISTASKGAMMA_H