Added a new class for the AOD information
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliV0Reader.h
index 41a3ab9bd2e4afb4fe7a8bf36f942e92a1f9fa59..82c6d39c5f2836cf53c754c7f426469848e7b2e2 100644 (file)
@@ -48,6 +48,11 @@ class AliV0Reader : public TObject {
    */\r
   void Initialize();\r
 \r
+  /*\r
+   * Returns  AliESDEvent\r
+   */                  \r
+   AliESDEvent* GetESDEvent() const{return fESDEvent;} \r
+\r
   /*\r
    *Returns the number of v0s in the event, no cuts applied.\r
    */\r
@@ -90,14 +95,21 @@ class AliV0Reader : public TObject {
    * Returns the positive KF particle which belongs to fCurrentV0\r
    */\r
   AliKFParticle* GetPositiveKFParticle() const{return fCurrentPositiveKFParticle;}\r
+\r
   /*\r
    * Returns the KFParticle object of the 2 tracks.\r
    */\r
   AliKFParticle* GetMotherCandidateKFCombination() const{return fCurrentMotherKFCandidate;}\r
+\r
   /*\r
    * Checks the probablity that the PID of the particle is what we want it to be.\r
    */\r
   Bool_t CheckPIDProbability(Double_t negProbCut, Double_t posProbCut);\r
+  \r
+  /*\r
+   * Checks if the PID of the two particles are within our cuts.\r
+   */\r
+  void GetPIDProbability(Double_t &negPIDProb, Double_t &posPIDProb);\r
 \r
   /*\r
    *Get the negative MC TParticle from the stack \r
@@ -114,8 +126,17 @@ class AliV0Reader : public TObject {
    */\r
   TParticle * GetMotherMCParticle() const{return fMotherMCParticle;}\r
 \r
+  /*\r
+   * Flag to see if the v0 particles share the same mother\r
+   */\r
   Bool_t HasSameMCMother();\r
 \r
+\r
+  /*\r
+   *Get the PID of the MC mother particle\r
+   */\r
+  Int_t GetMotherMCParticlePDGCode() const{if(fMotherMCParticle != NULL){ cout<<"MCParticle exists"<<endl;} return fMotherMCParticle->GetPdgCode();}\r
+\r
   /*\r
    *Get the MC stack \r
    */\r
@@ -186,56 +207,231 @@ class AliV0Reader : public TObject {
    */\r
   Double_t GetOpeningAngle(){return fNegativeTrackLorentzVector->Angle(fPositiveTrackLorentzVector->Vect());}\r
 \r
+  /*\r
+   * Gets the Energy of the negative track.\r
+   */\r
   Double_t GetNegativeTrackEnergy() const{return fCurrentNegativeKFParticle->E();}\r
+\r
+  /*\r
+   * Gets the Energy of the positive track.\r
+   */\r
   Double_t GetPositiveTrackEnergy() const{return fCurrentPositiveKFParticle->E();}\r
+\r
+  /*\r
+   * Gets the Energy of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateEnergy() const{return fCurrentMotherKFCandidate->E();}\r
 \r
+  /*\r
+   * Gets the Pt of the negative track.\r
+   */\r
   Double_t GetNegativeTrackPt() const{return fNegativeTrackLorentzVector->Pt();}\r
+\r
+  /*\r
+   * Gets the Pt of the positive track.\r
+   */\r
   Double_t GetPositiveTrackPt() const{return fPositiveTrackLorentzVector->Pt();}\r
+\r
+  /*\r
+   * Gets the Pt of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidatePt() const{return fMotherCandidateLorentzVector->Pt();}\r
 \r
+  /*\r
+   * Gets the Eta of the negative track.\r
+   */\r
   Double_t GetNegativeTrackEta() const{return fNegativeTrackLorentzVector->Eta();}\r
+  /*\r
+   * Gets the Eta of the positive track.\r
+   */\r
   Double_t GetPositiveTrackEta() const{return fPositiveTrackLorentzVector->Eta();}\r
+  /*\r
+   * Gets the Eta of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateEta() const{return fMotherCandidateLorentzVector->Eta();}\r
 \r
+  /*\r
+   * Gets the NDF of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateNDF() const{return fCurrentMotherKFCandidate->GetNDF();}\r
+\r
+  /*\r
+   * Gets the Chi2 of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateChi2() const{return fCurrentMotherKFCandidate->GetChi2();}\r
+\r
+  /*\r
+   * Gets the Mass of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateMass() const{return fMotherCandidateKFMass;}\r
+\r
+  /*\r
+   * Gets the Width of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidateWidth() const{return fMotherCandidateKFWidth;}\r
 \r
+  /*\r
+   * Gets the Phi of the negative track.\r
+   */\r
   Double_t GetNegativeTrackPhi() const;\r
+\r
+  /*\r
+   * Gets the Phi of the positive track.\r
+   */\r
   Double_t GetPositiveTrackPhi() const;\r
+\r
+  /*\r
+   * Gets the Phi of the mother candidate.\r
+   */\r
   Double_t GetMotherCandidatePhi() const;\r
 \r
+  /*\r
+   * Gets the Rapidity of the mother candidate.\r
+   */\r
+  Double_t GetMotherCandidateRapidity() const;\r
+\r
+\r
+  /*\r
+   * Update data which need to be updated every event.\r
+   */\r
   void UpdateEventByEventData();\r
   \r
+  /*\r
+   * Gets the MaxRCut value.\r
+   */\r
   Double_t GetMaxRCut() const{return fMaxR;}\r
+\r
+  /*\r
+   * Gets the Eta cut value.\r
+   */\r
   Double_t GetEtaCut() const{return fEtaCut;}\r
+\r
+  /*\r
+   * Gets the Pt cut value.\r
+   */\r
   Double_t GetPtCut() const{return fPtCut;}\r
+\r
+  /*\r
+   * Gets the line cut values.\r
+   */\r
+  Double_t GetLineCutZRSlope() const{return fLineCutZRSlope;}\r
+  Double_t GetLineCutZValue() const{return fLineCutZValue;}\r
+  \r
+  /*\r
+   * Gets the Chi2 cut value for the conversions.\r
+   */\r
   Double_t GetChi2CutConversion() const{return fChi2CutConversion;}\r
+\r
+  /*\r
+   * Gets the Chi2 cut value for the mesons.\r
+   */\r
   Double_t GetChi2CutMeson() const{return fChi2CutMeson;}\r
 \r
+  Double_t GetPositiveTrackLength() const{return fCurrentPositiveESDTrack->GetIntegratedLength();}\r
+  Double_t GetNegativeTrackLength() const{return fCurrentNegativeESDTrack->GetIntegratedLength();}\r
+\r
+  Double_t GetPositiveNTPCClusters() const{return fCurrentPositiveESDTrack->GetTPCNcls();}\r
+  Double_t GetNegativeNTPCClusters() const{return fCurrentNegativeESDTrack->GetTPCNcls();}\r
+\r
+  /*\r
+   * Sets the MaxRCut value.\r
+   */\r
   void SetMaxRCut(Double_t maxR){fMaxR=maxR;}\r
+\r
+  /*\r
+   * Sets the EtaCut value.\r
+   */\r
   void SetEtaCut(Double_t etaCut){fEtaCut=etaCut;}\r
+\r
+  /*\r
+   * Sets the PtCut value.\r
+   */\r
   void SetPtCut(Double_t ptCut){fPtCut=ptCut;}\r
+\r
+  /*\r
+   * Sets the LineCut values.\r
+   */\r
+  void SetLineCutZRSlope(Double_t LineCutZRSlope){fLineCutZRSlope=LineCutZRSlope;}\r
+  void SetLineCutZValue(Double_t LineCutZValue){fLineCutZValue=LineCutZValue;}\r
+\r
+  /*\r
+   * Sets the Chi2Cut value for conversions.\r
+   */\r
   void SetChi2CutConversion(Double_t chi2){fChi2CutConversion=chi2;}\r
+\r
+  /*\r
+   * Sets the Chi2Cut for the mesons.\r
+   */\r
   void SetChi2CutMeson(Double_t chi2){fChi2CutMeson=chi2;}\r
   \r
+  /*\r
+   * Sets the XVertexCut value.\r
+   */\r
   void SetXVertexCut(Double_t xVtx){fCurrentXValue=xVtx;}\r
+\r
+  /*\r
+   * Sets the YVertexCut value.\r
+   */\r
   void SetYVertexCut(Double_t yVtx){fCurrentYValue=yVtx;}\r
+\r
+  /*\r
+   * Sets the ZVertexCut value.\r
+   */\r
   void SetZVertexCut(Double_t zVtx){fCurrentZValue=zVtx;}\r
+\r
+  /*\r
+   * Sets the PIDProbabilityCut value for track particles.\r
+   */\r
   void SetPIDProbability(Double_t pidProb){fPIDProbabilityCutPositiveParticle=pidProb; fPIDProbabilityCutNegativeParticle=pidProb;}\r
+\r
+  /*\r
+   * Sets the PIDProbability cut value for the negative track.\r
+   */\r
   void SetPIDProbabilityNegativeParticle(Double_t pidProb){fPIDProbabilityCutNegativeParticle=pidProb;}\r
+\r
+  /*\r
+   * Sets the PIDProbability cut value for the positive track.\r
+   */\r
   void SetPIDProbabilityPositiveParticle(Double_t pidProb){fPIDProbabilityCutPositiveParticle=pidProb;}\r
+\r
+  /*\r
+   * Sets the SigmaMassCut value.\r
+   */\r
   void SetSigmaMass(Double_t sigmaMass){fNSigmaMass=sigmaMass;}\r
 \r
+  /*\r
+   * Sets the flag to enable/disable the usage of MC information. \r
+   */\r
   void SetDoMCTruth(Bool_t doMC){fDoMC = doMC;}\r
 \r
-  void UpdateV0Information();\r
+  /*\r
+   * Updates the V0 information of the current V0.\r
+   */\r
+  Bool_t UpdateV0Information();\r
+\r
+  /*\r
+   * Resets the V0 index.\r
+   */\r
+  void ResetV0IndexNumber(){fCurrentV0IndexNumber=0;}\r
 \r
+  /*\r
+   * Sets the histograms.\r
+   */\r
   void SetHistograms(AliGammaConversionHistograms *histograms){fHistograms=histograms;}\r
 \r
+  /*\r
+   * Check for primary vertex.\r
+   */\r
+  Bool_t CheckForPrimaryVertex();\r
+\r
+  /*\r
+   * Gets a vector of good v0s.\r
+   */\r
   vector<AliKFParticle> GetCurrentEventGoodV0s() const{return fCurrentEventGoodV0s;}\r
+\r
+  /*\r
+   * Gets the vector of previous events v0s (for bacground analysis)\r
+   */\r
   vector<AliKFParticle> GetPreviousEventGoodV0s() const{return fPreviousEventGoodV0s;}\r
 \r
  private:\r
@@ -246,7 +442,7 @@ class AliV0Reader : public TObject {
   AliESDInputHandler* fESDHandler;      //! pointer to esd object\r
   AliESDEvent *fESDEvent;               //! pointer to esd object\r
 \r
-  AliGammaConversionHistograms *fHistograms;\r
+  AliGammaConversionHistograms *fHistograms; //! pointer to histogram handling class\r
   \r
   Int_t fCurrentV0IndexNumber;\r
   AliESDv0 * fCurrentV0;                //! pointer to the current v0\r
@@ -261,44 +457,46 @@ class AliV0Reader : public TObject {
   TLorentzVector * fPositiveTrackLorentzVector; //! pointer to the positive Track Lorentz Vector\r
   TLorentzVector * fMotherCandidateLorentzVector;   //! pointer to the mother candidate Track Lorentz Vector\r
 \r
-  Double_t fCurrentXValue;\r
-  Double_t fCurrentYValue;\r
-  Double_t fCurrentZValue;\r
+  Double_t fCurrentXValue;   // current x value\r
+  Double_t fCurrentYValue;   // current y value\r
+  Double_t fCurrentZValue;   // current z value\r
 \r
-  Int_t fPositiveTrackPID;\r
-  Int_t fNegativeTrackPID;\r
+  Int_t fPositiveTrackPID;   // positive track pid\r
+  Int_t fNegativeTrackPID;   // negative track pid\r
 \r
   TParticle *fNegativeMCParticle;      //!\r
   TParticle *fPositiveMCParticle;      //!\r
   TParticle *fMotherMCParticle;        //!\r
 \r
-  Double_t fMotherCandidateKFMass;\r
-  Double_t fMotherCandidateKFWidth;\r
+  Double_t fMotherCandidateKFMass;   // mass of mother candidate KF particle\r
+  Double_t fMotherCandidateKFWidth;  // width of mother candidate KF particle\r
 \r
-  Bool_t fUseKFParticle;\r
-  Bool_t fUseESDTrack;\r
-  Bool_t fDoMC;\r
+  Bool_t fUseKFParticle;   // flag \r
+  Bool_t fUseESDTrack;     // flag \r
+  Bool_t fDoMC;            // flag \r
 \r
   //cuts\r
-  Double_t fMaxR;\r
-  Double_t fEtaCut;\r
-  Double_t fPtCut;\r
-  Double_t fChi2CutConversion;\r
-  Double_t fChi2CutMeson;\r
-  Double_t fPIDProbabilityCutNegativeParticle;\r
-  Double_t fPIDProbabilityCutPositiveParticle;\r
-  Double_t fXVertexCut;\r
-  Double_t fYVertexCut;\r
-  Double_t fZVertexCut;\r
+  Double_t fMaxR; //r cut\r
+  Double_t fEtaCut; //eta cut\r
+  Double_t fPtCut; // pt cut\r
+  Double_t fLineCutZRSlope; //linecut\r
+  Double_t fLineCutZValue; //linecut\r
+  Double_t fChi2CutConversion; //chi2cut\r
+  Double_t fChi2CutMeson;  //chi2cut\r
+  Double_t fPIDProbabilityCutNegativeParticle; //pid cut\r
+  Double_t fPIDProbabilityCutPositiveParticle; //pid cut\r
+  Double_t fXVertexCut; //vertex cut\r
+  Double_t fYVertexCut; //vertex cut\r
+  Double_t fZVertexCut; // vertexcut\r
   \r
-  Double_t fNSigmaMass;\r
+  Double_t fNSigmaMass; //nsigma cut\r
   \r
-  Bool_t fUseImprovedVertex;\r
+  Bool_t fUseImprovedVertex; //flag\r
   \r
-  vector<AliKFParticle> fCurrentEventGoodV0s;\r
-  vector<AliKFParticle> fPreviousEventGoodV0s;\r
+  vector<AliKFParticle> fCurrentEventGoodV0s; //vector of good v0s\r
+  vector<AliKFParticle> fPreviousEventGoodV0s; // vector of good v0s from prevous events\r
 \r
-  ClassDef(AliV0Reader,0)\r
+  ClassDef(AliV0Reader,2)\r
 };\r
 \r
 \r