1 #ifndef ALIITSRECPOINTCONTAINER_H
2 #define ALIITSRECPOINTCONTAINER_H
3 /* Copyright(c) 2009-2011, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ////////////////////////////////////////////////////////////////////////
9 // Container class for ITS rec points //
10 ////////////////////////////////////////////////////////////////////////
12 #include <TClonesArray.h>
15 class AliITSRecoParam;
17 class AliITSRecPointContainer : public TObject {
21 virtual ~AliITSRecPointContainer(); //Destructor
23 Bool_t IsSPDActive() const {return fDet.Contains("SPD");}
24 Bool_t IsSDDActive() const {return fDet.Contains("SDD");}
25 Bool_t IsSSDActive() const {return fDet.Contains("SSD");}
26 Bool_t IsITSComplete() const {return fDet.Contains("ALL");}
27 Bool_t GetStatusOK() const {return fStatusOK;}
28 Int_t GetNumberOfModules() const {return fActualSize; }
30 static AliITSRecPointContainer* Instance(const AliITSRecoParam *ptr=NULL);
31 void PrepareToRead(){if(fNextEvent<0){fNextEvent=0;} else {++fNextEvent;}}
32 TClonesArray* FetchClusters(Int_t mod, TTree* tR);
33 TClonesArray* FetchClusters(Int_t mod, TTree* tR,Int_t cureve);
34 TClonesArray* UncheckedGetClusters(Int_t mod) const {return fArray[mod];}
36 // In the following two methods: 1<=lay<=6 (i.e. layers numbered from 1)
37 UInt_t GetNClustersInLayer(Int_t lay, TTree* tR, Int_t eventN=-1);
38 UInt_t GetNClustersInLayerFast(Int_t lay) const;
42 AliITSRecPointContainer(const AliITSRecoParam* krp=NULL); // Default constructor
43 AliITSRecPointContainer(const AliITSRecPointContainer& rec);
44 AliITSRecPointContainer& operator=(const AliITSRecPointContainer &source);
45 Bool_t CheckBoundaries(Int_t i)const { return (i>=0 && i<fgkNModules);}
49 static AliITSRecPointContainer* fgInstance; //! AliITSRecPointContainer
51 static const Int_t fgkNModules=2198; //! total number of ITS modules
53 Int_t fSPDNModules; //! number of SPD modules
54 Int_t fSDDNModules; //! number of SDD modules
55 Int_t fSSDNModules; //! number of SDD modules
56 TClonesArray* fArray[fgkNModules]; //! container - 1 TClonesArray per module
57 Int_t fCurrentEve; //! event number
58 Int_t fNextEvent; //! number of the next event to be read; used only when
59 //! the run loader is not available. It is just a counter.
60 Int_t fActualSize; //! actual number of ITS modules in TTree R
61 TString fDet; //! ITS subdetectors active for the current run
62 Bool_t fStatusOK; //! kFALSE is RP branch is absent or if there are anomalies
63 //! in the number of active modules
64 UInt_t fNClusters[6]; //! Number of clusters per layer
66 ClassDef(AliITSRecPointContainer,0)