]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HMPID/AliHMPIDRecon.h
ANALYSIS lib is added
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDRecon.h
index f8bddad3c12f4edb181c57e302b5f7bb3ac7add8..feb0e5c1ffd4e28686c4b1122910ee0169f6090c 100644 (file)
@@ -16,7 +16,9 @@
 #include <TTask.h>        //base class
 #include <TVector3.h>     //fields 
 
-class TClonesArray;
+class TClonesArray; //CkovAngle()
+class AliESDtrack;  //CkovAngle()
+
 class AliHMPIDRecon : public TTask 
 {
 public : 
@@ -24,29 +26,29 @@ public :
     virtual ~AliHMPIDRecon()                                                          {}
 
   
-  Double_t CkovAngle    (TClonesArray *pCluLst,Int_t &iNaccepted);                                                         //reconstructed Theta Cerenkov
-  Double_t CkovSigma2   (                                                                   )const{ return fCkovSigma2;} //track ckov angle error squared
-  Double_t FindPhotCkov (Double_t cluX,Double_t cluY                                        );     //find ckov angle for single photon candidate
-  Double_t FindPhotPhi  (Double_t cluX,Double_t cluY                                        );     //find phi angle for single photon candidate
+  void     CkovAngle    (AliESDtrack *pTrk,TClonesArray *pCluLst,Double_t nmean             );     //reconstructed Theta Cerenkov
+  Bool_t   FindPhotCkov (Double_t cluX,Double_t cluY,Double_t &thetaCer,Double_t &phiCer    );     //find ckov angle for single photon candidate
   Double_t FindRingCkov (Int_t iNclus                                                       );     //best ckov for ring formed by found photon candidates
   Double_t FindRingArea (Double_t ckov                                                      )const;//estimated area of ring in cm^2
   Int_t    FlagPhot     (Double_t ckov                                                      );     //is photon ckov near most probable track ckov
   Double_t HoughResponse(                                                                   );     //most probable track ckov angle
-  void     Propagate    (const TVector3 &dir,      TVector3 &pos,Double_t z                 )const;//propagate photon alogn the line  
+  void     Propagate    (const TVector3  dir,      TVector3 &pos,Double_t z                 )const;//propagate photon alogn the line  
   void     Refract      (      TVector3 &dir,                    Double_t n1,    Double_t n2)const;//refract photon on the boundary
-  Double_t TracePhot    (Double_t ckovTh,Double_t ckovPh,TVector2 &pos                      )const;//trace photon created by track to PC 
-  void     SetTrack     (Double_t th,Double_t ph,Double_t x,Double_t y                      ){fTrkDir.SetMagThetaPhi(1,th,ph);  fTrkPos.Set(x,y);}//set track
+  TVector2 TracePhot    (Double_t ckovTh,Double_t ckovPh                                    )const;//trace photon created by track to PC 
+  TVector2 TraceForward (TVector3 dirCkov                                                   )const;//tracing forward a photon from (x,y) to PC
+  void     RecPhot      (TVector3 dirCkov,Double_t &thetaCer,Double_t &phiCer               );     //theta,phi cerenkov reconstructed
+  void     SetTrack     (Double_t xRad,Double_t yRad,Double_t theta,Double_t phi            )
+                                {fTrkDir.SetMagThetaPhi(1,theta,phi);  fTrkPos.Set(xRad,yRad);}    //set track parameter at RAD
+  void     SetImpPC     (Double_t xPc,Double_t yPc                                          )
+                                {fPc.Set(xPc,yPc);}                                                //set track impact to PC 
   Double_t SigLoc       (Double_t ckovTh,Double_t ckovPh,Double_t beta                      )const;//error due to cathode segmetation
   Double_t SigGeom      (Double_t ckovTh,Double_t ckovPh,Double_t beta                      )const;//error due to unknown photon origin
   Double_t SigCrom      (Double_t ckovTh,Double_t ckovPh,Double_t beta                      )const;//error due to unknonw photon energy
   Double_t Sigma2       (Double_t ckovTh,Double_t ckovPh                                    )const;//photon candidate sigma
+  enum ETrackingFlags {kMipDistCut=-9,kMipQdcCut=-5,kNoPhotAccept=-11};
+
 protected:
-  static const Double_t fgkRadThick;                      //radiator thickness
-  static const Double_t fgkWinThick;                      //window thickness
-  static const Double_t fgkGapThick;                      //proximity gap thickness
-  static const Double_t fgkRadIdx;                        //mean refractive index of RAD material (C6F14)
-  static const Double_t fgkWinIdx;                        //mean refractive index of WIN material (SiO2) 
-  static const Double_t fgkGapIdx;                        //mean refractive index of GAP material (CH4)
+  Double_t fRadNmean;                          //C6F14 mean refractive index
   Int_t    fPhotCnt;                           // counter of photons candidate
   Int_t    fPhotFlag[3000];                    // flags of photon candidates
   Double_t fPhotCkov[3000];                    // Ckov angles of photon candidates, [rad]
@@ -58,12 +60,19 @@ protected:
   Float_t fDTheta;                            // Step for sliding window
   Float_t fWindowWidth;                       // Hough width of sliding window
   
-  TVector3 fTrkDir;                           //track direction in LORS
-  TVector2 fTrkPos;                           //track positon in LORS at the middle of radiator
+  TVector3 fTrkDir;                           //track direction in LORS at RAD
+  TVector2 fTrkPos;                           //track positon in LORS at RAD
+  TVector2 fPc;                               //track position at PC
+  
+private:  
+  static const Double_t fgkRadThick;                      //radiator thickness
+  static const Double_t fgkWinThick;                      //window thickness
+  static const Double_t fgkGapThick;                      //proximity gap thickness
+  static const Double_t fgkWinIdx;                        //mean refractive index of WIN material (SiO2) 
+  static const Double_t fgkGapIdx;                        //mean refractive index of GAP material (CH4)
+  
   ClassDef(AliHMPIDRecon,0)
 };
 
-typedef AliHMPIDRecon AliRICHRecon; // for backward compatibility
-    
 #endif // #ifdef AliHMPIDRecon_cxx