]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSClusterFinder.h
Corrected call to the static method AliBitPacking::UnpackWord
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinder.h
index ba6a64b7547e1584fdd5d86d2fbbb317497c613d..adda62389259eb26e9d36a34bdb000ed3caa74c9 100644 (file)
@@ -8,9 +8,10 @@
 
 ////////////////////////////////////////////////
 //  ITS Cluster Finder Class                  //
+//                                            //
+//                                            //
 ////////////////////////////////////////////////
 
-#include <Riostream.h>
 #include <TObject.h>
 #include <TClonesArray.h>
 
@@ -18,39 +19,29 @@ class AliITSMap;
 class AliITSresponse;
 class AliITSsegmentation;
 class AliITSRawCluster;
-class AliITS;
+class AliITSgeom;
 class AliITSdigit;
 class AliITSRecPoint;
+class AliITSDetTypeRec;
 
 //----------------------------------------------------------------------
 class AliITSClusterFinder :public TObject{
   public:
     AliITSClusterFinder(); // Default constructor
     // Standard Constructor
-    AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp);
-    AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp,
-                        TClonesArray *digits);// Standard+ Constructor
+    AliITSClusterFinder(AliITSDetTypeRec* dettyp);
+    AliITSClusterFinder(AliITSDetTypeRec* dettyp,TClonesArray *digits);// Standard+ Constructor
     virtual ~AliITSClusterFinder(); // Destructor
-    AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
-    // assignment operator
-    AliITSClusterFinder& operator=(const AliITSClusterFinder &source);
     //
     // Do the Reconstruction.
     virtual void FindRawClusters(Int_t mod=0); // Finds cluster of digits.
-    //
+     //
     // Sets the debug flag for debugging output
     void SetDebug(Int_t level=1){fDebug=level;}
     // Clears the debug flag so no debugging output will be generated
     void SetNoDebug(){fDebug=0;}
     // Returns the debug flag value
     Bool_t GetDebug(Int_t level=1)const {return fDebug>=level;}
-    //
-    // Setters and Getters
-    // segmentation
-    virtual void SetSegmentation(AliITSsegmentation *segmentation) {
-        fSegmentation=segmentation;}
-    //Returns fSegmentation
-    virtual AliITSsegmentation* GetSegmentation()const{return fSegmentation;}
     // Digit
     virtual void SetDigits(TClonesArray *itsDigits) {// set digits
         fDigits=itsDigits;fNdigits = fDigits->GetEntriesFast();}
@@ -58,11 +49,6 @@ class AliITSClusterFinder :public TObject{
         return (AliITSdigit*) fDigits->UncheckedAt(i);}
     virtual TClonesArray* Digits(){return fDigits;}// Gets fDigits
     virtual Int_t   NDigits() const {return fNdigits;}// Get Number of Digits
-    // Response
-    //Return Response
-    virtual AliITSresponse* GetResponse()const{return fResponse;}
-    virtual void SetResponse(AliITSresponse *response) {// set response
-        fResponse=response;}
     // clulsters
     // Set fClusters up
     virtual void SetClusters(TClonesArray *itsClusters){// set clusters
@@ -83,10 +69,9 @@ class AliITSClusterFinder :public TObject{
     virtual void   FillCluster(AliITSRawCluster *,Int_t) {}// fiil cluster
     virtual void   FillCluster(AliITSRawCluster *cluster) {// fill cluster
         FillCluster(cluster,1);}
-    virtual void FindCluster(Int_t,Int_t,AliITSRawCluster *) {}// find cluster
-    //
+
     virtual void SetModule(Int_t module){fModule = module;}// Set module number
-    virtual Int_t GetModule()const{return fModule;}// Returns module number
+    virtual Int_t GetModule()const {return fModule;}// Returns module number
     //
     // RecPoints
     // Given a cluster of digits, creates the nessesary RecPoint. May also
@@ -116,29 +101,46 @@ class AliITSClusterFinder :public TObject{
     //split by local maxima
     virtual void SplitByLocalMaxima(AliITSRawCluster *){}
     // IO functions
-    void Print(ostream *os); // Class ascii print function
+    void Print(ostream *os) const; // Class ascii print function
     void Read(istream *os);  // Class ascii read function
+    virtual void Print(Option_t *option="") const {TObject::Print(option);}
+    virtual Int_t Read(const char *name) {return TObject::Read(name);}
 
-    // data members
+    virtual void SetDetTypeRec(AliITSDetTypeRec* dtr) {fDetTypeRec=dtr;}
+    AliITSDetTypeRec* GetDetTypeRec() const {return fDetTypeRec;}
+
+    void InitGeometry(); 
   protected:
-    Int_t              fDebug;         //! Debug flag/level
-    Int_t              fModule;        //! Module number to be reconstuctted
-    TClonesArray       *fDigits;       //! digits
-    Int_t              fNdigits;       //! num of digits
+    // methods 
+    AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
+    // assignment operator
+    AliITSClusterFinder& operator=(const AliITSClusterFinder &source);
+   // data members       
 
-    AliITSresponse     *fResponse;     //! response
-    AliITSsegmentation *fSegmentation; //! segmentation
-    TClonesArray       *fClusters;     //! Array of clusters
-    Int_t              fNRawClusters;  //! in case we split the cluster
-                                       // and want to keep track of 
-                                       // the cluster which was splitted
+   Int_t              fDebug;         //! Debug flag/level
+   Int_t              fModule;        //! Module number to be reconstuctted
+   TClonesArray       *fDigits;       //! digits 
+   Int_t              fNdigits;       //! num of digits 
+   AliITSDetTypeRec* fDetTypeRec; //ITS object for reconstruction
+   TClonesArray       *fClusters;     //! Array of clusters
+   Int_t              fNRawClusters;  //! in case we split the cluster
+   // and want to keep track of 
+   // the cluster which was splitted
     AliITSMap          *fMap;          //! map
     Int_t              fNperMax;       //! NperMax
     Int_t              fDeclusterFlag; //! DeclusterFlag
     Int_t              fClusterSize;   //! ClusterSize
     Int_t              fNPeaks;        //! NPeaks  
+    // Data members needed to fill AliCluster objects
+    Float_t fYshift[2200];       // y-shifts of detector local coor. systems 
+    Float_t fZshift[2200];       // z-shifts of detector local coor. systems 
+    Int_t fNdet[2200];           // detector index  
+    Int_t fNlayer[2200];         // detector layer
+
 
-    ClassDef(AliITSClusterFinder,3) //Class for clustering and reconstruction of space points
+    ClassDef(AliITSClusterFinder,6) //Class for clustering and reconstruction of space points
 };
 // Input and output functions for standard C++ input/output.
 ostream &operator<<(ostream &os,AliITSClusterFinder &source);