]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSVertexer.h
e850e7e3adab1dddbfe069dc60940009fbffead7
[u/mrichter/AliRoot.git] / ITS / AliITSVertexer.h
1 #ifndef ALIITSVERTEXER_H
2 #define ALIITSVERTEXER_H
3
4 #include<AliVertexer.h>
5
6 ///////////////////////////////////////////////////////////////////
7 //                                                               //
8 // Base class for primary vertex reconstruction  for ITS         //
9 //                                                               //
10 ///////////////////////////////////////////////////////////////////
11
12 /* $Id$ */
13
14 class TString;
15
16 class AliITSVertexer : public AliVertexer {
17
18  public:
19     // default constructor
20     AliITSVertexer();   
21     virtual ~AliITSVertexer();
22     virtual AliESDVertex *FindVertexForCurrentEvent(TTree *itsClusterTree)=0;
23     virtual void PrintStatus() const = 0;
24
25     void FindMultiplicity(TTree *itsClusterTree);
26     void SetFirstEvent(Int_t ev){fFirstEvent = ev;}
27     void SetLastEvent(Int_t ev){fLastEvent = ev;}
28     const Float_t GetPipeRadius()const {return fgkPipeRadius;}
29     void SetLaddersOnLayer2(Int_t ladwid=4);
30     virtual void SetUseModule(Int_t imod, Bool_t optUse){
31       if(imod>=0 && imod<kNSPDMod) fUseModule[imod]=optUse;
32     }
33     virtual Bool_t IsModuleUsed(Int_t imod) const {
34       if(imod>=0 && imod<kNSPDMod) return fUseModule[imod];
35       else return 0;
36     }
37     enum{kNSPDMod=240};
38
39     // Methods containing run-loaders, should be moved to some other class
40     void Init(TString filename);
41     void WriteCurrentVertex();
42     void FindVertices();
43
44  protected:
45     static const Float_t fgkPipeRadius;  // beam pipe radius (cm)
46     UShort_t *fLadders; // array with layer1-layer2 ladders correspondances  
47     Int_t fLadOnLay2;   // (2*fLadOnLay2+1)=number of layer2 ladders 
48                       // associated to a layer1 ladder
49     Bool_t  fUseModule[kNSPDMod]; // flag for enabling/disabling SPD modules
50  
51  private:
52     // copy constructor (NO copy allowed: the constructor is protected
53     // to avoid misuse)
54     AliITSVertexer(const AliITSVertexer& vtxr);
55     // assignment operator (NO assignment allowed)
56     AliITSVertexer& operator=(const AliITSVertexer& /* vtxr */);
57
58     Int_t fFirstEvent;          // First event to be processed by FindVertices
59     Int_t fLastEvent;           // Last event to be processed by FindVertices 
60
61   ClassDef(AliITSVertexer,6);
62 };
63
64 #endif