X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMD.h;h=5f4491b7d6a76ecb69a6fc9a0f839aaeb52028d6;hb=fa7c34ba27bd192f9d929589e9da8580bbb04fd3;hp=87fff7825e37bfade8abdf0bf72817564e89acd9;hpb=42f1b2f58c7412f4914c2eeaaf691707aeac83b7;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMD.h b/FMD/AliFMD.h index 87fff7825e3..5f4491b7d6a 100644 --- a/FMD/AliFMD.h +++ b/FMD/AliFMD.h @@ -17,11 +17,13 @@ @b Contents - @ref intro - @ref structure - - @ref base (see also @ref FMD_base) - - @ref sim (see also @ref FMD_sim) - - @ref rec (see also @ref FMD_rec) - - @ref util (see also @ref FMD_util) - - @ref script (see also @ref FMD_script) + - @ref base (see also @ref FMD_base) + - @ref sim (see also @ref FMD_sim) + - @ref rec (see also @ref FMD_rec) + - @ref flow (see also @ref FMD_flow) + - @ref ana (see also @ref FMD_ana) + - @ref util (see also @ref FMD_util) + - @ref script (see also @ref FMD_script) - @ref quick - @ref authors @@ -127,6 +129,16 @@ - AliFMDRawReader: Classes to read raw data files. + @subsection flow libFMDflow: + + This library contains flow analysis code that works similar to + histograms. + + @subsection ana libFMDanalysis: + + This library contains analysis code. + + @subsection util libFMDutil: This currently (18th or March 2006) contains the classes @@ -144,8 +156,8 @@ hits, digits, reconstructed points and ESD data. - AliFMDCalibFaker, AliFMDAlignFaker: Classes to write fake (or - dummy) calibration and alignment data. These derive from - TTask. + dummy) calibration and alignment data. + @section script Scripts @@ -213,10 +225,14 @@ #ifndef ALIDETECTOR_H # include #endif +#ifndef ROOT_TArrayI +# include +#endif class TBranch; class TClonesArray; class TBrowser; class TMarker3DBox; +class TArrayI; class AliDigitizer; class AliFMDHit; @@ -318,6 +334,57 @@ public: - @c FMD @c Plastic$ Plastic (Support legs for the hybrid cards) */ virtual void CreateMaterials(); +#if 0 + /** + * Declare tracking parameters for a medium + * + * Cut offs are in GeV. + * @param imed Medium identifier + * @param gamma Cut off for tracking photons + * @param electron Cut off for tracking electrons + * @param neutral_hadron Cut off for tracking neutral hadrons + * @param charged_hadron Cut off for tracking charged hadrons + * @param muon Cut off for tracking muons + * @param electron_bremstrahlung Cut off for tracking electron brehmstralung + * @param muon__bremstrahlung Cut off for tracking muon brehmstralung + * @param electron_delta Cut off for tracking delta electrons + * @param muon_delta Cut off for tracking delta muons + * @param muon_pair Cut off for muon->ee pair production + * @param annihilation Enable annihilation + * @param bremstrahlung Enable brehmstralung + * @param compton_scattering Enable Compton scattering + * @param decay Enable decays + * @param delta_ray Enable delta rays + * @param hadronic Enable hadronic interactions + * @param energy_loss Enable energy loss + * @param multiple_scattering Enable multiple scattering + * @param pair_production Enable pair production + * @param photon_production Enable cherenkov photon production + * @param rayleigh_scattering Enable rayleigh scattering + */ + void SetTrackingParameters(Int_t imed, + Float_t gamma, + Float_t electron, + Float_t neutral_hadron, + Float_t charged_hadron, + Float_t muon, + Float_t electron_bremstrahlung, + Float_t muon__bremstrahlung, + Float_t electron_delta, + Float_t muon_delta, + Float_t muon_pair, + Int_t annihilation, + Int_t bremstrahlung, + Int_t compton_scattering, + Int_t decay, + Int_t delta_ray, + Int_t hadronic, + Int_t energy_loss, + Int_t multiple_scattering, + Int_t pair_production, + Int_t photon_production, + Int_t rayleigh_scattering); +#endif /** Initialize this detector */ virtual void Init(); /** This member function is called when ever a track deposites @@ -331,26 +398,6 @@ public: virtual void FinishEvent(); /** @}*/ - /** @{*/ - /** @name Graphics and event display */ - /** Build simple ROOT TNode geometry for event display. With the new - geometry modeller, TGeoManager, this seems rather redundant. */ - virtual void BuildGeometry(); - /** Draw a shaded view of the Forward multiplicity detector. This - isn't really useful anymore. */ - virtual void DrawDetector(); - /** Calculate the distance from the mouse to the FMD on the screen - Dummy routine */ - virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); - /** Store x, y, z of all hits in memory for display. - Normally, the hits are drawn using TPolyMarker3D - however, that - is not very useful for the FMD. Therefor, this member function - is overloaded to make TMarker3D, via the class AliFMDPoints. - AliFMDPoints is a local class. - @param track the track number to load the hits for */ - virtual void LoadPoints(Int_t track); - /** @}*/ - /** @{ */ /** @name Hit and digit management */ /* Create Tree branches for the FMD. @@ -442,23 +489,30 @@ public: @param count1 ADC count (a 10-bit word) @param count2 ADC count (a 10-bit word), or -1 if not used @param count3 ADC count (a 10-bit word), or -1 if not used */ - virtual void AddDigitByFields(UShort_t detector=0, - Char_t ring='\0', - UShort_t sector=0, - UShort_t strip=0, - UShort_t count1=0, - Short_t count2=-1, - Short_t count3=-1, - Short_t count4=-1); + virtual void AddDigitByFields(UShort_t detector=0, + Char_t ring='\0', + UShort_t sector=0, + UShort_t strip=0, + UShort_t count1=0, + Short_t count2=-1, + Short_t count3=-1, + Short_t count4=-1, + UShort_t nrefs=0, + Int_t* refs=0); /** Add a digit to the Digit tree @param digits - digits[0] [UShort_t] Detector # - digits[1] [Char_t] Ring ID - digits[2] [UShort_t] Sector # - digits[3] [UShort_t] Strip # - - digits[4] [UShort_t] ADC Count - - digits[5] [Short_t] ADC Count, -1 if not used - - digits[6] [Short_t] ADC Count, -1 if not used */ + - digits[4] [Float_t] Edep + - digits[5] [UShort_t] ADC Count + - digits[6] [Short_t] ADC Count, -1 if not used + - digits[7] [Short_t] ADC Count, -1 if not used + - digits[8] [Short_t] ADC Count, -1 if not used + - digits[9] [UShort_t] N total particles + - digits[10] [UShort_t] N total primary particles + */ virtual void AddSDigit(Int_t *digits); /** add a summable digit - as coming from data @param detector Detector # (1, 2, or 3) @@ -469,15 +523,18 @@ public: @param count1 ADC count (a 10-bit word) @param count2 ADC count (a 10-bit word), or -1 if not used @param count3 ADC count (a 10-bit word), or -1 if not used */ - virtual void AddSDigitByFields(UShort_t detector=0, - Char_t ring='\0', - UShort_t sector=0, - UShort_t strip=0, - Float_t edep=0, - UShort_t count1=0, - Short_t count2=-1, - Short_t count3=-1, - Short_t count4=-1); + virtual void AddSDigitByFields(UShort_t detector=0, + Char_t ring='\0', + UShort_t sector=0, + UShort_t strip=0, + Float_t edep=0, + UShort_t count1=0, + Short_t count2=-1, + Short_t count3=-1, + Short_t count4=-1, + UShort_t ntot=0, + UShort_t nprim=0, + Int_t* refs=0); /** @}*/ /** @{ */ @@ -485,11 +542,7 @@ public: /** Create a digitizer object @param manager Digitization manager @return a newly allocated AliFMDDigitizer */ - virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; - /** Create a digitizer object - @param manager Digitization manager - @return a newly allocated AliFMDSDigitizer */ - virtual AliDigitizer* CreateSDigitizer(AliRunDigitizer* manager) const; + virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const; /** Create AliFMDDigit's from AliFMDHit's. This is done by creating an AliFMDDigitizer object, and executing it. */ virtual void Hits2Digits(); @@ -500,16 +553,30 @@ public: /** @{ */ /** @name Raw data */ - /** Turn digits into raw data. This uses the class AliFMDRawWriter - to do the job. Please refer to that class for more - information. */ - virtual void Digits2Raw(); + /** + * Turn digits into raw data. This uses the class AliFMDRawWriter to + * do the job. Please refer to that class for more information. + */ + virtual void Digits2Raw(); + /** + * Convert raw data to sdigits + * + * @param reader Raw reader + * + * @return @c true on success + */ + virtual Bool_t Raw2SDigits(AliRawReader* reader); /** @}*/ /** @{ */ - /** @name Utility */ - /** Browse this object - @param b Browser to show this object in */ + /** + * @name Utility + */ + /** + * Browse this object + * + * @param b Browser to show this object in + */ void Browse(TBrowser* b); /** @}*/ protected: