#include <AliTracker.h> //base class
#include "AliHMPID.h" //Recon()
#include <AliRun.h> //Recon()
+#include <TF1.h> //field
+#include <TObjArray.h> //field
+//.
+// HMPID base class fo tracking
+//.
-class AliESD;
+class AliESDEvent; //Recon()
+class AliESDtrack; //IntTrkCha()
+class AliHMPIDtrack;
+class AliHMPIDRecoParamV1;
class AliHMPIDTracker : public AliTracker
{
public:
- AliHMPIDTracker():AliTracker() {}
- virtual ~AliHMPIDTracker() {}
+ AliHMPIDTracker();
+ virtual ~AliHMPIDTracker() {delete fClu;}
//framework part
AliCluster *GetCluster (Int_t )const {return 0;} //pure virtual from AliTracker
Bool_t GetTrackPoint (Int_t idx,AliTrackPoint &pt)const; // from AliTracker
- Int_t Clusters2Tracks(AliESD * ) {return 0;} //pure virtual from AliTracker
+ Int_t Clusters2Tracks(AliESDEvent * ) {return 0;} //pure virtual from AliTracker
Int_t LoadClusters (TTree *pCluTr ); //pure virtual from AliTracker
- inline Int_t PropagateBack (AliESD * ); //pure virtual from AliTracker
- Int_t RefitInward (AliESD * ) {return 0;} //pure virtual from AliTracker
+ Int_t PropagateBack (AliESDEvent *pEsd ); //pure virtual from AliTracker
+ Int_t RefitInward (AliESDEvent * ) {return 0;} //pure virtual from AliTracker
void UnloadClusters ( ) { } //pure virtual from AliTracker
+ void FillClusterArray(TObjArray* array) const; // from AliTracker
//private part
- enum ETrackingFlags {kMipDistCut=-9,kMipQdcCut=-5};
- static Int_t Recon(AliESD *pEsd,TObjArray *pCluAll); //do actual job
+ static Int_t IntTrkCha (AliESDtrack *pTrk,Float_t &xPc,Float_t &yPc,Float_t &xRa,Float_t &yRa,Float_t &theta,Float_t &phi);//find track-PC intersection, retuns chamber ID
+ static Int_t IntTrkCha (Int_t ch,AliHMPIDtrack *pTrk,Float_t &xPc,Float_t &yPc,Float_t &xRa,Float_t &yRa,Float_t &theta,Float_t &phi);//find track-PC intersection, retuns chamber ID
+
+ static Int_t Recon (AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmean=0,TObjArray *pQthre=0);//do actual job, returns status code
+ static Int_t ReconHiddenTrk(AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmean=0,TObjArray *pQthre=0);//do actual job with Hidden Track Algorithm
+
+
protected:
- ClassDef(AliHMPIDTracker,0)
+ TObjArray *fClu; //! each chamber holds it's one list of clusters
+//
+private:
+ AliHMPIDTracker(const AliHMPIDTracker& r); //dummy copy constructor
+ AliHMPIDTracker &operator=(const AliHMPIDTracker& r); //dummy assignment operator
+//
+ClassDef(AliHMPIDTracker,0)
};//class AliHMPIDTracker
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-Int_t AliHMPIDTracker::PropagateBack(AliESD *pEsd)
-{
-// This method defined as pure virtual in AliTracker. It is invoked from AliReconstruction::RunTracking() after invocation of AliTracker::LoadClusters()
-// Agruments: pEsd - pointer to ESD
-// Returns: error code
- AliHMPID *pHmpid=((AliHMPID*)gAlice->GetDetector("HMPID"));
- return Recon(pEsd,pHmpid->CluLst());
-}
-
-
-typedef AliHMPIDTracker AliRICHTracker; // for backward compatibility
#endif//AliHMPIDTracker_h