X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONChamberTrigger.cxx;h=06f25189270a8744a5fb19eb22c7d12f857b5d23;hb=8b035d03f8682baff6aa6da797b3c4a65fb7f51d;hp=24a5ee2ff7b04eddb6be1621c56f32c0f2205a30;hpb=76fa11137f19ea78de441b21eca87d26c1b0ee6c;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONChamberTrigger.cxx b/MUON/AliMUONChamberTrigger.cxx index 24a5ee2ff7b..06f25189270 100644 --- a/MUON/AliMUONChamberTrigger.cxx +++ b/MUON/AliMUONChamberTrigger.cxx @@ -15,202 +15,52 @@ /* $Id$ */ +#include + #include "AliMUONChamberTrigger.h" #include "AliMUONResponseTrigger.h" #include "AliMUONHit.h" -#include "AliMUONGeometrySegmentation.h" +#include "AliMUON.h" +#include "AliMUONGeometryTransformer.h" #include "AliLog.h" +//----------------------------------------------------------------------------- +/// \class AliMUONChamberTrigger +/// +/// Implementation of AliMUONChamber for the trigger +/// +/// \deprecated This class is to be deprecated. +/// +//----------------------------------------------------------------------------- + +/// \cond CLASSIMP ClassImp(AliMUONChamberTrigger) +/// \endcond //------------------------------------------- AliMUONChamberTrigger::AliMUONChamberTrigger() - : AliMUONChamber() + : AliMUONChamber(), + fkGeomTransformer(0) { -// Default constructor +/// Default constructor } +//------------------------------------------- -AliMUONChamberTrigger::AliMUONChamberTrigger(Int_t id) - : AliMUONChamber(id) +AliMUONChamberTrigger:: ~AliMUONChamberTrigger() { -// Constructor using chamber id +/// Destructor } //------------------------------------------- -void AliMUONChamberTrigger::DisIntegration(Float_t /*eloss*/, Float_t tof, - Float_t xhit, Float_t yhit, Float_t zhit, - Int_t& nnew, - Float_t newclust[6][500]) -{ -// -// Generates pad hits (simulated cluster) -// using the segmentation and the response model - - Int_t twentyNano; - if (tof<75*TMath::Power(10,-9)) { - twentyNano=1; - } else { - twentyNano=100; - } - - Float_t qp; - nnew=0; - for (Int_t i=1; i<=fnsec; i++) { - AliSegmentation * segmentation= - (AliSegmentation*) (*fSegmentation)[i-1]; - -// Find the module & strip Id. which has fired - Int_t ix,iy; - - segmentation->GetPadI(xhit,yhit,0,ix,iy); - segmentation->SetPad(ix,iy); - -// treatment of GEANT hits w/o corresponding strip (due to the fact that -// the 2 geometries are computed in a very slightly different way) - if (ix==0&&iy==0) { - AliInfo(Form("AliMUONChamberTrigger hit w/o strip %f %f \n",xhit,yhit)); - } else { - // --- store signal information for this strip - newclust[0][nnew]=1.; // total charge - newclust[1][nnew]=ix; // ix-position of pad - newclust[2][nnew]=iy; // iy-position of pad - newclust[3][nnew]=twentyNano; // time of flight - newclust[4][nnew]=segmentation->ISector(); // sector id - newclust[5][nnew]=(Float_t) i; // counter - nnew++; - -// cluster-size if AliMUONResponseTriggerV1, nothing if AliMUONResponseTrigger - if (((AliMUONResponseTrigger*) fResponse)->SetGenerCluster()) { - - // set hits - segmentation->SetHit(xhit,yhit,zhit); - // get the list of nearest neighbours - Int_t nList, xList[10], yList[10]; - segmentation->Neighbours(ix,iy,&nList,xList,yList); - - qp = 0; - for (Int_t j=0; jGetPadC(xList[j],yList[j],x,y,z); - // set pad (fx fy & fix fiy are the current pad coord. & Id.) - segmentation->SetPad(xList[j],yList[j]); - // get the chamber (i.e. current strip) response - qp=fResponse->IntXY(segmentation); - - if (qp > 0.5) { - // --- store signal information for neighbours - newclust[0][nnew]=qp; // total charge - newclust[1][nnew]=segmentation->Ix(); // ix-pos. of pad - newclust[2][nnew]=segmentation->Iy(); // iy-pos. of pad - newclust[3][nnew]=twentyNano; // time of flight - newclust[4][nnew]=segmentation->ISector(); // sector id - newclust[5][nnew]=(Float_t) i; // counter - nnew++; - } // qp > 0.5 - } // built-up cluster-size - } // existing neighbour - } // loop over neighbours - } // endif hit w/o strip - } // loop over planes - } // if AliMUONResponseTriggerV1 -} - - -//------------------------------------------- -void AliMUONChamberTrigger::DisIntegration(AliMUONHit* hit, - Int_t& nnew, - Float_t newclust[6][500]) +AliMUONChamberTrigger::AliMUONChamberTrigger(Int_t id, + const AliMUONGeometryTransformer* kGeometryTransformer) + : AliMUONChamber(id), + fkGeomTransformer(kGeometryTransformer) { -// -// Generates pad hits (simulated cluster) -// using the segmentation and the response model - - - Float_t tof = hit->Age(); - Float_t xhit = hit->X(); - Float_t yhit = hit->Y(); - Float_t zhit = hit->Z(); - Int_t id = hit->DetElemId(); - - Int_t twentyNano; - if (tof<75*TMath::Power(10,-9)) { - twentyNano=1; - } else { - twentyNano=100; - } - - Float_t qp; - nnew=0; - for (Int_t i=1; i<=fnsec; i++) { - AliMUONGeometrySegmentation * segmentation= - (AliMUONGeometrySegmentation*) (*fSegmentation2)[i-1]; - -// Find the module & strip Id. which has fired - Int_t ix,iy; - segmentation->GetPadI(id,xhit,yhit,0,ix,iy); - segmentation->SetPad(id,ix,iy); -// if (ix < 0 || ix > 10000) return; -// if (iy < 0 || iy > 10000) return; - -// treatment of GEANT hits w/o corresponding strip (due to the fact that -// the 2 geometries are computed in a very slightly different way) - if (ix==0&&iy==0) { - AliInfo(Form("AliMUONChamberTrigger hit w/o strip %f %f \n",xhit,yhit)); - } else { - // --- store signal information for this strip - newclust[0][nnew]=1.; // total charge - newclust[1][nnew]=ix; // ix-position of pad - newclust[2][nnew]=iy; // iy-position of pad - newclust[3][nnew]=twentyNano; // time of flight - newclust[4][nnew]=segmentation->ISector(); // sector id - newclust[5][nnew]=(Float_t) i; // counter - nnew++; - -// cluster-size if AliMUONResponseTriggerV1, nothing if AliMUONResponseTrigger - if (((AliMUONResponseTrigger*) fResponse)->SetGenerCluster()) { - - // set hits - segmentation->SetHit(id,xhit,yhit,zhit); - // get the list of nearest neighbours - Int_t nList, xList[10], yList[10]; - segmentation->Neighbours(id,ix,iy,&nList,xList,yList); - - qp = 0; - for (Int_t j=0; jGetPadC(id,xList[j],yList[j],x,y,z); - // set pad (fx fy & fix fiy are the current pad coord. & Id.) - segmentation->SetPad(id,xList[j],yList[j]); - // get the chamber (i.e. current strip) response - qp=fResponse->IntXY(id,segmentation); - - if (qp > 0.5) { - // --- store signal information for neighbours - newclust[0][nnew]=qp; // total charge - newclust[1][nnew]=segmentation->Ix(); // ix-pos. of pad - newclust[2][nnew]=segmentation->Iy(); // iy-pos. of pad - newclust[3][nnew]=twentyNano; // time of flight - newclust[4][nnew]=segmentation->ISector(); // sector id - newclust[5][nnew]=(Float_t) i; // counter - nnew++; - } // qp > 0.5 - } // built-up cluster-size - } // existing neighbour - } // loop over neighbours - } // endif hit w/o strip - } // loop over planes - } // if AliMUONResponseTriggerV1 +/// Constructor using chamber id }