]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFParticleGenCuts.h
bug fixed for alignment, removed alignment database access from AliPMDUtility class
[u/mrichter/AliRoot.git] / CORRFW / AliCFParticleGenCuts.h
index 96bc09c43dd0544da053390bae1e09819631d593..d19148f1e882eb74b84856eafbe56772a43a7bb2 100644 (file)
@@ -55,7 +55,7 @@ class AliCFParticleGenCuts : public AliCFCutBase
   virtual ~AliCFParticleGenCuts() { };
   virtual Bool_t IsSelected(TObject* obj) ;
   Bool_t IsSelected(TList* /*list*/) {return kTRUE;}
-  virtual void   SetEvtInfo(TObject* mcEvent) ;
+  virtual void   SetMCEventInfo(const TObject* mcEvent) ;
   void    SetAODMC(Bool_t flag) {fIsAODMC=flag;}
 
   Bool_t IsPrimaryCharged(AliVParticle *mcPart);
@@ -70,10 +70,15 @@ class AliCFParticleGenCuts : public AliCFCutBase
   void SetRequireIsNeutral   () {fRequireIsNeutral  =kTRUE; fRequireIsCharged  =kFALSE;}
   void SetRequireIsPrimary   () {fRequireIsPrimary  =kTRUE; fRequireIsSecondary=kFALSE;}
   void SetRequireIsSecondary () {fRequireIsSecondary=kTRUE; fRequireIsPrimary  =kFALSE;}
-  void SetRequirePdgCode     (Int_t pdg)            {fRequirePdgCode=kTRUE; fPdgCode=pdg;}
+  void SetRequirePdgCode     (Int_t pdg, Bool_t useAbsolute=kFALSE) {
+                              fRequirePdgCode=kTRUE; 
+                             fPdgCode=pdg; 
+                             fRequireAbsolutePdg=useAbsolute;
+  }
   void SetProdVtxRangeX    (Double32_t xmin, Double32_t xmax) {fProdVtxXMin   =xmin; fProdVtxXMax   =xmax;}
   void SetProdVtxRangeY    (Double32_t ymin, Double32_t ymax) {fProdVtxYMin   =ymin; fProdVtxYMax   =ymax;}
   void SetProdVtxRangeZ    (Double32_t zmin, Double32_t zmax) {fProdVtxZMin   =zmin; fProdVtxZMax   =zmax;}
+  void SetProdVtxRange2D   (Bool_t b=kFALSE)                 {fProdVtxRange2D = b;}
   void SetDecayVtxRangeX   (Double32_t xmin, Double32_t xmax) {fDecayVtxXMin  =xmin; fDecayVtxXMax  =xmax;}
   void SetDecayVtxRangeY   (Double32_t ymin, Double32_t ymax) {fDecayVtxYMin  =ymin; fDecayVtxYMax  =ymax;}
   void SetDecayVtxRangeZ   (Double32_t zmin, Double32_t zmax) {fDecayVtxZMin  =zmin; fDecayVtxZMax  =zmax;}
@@ -114,6 +119,8 @@ class AliCFParticleGenCuts : public AliCFCutBase
   Bool_t     fRequireIsPrimary;   // require primary particle
   Bool_t     fRequireIsSecondary; // require secondary particle
   Bool_t     fRequirePdgCode;     // require check of the PDG code
+  Bool_t     fRequireAbsolutePdg; // use the PDG code absolute value, used also for the decay channel
+  Bool_t     fProdVtxRange2D;     // cut an ellipse in xy plane
   Int_t      fPdgCode ;           // particle PDG code
   Double32_t fProdVtxXMin;        // min X of particle production vertex
   Double32_t fProdVtxYMin;        // min Y of particle production vertex
@@ -131,12 +138,13 @@ class AliCFParticleGenCuts : public AliCFCutBase
   Double32_t fDecayLengthMax;     // max decay length (absolute)
   Double32_t fDecayRxyMin;        // min decay length in transverse plane wrt (0,0,0)
   Double32_t fDecayRxyMax;        // max decay length in transverse plane wrt (0,0,0)
-  TDecayChannel* fDecayChannel;   // decay channel 
+  TDecayChannel* fDecayChannel;   // decay channel : if fRequireAbsolutePdg, the antiparticle channel will be checked as well
 
   //QA histos
   TH1F*    fhCutStatistics;        // Histogram: statistics of what cuts the tracks did not survive
   TH2F*    fhCutCorrelation;      // Histogram: 2d statistics plot
   TH1F*    fhQA[kNCuts][kNStepQA]; // QA Histograms
+  TH2F*    fhProdVtxXY[2];        // Histogram: production vertex in tranzverse plane
   TArrayF* fCutValues;             // array of cut values
   TBits* fBitmap ;                 // stores single selection decisions