/[PAMELA software]/calo/flight/CaloDoubleShower/inc/CaloDoubleShower.h
ViewVC logotype

Annotation of /calo/flight/CaloDoubleShower/inc/CaloDoubleShower.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Fri Aug 10 12:23:34 2007 UTC (17 years, 4 months ago) by mocchiut
Branch: CaloDoubleShower
CVS Tags: start, v1r00
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
Imported sources

1 mocchiut 1.1
2    
3     /**
4     * \file CaloDoubleShower.h
5     * \author Emiliano Mocchiutti (2007/08/09)
6     */
7     #ifndef calodblsh_h
8     #define calodblsh_h
9    
10     #include <PamLevel2.h>
11    
12     #include <TTree.h>
13     #include <TFriendElement.h>
14     #include <TChain.h>
15     #include <TFile.h>
16     #include <TList.h>
17     #include <TKey.h>
18     #include <TSystemFile.h>
19     #include <TSystemDirectory.h>
20     #include <TSQLServer.h>
21    
22     #include <iostream>
23     //
24     // Declaration of the core fortran routines
25     //
26     #define getdblsh getdblsh_
27     extern "C" int getdblsh();
28    
29     using namespace std;
30    
31     struct Calo2sh {
32     Float_t pos;
33     Float_t angol;
34     Float_t dblsq;
35     Float_t dbls;
36     };
37    
38     /**
39     *
40     * Class to store and calculate variables useful for recognizing double showers in the calorimeter
41     */
42     class CaloDoubleShower : public TObject {
43    
44     private:
45     //
46     PamLevel2 *L2;
47     Bool_t debug;
48     //
49     // needed to avoid reprocessing the same event over and over to obtain the variables;
50     //
51     UInt_t OBT;
52     UInt_t PKT;
53     UInt_t atime;
54     UInt_t tr;
55     UInt_t sntr;
56     //
57     Bool_t simulation; ///< True when using simulated data, false by default;
58     CaloLevel0 *event; ///< Pointer to calorimeter level0 structure needed to process the data
59     CaloStrip *cstrip; ///< CaloStrip object needed to easily recover parameter files
60     struct Calo2sh *c2s; ///< Fortran i/o common
61     //
62     Int_t dbls;///< Double shower flag: 0 : NO DOUBLE SHOWER 1 : DOUBLE SHOWER ONLY ACCORDING TO DBLSC 3 : TOO LITTLE BENDING FOR THE CHARGED PARTICLE AND SO NO DOUBLE SHOWER ACCORDING TO DBLSC 10 : DOUBLE SHOWER ONLY ACCORDING TO DUBSC 11 : DOUBLE SHOWER ACCORDING TO DBLSC AND TO DUBSC 13 : CASE 3 + CASE 10
63     //
64     Float_t qdbls;///< Energy (MIP) on the X view of the secondary shower (one not on the particle trajectory as defined by the tracker)
65     //
66     public:
67     //
68     //
69     Int_t GetDblsFlag(){ Process(); return dbls;}; ///< Retrieve dbls variable
70     Float_t GetDblsQ(){ Process(); return qdbls;}; ///< Retrieve qdbls variable
71     //
72     Bool_t IsDouble(){ Process(); if ( dbls == 11 ) return true; return false;}; ///< True if the double shower has been recognized by both the algorithms
73     //
74     CaloDoubleShower();
75     CaloDoubleShower(PamLevel2 *L2);
76     ~CaloDoubleShower(){ Delete(); };
77     //
78     void SetDebug(Bool_t d){ debug=d; };
79     //
80     void Clear();
81     void Clear(Option_t *option){Clear();};
82     void Delete();
83     //
84     void Process(UInt_t tr); ///< Process data for track number tr
85     void Process(); ///< Process data for track number 0
86     void Print(UInt_t tr);
87     void Print();
88     //
89     void LoadMagneticField();
90     //
91     ClassDef(CaloDoubleShower,1);
92     };
93    
94     #endif
95    

  ViewVC Help
Powered by ViewVC 1.1.23