/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RootEventData/RootEventData-00-03-80/RootEventData/TExtTrack.h

Go to the documentation of this file.
00001 #ifndef RootEventData_TExtTrack_H
00002 #define RootEventData_TExtTrack_H 1
00003 
00004 #include "TObject.h"
00005 #include "TString.h"
00006 #include "SimMatr.h"
00007 //using namespace std;
00008 
00009 class TExtTrack : public TObject {
00010     
00011 public:
00012     
00013     TExtTrack();
00014     
00015     ~TExtTrack ();
00016     
00017     //modifiers
00018    void  SetTrackId(const Int_t trackId){ m_trackId = trackId; }
00019     //Tof layer1:
00020    void  SetTof1PositionX(const Double_t  Tof1PositionX)  { myTof1PositionX  =  Tof1PositionX; }
00021    void  SetTof1PositionY(const Double_t  Tof1PositionY)  { myTof1PositionY  =  Tof1PositionY; }
00022    void  SetTof1PositionZ(const Double_t  Tof1PositionZ)  { myTof1PositionZ  =  Tof1PositionZ; }
00023    void  SetTof1MomentumX(const Double_t  Tof1MomentumX)  { myTof1MomentumX  =  Tof1MomentumX; }
00024    void  SetTof1MomentumY(const Double_t  Tof1MomentumY)  { myTof1MomentumY  =  Tof1MomentumY; }
00025    void  SetTof1MomentumZ(const Double_t  Tof1MomentumZ)  { myTof1MomentumZ  =  Tof1MomentumZ; }
00026 
00027    void SetTof1VolumeName(const  TString Tof1VolumeName)    { myTof1VolumeName = Tof1VolumeName;   }
00028    void SetTof1VolumeNumber(const Int_t Tof1VolumeNumber)  { myTof1VolumeNumber = Tof1VolumeNumber; }
00029    void SetTof1(const   Double_t  Tof1) { myTof1 = Tof1; }
00030    void SetTof1Path(const   Double_t  Tof1Path) { myTof1Path = Tof1Path; }
00031    void SetTof1PosSigmaAlongZ(const   Double_t  Tof1PosSigmaAlongZ) { myTof1PosSigmaAlongZ = Tof1PosSigmaAlongZ; }
00032    void SetTof1PosSigmaAlongT(const   Double_t  Tof1PosSigmaAlongT) { myTof1PosSigmaAlongT = Tof1PosSigmaAlongT; }
00033    void SetTof1PosSigmaAlongX(const   Double_t  Tof1PosSigmaAlongX) { myTof1PosSigmaAlongX = Tof1PosSigmaAlongX; }
00034    void SetTof1PosSigmaAlongY(const   Double_t  Tof1PosSigmaAlongY) { myTof1PosSigmaAlongY = Tof1PosSigmaAlongY; }
00035    void SetTof1ErrorMatrix(const  Double_t Tof1ErrorMatrix[6][6]) {
00036                 SimMat::pack2d(6,&Tof1ErrorMatrix[0][0],myTof1ErrorMatrix);
00037    }
00038 
00039         //Tof layer2:
00040    void  SetTof2PositionX(const Double_t  Tof2PositionX)  { myTof2PositionX  =  Tof2PositionX; }
00041    void  SetTof2PositionY(const Double_t  Tof2PositionY)  { myTof2PositionY  =  Tof2PositionY; }
00042    void  SetTof2PositionZ(const Double_t  Tof2PositionZ)  { myTof2PositionZ  =  Tof2PositionZ; }
00043    void  SetTof2MomentumX(const Double_t  Tof2MomentumX)  { myTof2MomentumX  =  Tof2MomentumX; }
00044    void  SetTof2MomentumY(const Double_t  Tof2MomentumY)  { myTof2MomentumY  =  Tof2MomentumY; }
00045    void  SetTof2MomentumZ(const Double_t  Tof2MomentumZ)  { myTof2MomentumZ  =  Tof2MomentumZ; }
00046 
00047    void SetTof2VolumeName(const  TString Tof2VolumeName)    { myTof2VolumeName = Tof2VolumeName;   }
00048    void SetTof2VolumeNumber(const Int_t Tof2VolumeNumber)  { myTof2VolumeNumber = Tof2VolumeNumber; }
00049    void SetTof2(const   Double_t  Tof2) { myTof2 = Tof2; }
00050    void SetTof2Path(const   Double_t  Tof2Path) { myTof2Path = Tof2Path; }
00051    void SetTof2PosSigmaAlongZ(const   Double_t  Tof2PosSigmaAlongZ) { myTof2PosSigmaAlongZ = Tof2PosSigmaAlongZ; }
00052    void SetTof2PosSigmaAlongT(const   Double_t  Tof2PosSigmaAlongT) { myTof2PosSigmaAlongT = Tof2PosSigmaAlongT; }
00053    void SetTof2PosSigmaAlongX(const   Double_t  Tof2PosSigmaAlongX) { myTof2PosSigmaAlongX = Tof2PosSigmaAlongX; }
00054    void SetTof2PosSigmaAlongY(const   Double_t  Tof2PosSigmaAlongY) { myTof2PosSigmaAlongY = Tof2PosSigmaAlongY; }
00055    void SetTof2ErrorMatrix(const  Double_t Tof2ErrorMatrix[6][6]) {
00056                 SimMat::pack2d(6,&Tof2ErrorMatrix[0][0],myTof2ErrorMatrix);
00057    }
00058                   
00059         //Emc:
00060    void  SetEmcPositionX(const Double_t  EmcPositionX)  { myEmcPositionX  =  EmcPositionX; }
00061    void  SetEmcPositionY(const Double_t  EmcPositionY)  { myEmcPositionY  =  EmcPositionY; }
00062    void  SetEmcPositionZ(const Double_t  EmcPositionZ)  { myEmcPositionZ  =  EmcPositionZ; }
00063    void  SetEmcMomentumX(const Double_t  EmcMomentumX)  { myEmcMomentumX  =  EmcMomentumX; }
00064    void  SetEmcMomentumY(const Double_t  EmcMomentumY)  { myEmcMomentumY  =  EmcMomentumY; }
00065    void  SetEmcMomentumZ(const Double_t  EmcMomentumZ)  { myEmcMomentumZ  =  EmcMomentumZ; }
00066 
00067    void SetEmcVolumeName(const  TString EmcVolumeName)    { myEmcVolumeName = EmcVolumeName;   }
00068    void SetEmcVolumeNumber(const Int_t EmcVolumeNumber)  { myEmcVolumeNumber = EmcVolumeNumber; }
00069 
00070    void SetEmcPosSigmaAlongTheta(const   Double_t  EmcPosSigmaAlongTheta) { myEmcPosSigmaAlongTheta = EmcPosSigmaAlongTheta; }
00071    void SetEmcPosSigmaAlongPhi(const   Double_t  EmcPosSigmaAlongPhi) { myEmcPosSigmaAlongPhi = EmcPosSigmaAlongPhi; }
00072    
00073    void SetEmcErrorMatrix(const  Double_t EmcErrorMatrix[6][6]) {
00074                 SimMat::pack2d(6,&EmcErrorMatrix[0][0],myEmcErrorMatrix);
00075    }
00076 
00077    void SetEmcPath(Double_t path) {myEmcPath = path;}
00078     
00079         //Muc:
00080    void  SetMucPositionX(const Double_t  MucPositionX)  { myMucPositionX  =  MucPositionX; }
00081    void  SetMucPositionY(const Double_t  MucPositionY)  { myMucPositionY  =  MucPositionY; }
00082    void  SetMucPositionZ(const Double_t  MucPositionZ)  { myMucPositionZ  =  MucPositionZ; }
00083    void  SetMucMomentumX(const Double_t  MucMomentumX)  { myMucMomentumX  =  MucMomentumX; }
00084    void  SetMucMomentumY(const Double_t  MucMomentumY)  { myMucMomentumY  =  MucMomentumY; }
00085    void  SetMucMomentumZ(const Double_t  MucMomentumZ)  { myMucMomentumZ  =  MucMomentumZ; }
00086 
00087    void SetMucVolumeName(const  TString MucVolumeName)    { myMucVolumeName = MucVolumeName;   }
00088    void SetMucVolumeNumber(const Int_t MucVolumeNumber)  { myMucVolumeNumber = MucVolumeNumber; }
00089 
00090    void SetMucPosSigmaAlongZ(const   Double_t  MucPosSigmaAlongZ) { myMucPosSigmaAlongZ = MucPosSigmaAlongZ; }
00091    void SetMucPosSigmaAlongT(const   Double_t  MucPosSigmaAlongT) { myMucPosSigmaAlongT = MucPosSigmaAlongT; }
00092    void SetMucPosSigmaAlongX(const   Double_t  MucPosSigmaAlongX) { myMucPosSigmaAlongX = MucPosSigmaAlongX; }
00093    void SetMucPosSigmaAlongY(const   Double_t  MucPosSigmaAlongY) { myMucPosSigmaAlongY = MucPosSigmaAlongY; }
00094 
00095    void SetMucErrorMatrix(const  Double_t MucErrorMatrix[6][6]) {
00096                 SimMat::pack2d(6,&MucErrorMatrix[0][0],myMucErrorMatrix);
00097    }
00098 
00099    /*void SetSize(Int_t size){ mySize = size;}
00100    void  SetExtMucHit(Double_t PositionX,Double_t PositionY,Double_t PositionZ,Double_t MomentumX,Double_t MomentumY , Double_t MomentumZ, TString VolumeName,Int_t VolumeNumber,Double_t PosSigmaAlongZ,Double_t PosSigmaAlongT,Double_t PosSigmaAlongX,Double_t PosSigmaAlongY,Double_t ErrorMatrix[6][6]){
00101      myPositionX.push_back(PositionX);
00102      myPositionY.push_back(PositionY);
00103      myPositionZ.push_back(PositionZ);
00104      myMomentumX.push_back(MomentumX);
00105      myMomentumY.push_back(MomentumY);
00106      myMomentumZ.push_back(MomentumZ);
00107      myVolumeName.push_back(VolumeName);
00108      myVolumeNumber.push_back(VolumeNumber);
00109      myPosSigmaAlongZ.push_back(PosSigmaAlongZ);
00110      myPosSigmaAlongZ.push_back(PosSigmaAlongT);
00111      myPosSigmaAlongZ.push_back(PosSigmaAlongX);
00112      myPosSigmaAlongZ.push_back(PosSigmaAlongY);
00113      vector<Double_t> vecError;
00114      for(int i=0;i<6 ;i++)
00115        for(int j=0;j<6;j++){
00116         vecError.push_back(ErrorMatrix[i][j]);  
00117        }
00118      myErrorMatrix.push_back(vecError);
00119    }*/
00120 
00121     //extractors
00122   Int_t GetTrackId() const { return m_trackId; }
00123         //Tof layer1:
00124   Double_t    GetTof1PositionX()      const   { return  myTof1PositionX ;    }
00125   Double_t    GetTof1PositionY()      const   { return  myTof1PositionY ;    }
00126   Double_t    GetTof1PositionZ()      const   { return  myTof1PositionZ ;    }
00127   Double_t    GetTof1MomentumX()      const   { return  myTof1MomentumX ;    }
00128   Double_t    GetTof1MomentumY()      const   { return  myTof1MomentumY ;    }
00129   Double_t    GetTof1MomentumZ()      const   { return  myTof1MomentumZ ;    }
00130  
00131    TString GetTof1VolumeName()   const   { return  myTof1VolumeName;   }
00132    Int_t GetTof1VolumeNumber() const {return myTof1VolumeNumber; }
00133    Double_t GetTof1() const {return myTof1; }
00134    Double_t GetTof1Path() const {return myTof1Path; }
00135    Double_t GetTof1PosSigmaAlongZ() const {return myTof1PosSigmaAlongZ;}
00136    Double_t GetTof1PosSigmaAlongT() const {return myTof1PosSigmaAlongT;}
00137    Double_t GetTof1PosSigmaAlongX() const {return myTof1PosSigmaAlongX;}
00138    Double_t GetTof1PosSigmaAlongY() const {return myTof1PosSigmaAlongY;}
00139    Double_t  GetTof1ErrorMatrix(Int_t i , Int_t j) const {
00140         return SimMat::get_element(myTof1ErrorMatrix,i,j);      }
00141 
00142   //Tof layer2:
00143   Double_t    GetTof2PositionX()      const   { return  myTof2PositionX ;    }
00144   Double_t    GetTof2PositionY()      const   { return  myTof2PositionY ;    }
00145   Double_t    GetTof2PositionZ()      const   { return  myTof2PositionZ ;    }
00146   Double_t    GetTof2MomentumX()      const   { return  myTof2MomentumX ;    }
00147   Double_t    GetTof2MomentumY()      const   { return  myTof2MomentumY ;    }
00148   Double_t    GetTof2MomentumZ()      const   { return  myTof2MomentumZ ;    }
00149  
00150    TString GetTof2VolumeName()   const   { return  myTof2VolumeName;   }
00151    Int_t GetTof2VolumeNumber() const {return myTof2VolumeNumber; }
00152    Double_t GetTof2() const {return myTof2; }
00153    Double_t GetTof2Path() const {return myTof2Path; }
00154    Double_t GetTof2PosSigmaAlongZ() const {return myTof2PosSigmaAlongZ;}
00155    Double_t GetTof2PosSigmaAlongT() const {return myTof2PosSigmaAlongT;}
00156    Double_t GetTof2PosSigmaAlongX() const {return myTof2PosSigmaAlongX;}
00157    Double_t GetTof2PosSigmaAlongY() const {return myTof2PosSigmaAlongY;}
00158    Double_t  GetTof2ErrorMatrix(Int_t i , Int_t j) const {
00159         return SimMat::get_element(myTof2ErrorMatrix,i,j);      }
00160 
00161   //Emc
00162   Double_t    GetEmcPositionX()      const   { return  myEmcPositionX ;    }
00163   Double_t    GetEmcPositionY()      const   { return  myEmcPositionY ;    }
00164   Double_t    GetEmcPositionZ()      const   { return  myEmcPositionZ ;    }
00165   Double_t    GetEmcMomentumX()      const   { return  myEmcMomentumX ;    }
00166   Double_t    GetEmcMomentumY()      const   { return  myEmcMomentumY ;    }
00167   Double_t    GetEmcMomentumZ()      const   { return  myEmcMomentumZ ;    }
00168  
00169    TString GetEmcVolumeName()   const   { return  myEmcVolumeName;   }
00170    Int_t GetEmcVolumeNumber() const {return myEmcVolumeNumber; }
00171    Double_t GetEmcPosSigmaAlongTheta() const {return myEmcPosSigmaAlongTheta;}
00172    Double_t GetEmcPosSigmaAlongPhi() const {return myEmcPosSigmaAlongPhi;}
00173    Double_t  GetEmcErrorMatrix(Int_t i , Int_t j) const {
00174         return SimMat::get_element(myEmcErrorMatrix,i,j);       }
00175    Double_t emcPath() const {return myEmcPath;}
00176 
00177    //Muc
00178   Double_t    GetMucPositionX()      const   { return  myMucPositionX ;    }
00179   Double_t    GetMucPositionY()      const   { return  myMucPositionY ;    }
00180   Double_t    GetMucPositionZ()      const   { return  myMucPositionZ ;    }
00181   Double_t    GetMucMomentumX()      const   { return  myMucMomentumX ;    }
00182   Double_t    GetMucMomentumY()      const   { return  myMucMomentumY ;    }
00183   Double_t    GetMucMomentumZ()      const   { return  myMucMomentumZ ;    }
00184  
00185    TString GetMucVolumeName()   const   { return  myMucVolumeName;   }
00186    Int_t GetMucVolumeNumber() const {return myMucVolumeNumber; }
00187    Double_t GetMucPosSigmaAlongZ() const {return myMucPosSigmaAlongZ;}
00188    Double_t GetMucPosSigmaAlongT() const {return myMucPosSigmaAlongT;}
00189    Double_t GetMucPosSigmaAlongX() const {return myMucPosSigmaAlongX;}
00190    Double_t GetMucPosSigmaAlongY() const {return myMucPosSigmaAlongY;}
00191    Double_t  GetMucErrorMatrix(Int_t i , Int_t j) const {
00192         return SimMat::get_element(myMucErrorMatrix,i,j);       }
00193    
00194    // ExtMucHitVet
00195    /*Int_t    GetSize() const {return mySize;};
00196    Double_t GetPositionX(Int_t i) const {return myPositionX[i]; }
00197    Double_t GetPositionY(Int_t i) const {return myPositionY[i]; }
00198    Double_t GetPositionZ(Int_t i) const {return myPositionZ[i]; }
00199    Double_t GetMomentumX(Int_t i) const {return myMomentumX[i];}
00200    Double_t GetMomentumY(Int_t i) const {return myMomentumY[i];}
00201    Double_t GetMomentumZ(Int_t i) const {return myMomentumZ[i];}
00202    TString GetVolumeName(Int_t i) const {return myVolumeName[i];}
00203    Int_t GetVolumeNumber(Int_t i) const {return myVolumeNumber[i];}
00204    Double_t GetPosSigmaAlongZ(Int_t i) const {return myPosSigmaAlongZ[i];}
00205    Double_t GetPosSigmaAlongT(Int_t i) const {return myPosSigmaAlongT[i];}
00206    Double_t GetPosSigmaAlongX(Int_t i) const {return myPosSigmaAlongX[i];}
00207    Double_t GetPosSigmaAlongY(Int_t i) const {return myPosSigmaAlongY[i];}
00208    vector<Double_t> GetErrorMatrix(Int_t i) const {return myErrorMatrix[i];}
00209    */
00210    
00211    
00212 private:
00213 
00214     //Tof TrkExt data.
00215         Int_t    m_trackId;       //Track Id wensp Add 2005-10-19
00216         //
00217         //Tof layer1:
00218         Double_t  myTof1PositionX; //Position when the particle enters the TOF layer1.
00219         Double_t  myTof1PositionY; //Position when the particle enters the TOF layer1
00220         Double_t  myTof1PositionZ; //Position when the particle enters the TOF layer1
00221         Double_t myTof1MomentumX;//Momentum when the particle enters the TOF layer1.
00222         Double_t myTof1MomentumY;//Momentum when the particle enters the TOF layer1.
00223         Double_t myTof1MomentumZ;//Momentum when the particle enters the TOF layer1.
00224 
00225         TString myTof1VolumeName;//Scintillator volume name
00226         Int_t  myTof1VolumeNumber;//Scintillator volume number
00227         Double_t myTof1;//Time of flight
00228         Double_t myTof1Path;//Path of flight
00229         Double_t myTof1PosSigmaAlongZ;//Sigma Z
00230         Double_t myTof1PosSigmaAlongT;//Sigma along Z x R
00231         Double_t myTof1PosSigmaAlongX;//Sigma X
00232         Double_t  myTof1PosSigmaAlongY;//Sigma Y
00233         //o Double_t myTof1ErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
00234         Double_t myTof1ErrorMatrix[21]; //Error matrix 6x6 (x,p)
00235 
00236         //Tof layer2:
00237         Double_t  myTof2PositionX; //Position when the particle enters the TOF layer2.
00238         Double_t  myTof2PositionY; //Position when the particle enters the TOF layer2
00239         Double_t  myTof2PositionZ; //Position when the particle enters the TOF layer2
00240         Double_t myTof2MomentumX;//Momentum when the particle enters the TOF layer2
00241         Double_t myTof2MomentumY;//Momentum when the particle enters the TOF layer2
00242         Double_t myTof2MomentumZ;//Momentum when the particle enters the TOF layer2
00243 
00244         TString myTof2VolumeName;//Scintillator volume name
00245         Int_t  myTof2VolumeNumber;//Scintillator volume number
00246         Double_t myTof2;//Time of flight
00247         Double_t myTof2Path;//Path of flight
00248         Double_t myTof2PosSigmaAlongZ;//Sigma Z
00249         Double_t myTof2PosSigmaAlongT;//Sigma along Z x R
00250         Double_t myTof2PosSigmaAlongX;//Sigma X
00251         Double_t  myTof2PosSigmaAlongY;//Sigma Y
00252         //o Double_t myTof2ErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
00253         Double_t myTof2ErrorMatrix[21]; //Error matrix 6x6 (x,p)
00254 
00255         //Emc TrkExt data,which is similar to TOF data.
00256         Double_t  myEmcPositionX; //Position 2.
00257         Double_t  myEmcPositionY; //Position 2
00258         Double_t  myEmcPositionZ; //Position 2
00259         Double_t myEmcMomentumX;//Momentum 
00260         Double_t myEmcMomentumY;//Momentum 
00261         Double_t myEmcMomentumZ;//Momentum 
00262 
00263         TString myEmcVolumeName;//Scintillator volume name
00264         Int_t  myEmcVolumeNumber;//Scintillator volume number
00265         Double_t myEmcPosSigmaAlongTheta;
00266         Double_t myEmcPosSigmaAlongPhi;
00267         //o Double_t myEmcErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
00268         Double_t myEmcErrorMatrix[21]; //Error matrix 6x6 (x,p)
00269 
00270         Double_t myEmcPath;
00271 
00272         //Muc TrkExt data,which is similar to TOF data.
00273         Double_t  myMucPositionX; //Position 2.
00274         Double_t  myMucPositionY; //Position 2
00275         Double_t  myMucPositionZ; //Position 2
00276         Double_t myMucMomentumX;//Momentum 
00277         Double_t myMucMomentumY;//Momentum 
00278         Double_t myMucMomentumZ;//Momentum 
00279 
00280         TString myMucVolumeName;//Scintillator volume name
00281         Int_t  myMucVolumeNumber;//Scintillator volume number
00282 
00283         Double_t myMucPosSigmaAlongZ;
00284         Double_t myMucPosSigmaAlongT;
00285         Double_t myMucPosSigmaAlongX;
00286         Double_t myMucPosSigmaAlongY;
00287         //o Double_t myMucErrorMatrix[6][6];
00288         Double_t myMucErrorMatrix[21];
00289 
00290   // for  ExtMucHitVec
00291   /*Int_t mySize; //size of the vector 
00292   vector<Double_t> myPositionX;
00293   vector<Double_t> myPositionY;
00294   vector<Double_t> myPositionZ;
00295   vector<Double_t> myMomentumX;
00296   vector<Double_t> myMomentumY;
00297   vector<Double_t> myMomentumZ;
00298   vector<TString>  myVolumeName;
00299   vector<Int_t>    myVolumeNumber;
00300   vector<Double_t> myPosSigmaAlongZ;
00301   vector<Double_t> myPosSigmaAlongT;
00302   vector<Double_t> myPosSigmaAlongX;
00303   vector<Double_t> myPosSigmaAlongY;
00304   vector< vector<Double_t> > myErrorMatrix;
00305   */
00306 
00307     ClassDef(TExtTrack,4)
00308 };
00309 
00310 #endif 

Generated on Tue Nov 29 23:11:40 2016 for BOSS_7.0.2 by  doxygen 1.4.7