]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDComparisonMI.h
Make use of new method AliRawReader::GetNumberOfEvents() - goinf to the last event...
[u/mrichter/AliRoot.git] / STEER / AliESDComparisonMI.h
index 10899a28d920518e28da8055ce3e91a123ff4079..71bc45455079355e9deefa89ac373f4ecd822803 100644 (file)
@@ -14,8 +14,10 @@ class AliESDRecInfo: public TObject {
 public:
   AliESDRecInfo(){}
   ~AliESDRecInfo(){}
-  //
-  void Update(AliMCInfo* info,AliTPCParam * par, Bool_t reconstructed);
+  void UpdatePoints(AliESDtrack* track);
+  void Update(AliMCInfo* info,AliTPCParam * par, Bool_t reconstructed, AliESD *event);
+  void Reset();
+  Float_t  fTPCPoints[10]; //start , biggest end points,max density .. density at the last 30 pad-rows
   Double_t fTPCinR0[5];   //generated position of the track at inner tpc - radius [3] and fi [4]
   Double_t fTPCinR1[5];   //reconstructed postion of the track           - radius [3] and fi [
   Double_t fTPCinP0[5];   //generated position of the track at inner tpc
@@ -33,18 +35,21 @@ public:
   Double_t fITSDelta[5];  // deltas
   Double_t fITSPools[5];  // pools
   AliESDtrack fESDTrack;          // tpc track
-  AliITStrackV2 fITStrack;        //its track
+  AliITStrackMI fITStrack;        //its track
   AliTRDtrack fTRDtrack;        //its track
+  Float_t fBestTOFmatch;        //best matching between times
   Float_t fTRLocalCoord[3];       //local coordinates of the track ref.
   Int_t   fReconstructed;         //flag if track was reconstructed
   Int_t fFake;             // fake track
   Int_t fMultiple;         // number of reconstructions
   Bool_t fTPCOn;           // TPC refitted inward
+  Int_t  fStatus[4];        // status -0 not found - 1 -only in - 2 -in-out -3 -in -out-refit
   Bool_t fITSOn;           // ITS refitted inward
   Bool_t fTRDOn;           // ITS refitted inward
   Float_t fDeltaP;          //delta of momenta
-  void Reset();
-  ClassDef(AliESDRecInfo,1)  // container for 
+  Double_t fSign;           // sign
+  Int_t fLabels[2];         // labels
+  ClassDef(AliESDRecInfo,2)  // container for 
 };
 ClassImp(AliESDRecInfo)
 
@@ -73,6 +78,8 @@ public:
   Double_t       fPdr[3];    //momentum at vertex daughter  - according approx at DCA
   Double_t       fXr[3];     //rec. position according helix
   //
+  Double_t       fRs[2];     // minimum radius in rphi intersection
+  Double_t       fDistMinR; // distance at minimal radius
   Double_t       fPm[3];    //momentum at the vertex mother
   Double_t       fAngle[3]; //three angles
   Double_t       fRr;       // rec position of the vertex 
@@ -80,12 +87,51 @@ public:
   Float_t        fPointAngleFi; //point angle fi
   Float_t        fPointAngleTh; //point angle theta
   Float_t        fPointAngle;   //point angle full
-  ClassDef(AliESDRecV0Info,1)   // container for  
+  Int_t          fV0Status;       // status of the kink
+  AliESDV0       fV0tpc;           // Vo information from reconsturction according TPC
+  AliESDV0       fV0its;           // Vo information from reconsturction according ITS
+  AliESDV0       fV0rec;           // V0 information form the reconstruction
+  Int_t          fMultiple;
+  Int_t          fV0Multiple;
+  Int_t          fRecStatus;    // status form the reconstuction
+  ClassDef(AliESDRecV0Info,2)   // container for  
 };
 
 ClassImp(AliESDRecV0Info)
 
 
