| 10 | 
 #include <TArrayI.h> | 
 #include <TArrayI.h> | 
| 11 | 
 // | 
 // | 
| 12 | 
 #include <CaloStruct.h> | 
 #include <CaloStruct.h> | 
| 13 | 
  | 
 // | 
| 14 | 
  | 
  | 
| 15 | 
 /** | 
 /** | 
| 16 | 
  * \brief Calorimeter track-related variables class | 
  * \brief Calorimeter track-related variables class | 
| 17 | 
  * | 
  * | 
| 38 | 
     Int_t ntr;       ///< the same as "ncyl" but with radius 4 strips | 
     Int_t ntr;       ///< the same as "ncyl" but with radius 4 strips | 
| 39 | 
     Int_t planetot;  ///< number of planes used to calculate the energy truncated mean "qmean" | 
     Int_t planetot;  ///< number of planes used to calculate the energy truncated mean "qmean" | 
| 40 | 
     Int_t nlow;      ///< the same as "nstrip" but only after the calculated electromagnetic shower maximum | 
     Int_t nlow;      ///< the same as "nstrip" but only after the calculated electromagnetic shower maximum | 
| 41 | 
     Int_t tibar[22][2];  ///< strip traversed by the trajectory as measured by the tracker | 
     Int_t tibar[22][2];  ///< strip traversed by the trajectory as measured by the tracker or by the selftrigger when trkseqno = -1 | 
| 42 | 
     Float_t tbar[22][2]; ///< position in cm as measured by the tracker | 
     Float_t tbar[22][2]; ///< position in cm as measured by the tracker or by the selftrigger when trkseqno = -1 | 
| 43 | 
     Float_t qcore;   ///< SUM(j=1,2)SUM(i=1,PLmax) Qhit(i,j)*i , where Qhit(i,j) is the energy released (MIP) in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view). | 
     Float_t qcore;   ///< SUM(j=1,2)SUM(i=1,PLmax) Qhit(i,j)*i , where Qhit(i,j) is the energy released (MIP) in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view). | 
| 44 | 
     Float_t qcyl;    ///< the measured energy deposited in a cylinder of radius 8 strips around the shower axis | 
     Float_t qcyl;    ///< the measured energy deposited in a cylinder of radius 8 strips around the shower axis | 
| 45 | 
     Float_t qlast;   ///< the same as "qcyl" but only for the last four planes and radius 4 strips. | 
     Float_t qlast;   ///< the same as "qcyl" but only for the last four planes and radius 4 strips. | 
| 100 | 
     // | 
     // | 
| 101 | 
     // Fit variables | 
     // Fit variables | 
| 102 | 
     // | 
     // | 
| 103 | 
     Int_t npcfit[2];     ///< number of point used to perform the fit for the two views | 
     Int_t npcfit[4];     ///< number of point used to perform the fit for the two views (0,1 calo fit, 2,3 selftrigger fit if any) | 
| 104 | 
     Int_t cibar[22][2];  ///< strip traversed by the trajectory as measured by the calorimeter | 
     Float_t varcfit[4];  ///< variance of the calorimeter fit for the two views (0,1 calo fit, 2,3 selftrigger fit if any) | 
| 105 | 
     Float_t cbar[22][2]; ///< position in cm as measured by the calorimeter | 
     Float_t tanx[2];     ///< the tangent of the angle in the x direction as determined by the track fitted in the calorimeter (0 calo fit, 1 selftrigger fit) | 
| 106 | 
     Float_t impx;        ///< the x impact position on the first plane as determined by the track fitted in the calorimeter | 
     Float_t tany[2];     ///< the tangent of the angle in the x direction as determined by the track fitted in the calorimeter (0 calo fit, 1 selftrigger fit) | 
| 107 | 
     Float_t impy;        ///< the y impact position on the first plane as determined by the track fitted in the calorimeter | 
     Int_t fitmode[2];    ///< for x and y is 0 if the fit was performed with the "electron" algorithm, is 1 if the fit was performed with the "nuclei" algorithm | 
| 108 | 
     Float_t tanx;        ///< the tangent of the angle in the x direction as determined by the track fitted in the calorimeter | 
     Int_t cibar[22][2];  ///< strip traversed by the trajectory as measured by the calorimeter (calo fit) | 
| 109 | 
     Float_t tany;        ///< the tangent of the angle in the x direction as determined by the track fitted in the calorimeter | 
     Float_t cbar[22][2]; ///< position in cm as measured by the calorimeter (calo fit) | 
 | 
     Float_t varcfit[2];  ///< variance of the calorimeter fit for the two views | 
  | 
| 110 | 
     // | 
     // | 
| 111 | 
     // Energy variables | 
     // Energy variables | 
| 112 | 
     // | 
     // | 
| 115 | 
     // | 
     // | 
| 116 | 
     // track related variables: inline methods | 
     // track related variables: inline methods | 
| 117 | 
     // | 
     // | 
| 118 | 
     Int_t ntrk()                                       {return CaloTrk->GetEntries();};  ///< number of saved blocks of track-related variables | 
     Int_t ntrk(){return CaloTrk->GetEntries();};  ///< number of saved blocks of track-related variables | 
 | 
     // | 
  | 
 | 
     // Number of strip with energy > emip and their value coded with view plane and strip number: | 
  | 
 | 
     // view x[y] plane PP strip SS with energy mmmm.iip = +[-] ( PP*10^6 + SS*10^4 + mmmm.iip ) | 
  | 
 | 
     // | 
  | 
 | 
     TArrayI estrip; ///< MIP values for each strip with energy > emin coded with view plane and strip number. NOTICE: precision is limited to the 5 most significative ciphers | 
  | 
| 119 | 
     // | 
     // | 
| 120 | 
     // METHODS | 
     // METHODS | 
| 121 | 
     // | 
     // | 
| 122 | 
     void GetElectronEnergy(Float_t &energy, Float_t &sigma); ///< returns energy and sigma using qtot and assuming the particle being an electron | 
     Float_t impx(Int_t tr);        ///< the x impact position on the first plane as determined by the track fitted in the calorimeter ( tr = 0 calo fit, tr = 1 selftrigger fit) | 
| 123 | 
  | 
     Float_t impy(Int_t tr);        ///< the y impact position on the first plane as determined by the track fitted in the calorimeter ( tr = 0 calo fit, tr = 1 selftrigger fit) | 
| 124 | 
  | 
  | 
| 125 | 
     // | 
     // | 
| 126 | 
     Float_t GetEstrip(Int_t view, Int_t plane, Int_t strip); ///< returns saved MIP value for the indicated strip. | 
     void GetElectronEnergy(Float_t &energy, Float_t &sigma); ///< returns energy and sigma using qtot and assuming the particle being an electron | 
 | 
     Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip); ///< returns saved MIP value for the entry number "entry" of the TArrayI. | 
  | 
| 127 | 
     // | 
     // | 
| 128 | 
     CaloTrkVar *GetCaloTrkVar(Int_t notrack);  ///< returns a pointer to the CaloTrkVar class containing track related variables for track number notrack | 
     CaloTrkVar *GetCaloTrkVar(Int_t notrack);  ///< returns a pointer to the CaloTrkVar class containing track related variables for track number notrack | 
| 129 | 
     // | 
     // | 
| 133 | 
     void GetLevel2Struct(cCaloLevel2 *l2) const; | 
     void GetLevel2Struct(cCaloLevel2 *l2) const; | 
| 134 | 
     // | 
     // | 
| 135 | 
     void Clear(); | 
     void Clear(); | 
| 136 | 
  | 
     void Delete(); //ELENA | 
| 137 | 
  | 
     void Set(); //ELENA | 
| 138 | 
     // | 
     // | 
| 139 | 
     // constructor | 
     // constructor | 
| 140 | 
     // | 
     // | 
| 141 | 
     CaloLevel2(); ///< Constructor. | 
     CaloLevel2(); ///< Constructor. | 
| 142 | 
  | 
     ~CaloLevel2(){Delete();}; //ELENA | 
| 143 | 
     // | 
     // | 
| 144 | 
     friend class CaloProcessing; | 
     friend class CaloProcessing; | 
| 145 | 
     // | 
     // | 
| 146 | 
     ClassDef(CaloLevel2,2); | 
     ClassDef(CaloLevel2,4); | 
| 147 | 
 }; | 
 }; | 
| 148 | 
  | 
  | 
| 149 | 
 #endif | 
 #endif |