#include <TMath.h>
#include <TNamed.h> //base class
#include <TGeoManager.h> //Instance()
+#include <TGeoMatrix.h> //Instance()
#include <TVector3.h> //Lors2Mars() Mars2Lors()
// Class providing all the needed parametrised information
inline static void Lors2Pad(Float_t x,Float_t y,Int_t &pc,Int_t &px,Int_t &py); //(x,y)->(pc,px,py)
static Int_t Abs (Int_t ch,Int_t pc,Int_t x,Int_t y) {return ch*100000000+pc*1000000+x*1000+y; } //(ch,pc,padx,pady)-> abs pad
+ static Int_t DDL2C (Int_t ddl ) {return ddl/2; } //ddl -> chamber
static Int_t A2C (Int_t pad ) {return pad/100000000; } //abs pad -> chamber
static Int_t A2P (Int_t pad ) {return pad%100000000/1000000; } //abs pad -> pc
static Int_t A2X (Int_t pad ) {return pad%1000000/1000; } //abs pad -> pad X
void SetRefIdx (Double_t refRadIdx ) {fRadNmean = refRadIdx;} //set refractive index of freon
+ //For PID
+ Double_t SigLoc (Double_t trkTheta,Double_t trkPhi,Double_t ckovTh,Double_t ckovPh,Double_t beta);//error due to cathode segmetation
+ Double_t SigGeom (Double_t trkTheta,Double_t trkPhi,Double_t ckovTh,Double_t ckovPh,Double_t beta);//error due to unknown photon origin
+ Double_t SigCrom (Double_t trkTheta,Double_t trkPhi,Double_t ckovTh,Double_t ckovPh,Double_t beta);//error due to unknonw photon energy
+ Double_t Sigma2 (Double_t trkTheta,Double_t trkPhi,Double_t ckovTh,Double_t ckovPh );//photon candidate sigma^2
enum EPlaneId {kPc,kRad,kAnod}; //3 planes in chamber
enum ETrackingFlags {kMipDistCut=-9,kMipQdcCut=-5,kNoPhotAccept=-11}; //flags for Reconstruction