/[PAMELA software]/PamelaLevel2/doc/examples/My-Histos.cpp
ViewVC logotype

Diff of /PamelaLevel2/doc/examples/My-Histos.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by pam-fi, Wed Jan 3 13:28:49 2007 UTC revision 1.3 by pam-fi, Mon Jan 15 11:51:39 2007 UTC
# Line 67  Int_t sel[]={0,0,0,0,0,0,0,0}; Line 67  Int_t sel[]={0,0,0,0,0,0,0,0};
67  //===============================================================  //===============================================================
68  // Get ToF dE/dx  // Get ToF dE/dx
69  //===============================================================  //===============================================================
70  Float_t GetdEdx( PamTrack *trk ){  // Float_t GetdEdx( PamTrack *trk ){
71      Float_t dedx = 0.;  //     Float_t dedx = 0.;
72      Int_t nval=0;  //     Int_t nval=0;
73      Bool_t ISNULL = false;  //     Bool_t ISNULL = false;
74      for (Int_t i=0; i<trk->npmtadc; i++){  //     for (Int_t i=0; i<trk->GetToFTrack()->npmtadc; i++){
75          if(trk->dedx[i] == 0)ISNULL=true;        //      if(trk->GetToFTrack()->dedx[i] == 0)ISNULL=true;        
76          dedx += (trk->dedx).At(i)*(Int_t)(!ISNULL);  //      dedx += (trk->GetToFTrack()->dedx).At(i)*(Int_t)(!ISNULL);
77          nval += (Int_t)(!ISNULL);  //      nval += (Int_t)(!ISNULL);
78      };  //     };
79      //  //     //
80      if(nval)dedx=dedx/nval;  //     if(nval)dedx=dedx/nval;
81  //    cout <<" -- dedx  "<<dedx<<endl;  // //    cout <<" -- dedx  "<<dedx<<endl;
82      return(dedx);      //     return(dedx);    
83  }  // }
84  float GetZ(float beta, float dedx){  
85    // float GetZ(float beta, float dedx){
86    
87    //     int nspec=2;
88    //     float p0[]={0.904,3.373};
89    //     float p1[]={0.295,2.756};
90    //     float zz[]={1.,4.};
91    
92    //     if(beta>1)beta=1;
93    //     float f0 = p0[0]/beta+p1[0];
94    //     float f1 = p0[1]/beta+p1[1];
95    //     float z0 = zz[0];
96    //     float z1 = zz[1];
97    //     float aa = (z0-z1)/(f0-f1);
98    //     float bb = -aa*f0+z0;
99    //     if( (bb+aa*dedx)==0 )return 0;
100    //     return sqrt(bb+aa*dedx);
101    
102      int nspec=2;  // }
     float p0[]={0.904,3.373};  
     float p1[]={0.295,2.756};  
     float zz[]={1.,4.};  
   
     if(beta>1)beta=1;  
     float f0 = p0[0]/beta+p1[0];  
     float f1 = p0[1]/beta+p1[1];  
     float z0 = zz[0];  
     float z1 = zz[1];  
     float aa = (z0-z1)/(f0-f1);  
     float bb = -aa*f0+z0;  
     if( (bb+aa*dedx)==0 )return 0;  
     return sqrt(bb+aa*dedx);  
   
 }  
103    
104    
105  //===============================================================  //===============================================================
# Line 209  void FillHistos( PamLevel2* event ){ Line 210  void FillHistos( PamLevel2* event ){
210            
211      tot++;      tot++;
212                    
213      if( event->GetNTracks()==0 ) return;      if( event->GetTrkLevel2()->GetNTracks()==0 ) return;
214      PamTrack *track = event->GetTrack(0);      PamTrack *track = event->GetTrack(0);
215      //------------------------------      //------------------------------
216      // track selection      // track selection
# Line 227  void FillHistos( PamLevel2* event ){ Line 228  void FillHistos( PamLevel2* event ){
228          //-------------------          //-------------------
229          // ToF variables          // ToF variables
230          //-------------------          //-------------------
231          beta    = track->beta[12];          beta    = track->GetToFTrack()->beta[12];
232  //      dedxtof = GetdEdx(track);  //      dedxtof = GetdEdx(track);
233                    
234          //-------------------          //-------------------
235          // tracker variables          // tracker variables
236          //-------------------          //-------------------
237          dedxtrk    = track->GetDEDX()/1.3; //<<<ATTENZIONE TEMPORANEO!!!!          dedxtrk    = track->GetTrkTrack()->GetDEDX()/1.3; //<<<ATTENZIONE TEMPORANEO!!!!
238          rigidity   = track->GetRigidity();          rigidity   = track->GetTrkTrack()->GetRigidity();
239          deflection = track->GetDeflection();          deflection = track->GetTrkTrack()->GetDeflection();
240          chi2       = track->chi2;          chi2       = track->GetTrkTrack()->chi2;
241          errdef     = sqrt(track->coval[4][4]);          errdef     = sqrt(track->GetTrkTrack()->coval[4][4]);
242          for(Int_t ip=0; ip<6; ip++){          for(Int_t ip=0; ip<6; ip++){
243              if(track->XGood(ip))errx[ip]=track->resx[ip];              if(track->GetTrkTrack()->XGood(ip))errx[ip]=track->GetTrkTrack()->resx[ip];
244              if(track->YGood(ip))erry[ip]=track->resy[ip];              if(track->GetTrkTrack()->YGood(ip))erry[ip]=track->GetTrkTrack()->resy[ip];
245          }          }
246    
247          //-------------------          //-------------------
# Line 294  void FillHistos( PamLevel2* event ){ Line 295  void FillHistos( PamLevel2* event ){
295          //------------------------          //------------------------
296          // 6-planes lever-arm          // 6-planes lever-arm
297          //------------------------          //------------------------
298          if( !(track->XGood(0) && track->XGood(5)) )return;          if( !(track->GetTrkTrack()->XGood(0) && track->GetTrkTrack()->XGood(5)) )return;
299          sel[3]++;          sel[3]++;
300    
301          for(Int_t ip=0; ip<6; ip++)herrx[ip]->Fill(errx[ip]);          for(Int_t ip=0; ip<6; ip++)herrx[ip]->Fill(errx[ip]);
# Line 312  void FillHistos( PamLevel2* event ){ Line 313  void FillHistos( PamLevel2* event ){
313          hdef->Fill(deflection);          hdef->Fill(deflection);
314      }      }
315            
316      delete track;  //    delete track;
317        
318            
319  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.23