]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSVertexer.h
Moving required CMake version from 2.8.4 to 2.8.8
[u/mrichter/AliRoot.git] / ITS / AliITSVertexer.h
index f41ee91dc3376de70111c934cd5832153cc8f190..710df21dc51073cb9e29319c50df18ef5a1c8e14 100644 (file)
@@ -2,17 +2,25 @@
 #define ALIITSVERTEXER_H
 
 #include<AliVertexer.h>
-#include "AliITSDetTypeRec.h"
+//#include "AliITSDetTypeRec.h"
 
 ///////////////////////////////////////////////////////////////////
 //                                                               //
 // Base class for primary vertex reconstruction  for ITS         //
+// Daughter classes:                                             //
+// AliITSVertexer3D                                              //
+// AliITSVertexer3DTapan                                         //
+// AliITSVertexerCosmics                                         //
+// AliITSVertexerFast                                            //
+// AliITSVertexerFixed                                           //
+// AliITSVertexerZ                                               //
 //                                                               //
 ///////////////////////////////////////////////////////////////////
 
 /* $Id$ */
 
 class TString;
+class AliITSDetTypeRec;
 
 class AliITSVertexer : public AliVertexer {
 
@@ -23,19 +31,23 @@ class AliITSVertexer : public AliVertexer {
     virtual AliESDVertex *FindVertexForCurrentEvent(TTree *itsClusterTree)=0;
     virtual void PrintStatus() const = 0;
 
+    virtual void ResetVertex();
     void FindMultiplicity(TTree *itsClusterTree);
     void SetFirstEvent(Int_t ev){fFirstEvent = ev;}
     void SetLastEvent(Int_t ev){fLastEvent = ev;}
     static Float_t GetPipeRadius() {return fgkPipeRadius;}
     void SetLaddersOnLayer2(Int_t ladwid=4);
+    void SetComputeMultiplicity(Bool_t opt=kTRUE){fComputeMultiplicity=opt;}
     virtual void SetUseModule(Int_t imod, Bool_t optUse){
       if(imod>=0 && imod<kNSPDMod) fUseModule[imod]=optUse;
-    }
+    }    
     virtual Bool_t IsModuleUsed(Int_t imod) const {
       if(imod>=0 && imod<kNSPDMod) return fUseModule[imod];
       else return 0;
     }
 
+    virtual AliESDVertex* GetAllVertices(Int_t &novertices) const {novertices = fNoVertices; return fVertArray; }
+
     AliITSDetTypeRec *GetDetTypeRec() const {return fDetTypeRec;}
     virtual void SetDetTypeRec(AliITSDetTypeRec *ptr){fDetTypeRec = ptr;}
     enum{kNSPDMod=240};
@@ -61,12 +73,15 @@ class AliITSVertexer : public AliVertexer {
     UShort_t *fLadders; // array with layer1-layer2 ladders correspondances  
     Int_t fLadOnLay2;   // (2*fLadOnLay2+1)=number of layer2 ladders 
                       // associated to a layer1 ladder
+    Bool_t  fComputeMultiplicity;      // flag to switch on/off tracklet calculation
     Bool_t  fUseModule[kNSPDMod]; // flag for enabling/disabling SPD modules
     AliITSDetTypeRec *fDetTypeRec;  //! pointer to DetTypeRec
     Int_t fMinTrackletsForPilup;  // min. n. of tracklets for pilup definition
     Bool_t fIsPileup;             // flag for pileup
     Int_t fNTrpuv;             // tracklets in pile-up vertex
     Float_t fZpuv;             // Z of second pile-up vertex
+    Int_t fNoVertices;         //! number of vertices found 
+    AliESDVertex* fVertArray;    //! vertices (main+pileupped)
 
  private:
     // copy constructor (NO copy allowed: the constructor is protected
@@ -78,7 +93,7 @@ class AliITSVertexer : public AliVertexer {
     Int_t fFirstEvent;          // First event to be processed by FindVertices
     Int_t fLastEvent;           // Last event to be processed by FindVertices
 
-  ClassDef(AliITSVertexer,9);
+  ClassDef(AliITSVertexer,11);
 };
 
 #endif