]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HMPID/AliHMPIDDigit.cxx
better just warning than error in case of mirrors requesting when putting to local...
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDDigit.cxx
index 3da39ef7d1a56b5553070443ba2e7c2d245fbad4..712a21798f4a31292cec0dee3c9cdaf87fcc3116 100644 (file)
 #include "AliHMPIDDigit.h"    //class header
 #include <TClonesArray.h>     //WriteRaw() 
 #include <TBox.h>             //Draw() 
+#include <TPolyLine.h>        //Draw() 
 #include <AliRawDataHeader.h> //WriteRaw()
+#include "AliHMPIDParam.h"
 #include <AliDAQ.h>           //WriteRaw()
-#include <Riostream.h>        //WriteRaw()
-ClassImp(AliHMPIDDigit)
-
-const Float_t AliHMPIDDigit::fMinPcX[]={ 0.00 ,  66.60 ,   0.00 ,  66.60 ,  0.00 ,  66.60};
-const Float_t AliHMPIDDigit::fMaxPcX[]={64.00 , 130.60 ,  64.00 , 130.60 , 64.00 , 130.60};
-
-const Float_t AliHMPIDDigit::fMinPcY[]={ 0.00 , 0.00 , 42.92 ,  42.92,  85.84,  85.84};
-const Float_t AliHMPIDDigit::fMaxPcY[]={40.32 , 40.32, 83.24 ,  83.24, 126.16, 126.16};
-
-const Float_t  AliHMPIDDigit::k1      =0.28278796;
-const Float_t  AliHMPIDDigit::k2      =0.96242952;
-const Float_t  AliHMPIDDigit::kSqrtK3 =0.77459667;
-const Float_t  AliHMPIDDigit::k4      =0.37932926;
-
-Int_t AliHMPIDDigit::fSigmas=4;
+#include "Riostream.h"        //WriteRaw()
+#include "AliFstream.h"   
 
+ClassImp(AliHMPIDDigit)
 
 /*
  Preface: all geometrical information (like left-right sides) is reported as seen from electronic side.
  
-     d10          d1    d10          d1 
+      d10          d1    d10           d1 
       _______________    _______________          
-r24  |               |  |               |126.16   r1
+r1   |               |  |               |126.16   r24
      |       4       |  |       5       | 
      |               |  |               | 
      |_______________|  |_______________|85.84 
@@ -53,8 +43,8 @@ r24  |               |  |               |126.16   r1
      |               |  |               |40.32
      |       0       |  |       1       |
      |               |  |               |
-r1   |_______________|  |_______________|0        r24
-      0           64.0  66.6        130.6 
+r24  |_______________|  |_______________|0        r1        //updated: 15/02/2008
+      0           64.0  66.6        130.6                   //corrected: 05/08/2009 clm
 
 
 
@@ -105,7 +95,15 @@ HMPID raw word is 32 bits with the structure:
 void AliHMPIDDigit::Draw(Option_t*)
 {
 //  TMarker *pMark=new TMarker(LorsX(),LorsY(),25); pMark->SetMarkerColor(kGreen);pMark->Draw();
-  TBox *pad = new TBox(LorsX()-0.5*SizePadX(),LorsY()-0.5*SizePadY(),LorsX()+0.5*SizePadX(),LorsY()+0.5*SizePadY());
+  TBox *pad = new
+TBox(LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY(),LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY());
+  TPolyLine *line=new TPolyLine(5);
+  line->SetPoint(0,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY());
+  line->SetPoint(1,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY());
+  line->SetPoint(2,LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()+0.5*AliHMPIDParam::SizePadY());
+  line->SetPoint(3,LorsX()+0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY());
+  line->SetPoint(4,LorsX()-0.5*AliHMPIDParam::SizePadX(),LorsY()-0.5*AliHMPIDParam::SizePadY());
   Int_t slice=(Int_t)fQ/20;
   switch(slice){
     case 0: pad->SetFillColor(kBlue); break;
@@ -119,7 +117,7 @@ void AliHMPIDDigit::Draw(Option_t*)
     default: pad->SetFillColor(kRed);      break;
   }
    pad->SetUniqueID((Int_t)fQ);
-  pad->Draw();
+  pad->Draw();line->Draw();
 }
 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 void AliHMPIDDigit::Print(Option_t *opt)const
@@ -130,38 +128,7 @@ void AliHMPIDDigit::Print(Option_t *opt)const
   UInt_t w32; Int_t ddl,r,d,a;
   Raw(w32,ddl,r,d,a);
   Printf("%sDIG:(ch=%1i,pc=%1i,x=%2i,y=%2i) (%7.3f,%7.3f) Q=%8.3f TID=(%5i,%5i,%5i) raw=0x%x (ddl=%2i,r=%2i,d=%2i,a=%2i) %s",
-          opt,  A2C(fPad),A2P(fPad),A2X(fPad),A2Y(fPad),LorsX(),LorsY(), Q(),  fTracks[0],fTracks[1],fTracks[2],w32,ddl,r,d,a, (IsOverTh(Q()))?"":"below thr");
+          opt,  AliHMPIDParam::A2C(fPad),AliHMPIDParam::A2P(fPad),AliHMPIDParam::A2X(fPad),AliHMPIDParam::A2Y(fPad),LorsX(),LorsY(), Q(),  
+         fTracks[0],fTracks[1],fTracks[2],w32,ddl,r,d,a, (AliHMPIDParam::IsOverTh(Q()))?"":"below thr");
 }
 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-void AliHMPIDDigit::WriteRaw(TObjArray *pDigAll)
-{
-// Write a list of digits for a given chamber in raw data stream
-// Arguments: pDigAll- list of digits 
-//   Returns: none      
-  ofstream ddlL,ddlR;                               //output streams, 2 per chamber
-  Int_t    cntL=0,cntR=0;                           //data words counters for DDLs
-  AliRawDataHeader header; header.SetAttribute(0);  //empty DDL header
-
-  UInt_t w32=0; Int_t ddl,r,d,a;            //32 bits data word 
-  for(Int_t iCh=kMinCh;iCh<=kMaxCh;iCh++){//chambers loop
-    ddlL.open(AliDAQ::DdlFileName("HMPID",2*iCh)); 
-    ddlR.open(AliDAQ::DdlFileName("HMPID",2*iCh+1));      //open both DDL of this chamber in parallel
-    ddlL.write((char*)&header,sizeof(header));            //write dummy header as place holder, actual 
-    ddlR.write((char*)&header,sizeof(header));            //will be rewritten later when total size of DDL is known
-  
-    TClonesArray *pDigCh=(TClonesArray *)pDigAll->At(iCh); //list of digits for current chamber 
-    for(Int_t iDig=0;iDig<pDigCh->GetEntriesFast();iDig++){//digits loop
-      AliHMPIDDigit *pDig=(AliHMPIDDigit*)pDigCh->At(iDig);
-      pDig->Raw(w32,ddl,r,d,a);                             
-      if(ddl%2){
-        ddlL.write((char*)&w32,sizeof(w32));  cntL++;
-      }else{
-        ddlR.write((char*)&w32,sizeof(w32));  cntR++;
-      }
-    }//digits  loop
-
-    header.fSize=sizeof(header)+cntL*sizeof(w32); ddlL.seekp(0); ddlL.write((char*)&header,sizeof(header)); ddlL.close(); //rewrite header with size set to
-    header.fSize=sizeof(header)+cntR*sizeof(w32); ddlR.seekp(0); ddlR.write((char*)&header,sizeof(header)); ddlR.close(); //number of bytes and close file
-  }//chambers loop
-}//WriteRaw()
-//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++