+class AliESDRecKinkInfo: public TObject {
+public:
+  void Update();
+  AliESDRecInfo  fT1;      //track1
+  AliESDRecInfo  fT2;      //track2  
+  AliESDkink     fKink;    //kink
+  Double_t       fDist1;    //info about closest distance according closest MC - linear DCA
+  Double_t       fDist2;    //info about closest distance parabolic DCA
+  Double_t       fInvMass;  //reconstructed invariant mass -
+  //
+  Double_t       fPdr[3];    //momentum at vertex daughter  - according approx at DCA
+  Double_t       fXr[3];     //rec. position according helix
+  //
+  Double_t       fPm[3];    //momentum at the vertex mother
+  Double_t       fAngle[3]; //three angles
+  Double_t       fRr;       // rec position of the vertex 
+  Double_t       fMinR;     // minimum radius in rphi intersection
+  Double_t       fDistMinR; // distance at minimal radius
+  Int_t          fLab[2];   //MC label of the partecle
+  Float_t        fPointAngleFi; //point angle fi
+  Float_t        fPointAngleTh; //point angle theta
+  Float_t        fPointAngle;   //point angle full
+  Int_t          fStatus;       //status -tracks 
+  Int_t          fRecStatus;    //kink -status- 0 - not found  1-good -  fake
+  Int_t          fMultiple;
+  Int_t          fKinkMultiple;
+  ClassDef(AliESDRecKinkInfo,1)   // container for  
+};
+
+ClassImp(AliESDRecKinkInfo)
+
+
 
 ////////////////////////////////////////////////////////////////////////
 // 
@@ -112,6 +158,9 @@ public:
   Bool_t ConnectGenTree();
   Int_t TreeGenLoop(Int_t eventNr);
   Int_t TreeTLoop();
+  Int_t BuildKinkInfo0(Int_t eventNr); // build kink info 0
+  Int_t BuildV0Info(Int_t eventNr); // build kink info 0
+  void  MakePoints(AliESDtrack * track, AliPointsMI &points);
   void SetFirstEventNr(Int_t i) {fFirstEventNr = i;}
   void SetNEvents(Int_t i) {fNEvents = i;}
   void SetDebug(Int_t level) {fDebug = level;}
@@ -129,10 +178,14 @@ private:
   char  fFnCmp[1000];                   //! output file name with cmp tracks
   TFile *fFileCmp;                //! output file with cmp tracks
   TTree *fTreeCmp;                //! output tree with cmp tracks
+  TTree *fTreeCmpKinks;                //! output tree with cmp Kinks
+  TTree *fTreeCmpV0;                //! output tree with cmp V0
   //
   char  fFnGenTracks[1000];             //! input file name with gen tracks
   TFile *fFileGenTracks;
   TTree *fTreeGenTracks;
+  TTree *fTreeGenKinks;            // tree with gen kinks
+  TTree *fTreeGenV0;            // tree with gen V0
   //
   //
   Int_t  fDirection;
@@ -140,21 +193,34 @@ private:
   AliRunLoader * fLoader;         //! pointer to the run loader
   //TTree *fTreeRecTracks;          //! tree with reconstructed tracks
   //
-  Int_t *fIndexRecTracks;         //! index of particle label in the TreeT_ESD
-  Int_t *fFakeRecTracks;          //! number of fake tracks
-  Int_t *fMultiRecTracks;         //! number of multiple reconstructions
+  Short_t *fIndexRecTracks;         //! index of particle label in the TreeT_ESD
+  Short_t *fFakeRecTracks;          //! number of fake tracks
+  Short_t *fMultiRecTracks;         //! number of multiple reconstructions
   //
-  TObjArray * fTracks;            //!container with tracks 
-  AliESD *fEvent;                 //!event
-
+  Short_t *fIndexRecKinks;         //! index of particle label in treeesd
+  Short_t *fMultiRecKinks;         //! number of multiple reconstructions
+  Short_t *fSignedKinks;           //! indicator that kink was not fake
+  //
+  Short_t *fIndexRecV0;         //! index of particle label in treeesd
+  Short_t *fMultiRecV0;         //! number of multiple reconstructions
+  Short_t *fSignedV0;                //! indicator that kink was not fake
+  //
+  TObjArray *fRecArray;           // container with rec infos
+  AliESDEvent *fEvent;                 //!event
   //
   AliTPCParam* fParamTPC;         //! AliTPCParam
   Int_t fNParticles;              //! number of particles in the input tree genTracks
   Int_t fDebug;                   //! debug flag  
   Int_t fNextTreeGenEntryToRead;    //! last entry already read from genTracks tree
+  Int_t fNextKinkToRead;            //! last entry already read from genKinks tree
+  Int_t fNextV0ToRead;            //! last entry already read from genV0 tree
   //
   AliMCInfo*  fMCInfo;           //! MC information writen per particle
+  AliGenKinkInfo* fGenKinkInfo;      //! MC information writen per Kink
+  AliGenV0Info* fGenV0Info;      //! MC information writen per Kink
   AliESDRecInfo*  fRecInfo;          //! Rec. information writen per particle
+  AliESDRecKinkInfo* fRecKinkInfo;    //! reconstructed kink info
+  AliESDRecV0Info* fRecV0Info;    //! reconstructed kink info
   //
 
   ClassDef(ESDCmpTr,1)    // class which creates and fills tree with ESDGenTrack objects