GBRAHMS vertex dist and cut (was Re: GBRAHMS)

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Fri Jun 01 2001 - 07:15:38 EDT

  • Next message: Flemming Videbaek: "Re: GBRAHMS"

    Hi all (especially Flemming I guess),
    
    On Fri, 1 Jun 2001 12:22:20 +0200 (MET DST)
    Erik Jakobsen <jakobsen@hehi03.nbi.dk> wrote
    concerning ": GBRAHMS":
    > Hi BRAT's
    > 
    > I'm trying to make a GBRAHMS vertex distribution similar to a certain
    > run. 
    
    That is, a realistic vertex distribution.  This is done to make direct
    comparisons to real data. 
    
    > I know the run has a gaussian vertex distribution with a
    > mean = -0.95 and a sigma of 77.16 for |z| <= 20 cm. Therefore I use the
    > command:  
    > 
    > u/c/spot 0. 0. 0. 0. -0.95 77.16  
    
    There seem to be some problem with the the sign of the mean also,
    since the vertex distribution that Erik get out has a mean of 0.95. 
    
    > The problem is that by using this command I get a gaussian vertex
    > distribution over a large interval of z, ...
    
    That is, the full gaussian with 95% events in the interval 
    [-153.37, 155.27]. 
     
    > ... resulting in a heavy loss in statistics, since I'm only using
    > events with |z| <= 20 cm. 
    
    This cut then gives less then 60% of the events. 
    
    > Does anyone know of a way to get a gaussian distribution for a limited
    > interval in z?   
    
    The question is really: Can we implement some way of setting absolute
    limits on the vertex distribution for all kinds of distributions?  For
    example, we could have 
    
      user/control/spot <meanx> <varx> <meany> <vary> <meanz> <varz> 
                        <absolut maxx> <absolut maxy> <absolut maxz>
    
    This would be very usefull.  Essentially, as far as I can tell, the
    relevant code in SUBROUTINE GUKINE (file src/user/guxint.F) should be
    an algorithm like 
    
      vertexX = vertexY = vertexZ = some_large_number
      while (|vertexX| > maxX AND |vertexY| > maxY AND |vertexX| > maxZ)
        if (use_flat_dist) 
           vertexX = meanX + random_number * varX
           vertexY = meanY + random_number * varY
           vertexZ = meanZ + random_number * varZ
        else if (use_gaus_dist) 
           vertexX = gaus(meanX, varX)
           vertexY = gaus(meanY, varY)
           vertexZ = gaus(meanZ, varZ)
        else  
           ...
        endif 
      done 
    
    In that way, we'd be able to use all the input events in that limited
    range, even thoug the distribution extents beyond that. 
    
    Yours, 
    
    Christian  -----------------------------------------------------------
    Holm Christensen                             Phone:  (+45) 35 35 96 91 
      Sankt Hansgade 23, 1. th.                  Office: (+45) 353  25 305 
      DK-2200 Copenhagen N                       Web:    www.nbi.dk/~cholm    
      Denmark                                    Email:       cholm@nbi.dk
    



    This archive was generated by hypermail 2b29 : Fri Jun 01 2001 - 07:16:43 EDT